diff --git a/ports/ampl-mp/CONTROL b/ports/ampl-mp/CONTROL new file mode 100644 index 000000000..8a8c27b3f --- /dev/null +++ b/ports/ampl-mp/CONTROL @@ -0,0 +1,3 @@ +Source: ampl-mp +Version: 2019-02-08 +Description: An open-source library for mathematical programming diff --git a/ports/ampl-mp/disable-matlab-mex.patch b/ports/ampl-mp/disable-matlab-mex.patch new file mode 100644 index 000000000..f1b8be443 --- /dev/null +++ b/ports/ampl-mp/disable-matlab-mex.patch @@ -0,0 +1,11 @@ +--- a/src/asl/CMakeLists.txt 2019-02-08 16:42:50.793071700 -0600 ++++ b/src/asl/CMakeLists.txt 2019-02-08 16:44:04.960894500 -0600 +@@ -266,7 +266,7 @@ endif () + + target_link_libraries(asl ${CMAKE_DL_LIBS}) + +-find_package(MATLAB) ++set(MATLAB_FOUND) + if (MATLAB_FOUND) + set(matlab_asl asl) + if (MSVC) diff --git a/ports/ampl-mp/install-targets.patch b/ports/ampl-mp/install-targets.patch new file mode 100644 index 000000000..8538920b7 --- /dev/null +++ b/ports/ampl-mp/install-targets.patch @@ -0,0 +1,44 @@ +--- a/CMakeLists.txt 2019-02-09 04:38:25.756325900 -0600 ++++ b/CMakeLists.txt 2019-02-09 04:39:55.299417600 -0600 +@@ -289,6 +289,8 @@ add_prefix(MP_SOURCES src/ + add_mp_library(mp ${MP_HEADERS} ${MP_SOURCES} ${MP_EXPR_INFO_FILE} + COMPILE_DEFINITIONS MP_DATE=${MP_DATE} MP_SYSINFO="${MP_SYSINFO}" + INCLUDE_DIRECTORIES src OBJECT_LIBRARIES format) ++set_property(TARGET mp PROPERTY ++ INTERFACE_INCLUDE_DIRECTORIES $) + set_target_properties(mp PROPERTIES + VERSION ${MP_VERSION} SOVERSION ${MP_VERSION_MAJOR}) + +@@ -385,5 +387,10 @@ if(BUILD_TESTING) + endif() + + install(DIRECTORY include/mp DESTINATION include) +-install(TARGETS mp DESTINATION lib RUNTIME DESTINATION bin) ++install(TARGETS mp EXPORT unofficial-mp-targets ++ DESTINATION lib RUNTIME DESTINATION bin) + install(FILES LICENSE.rst DESTINATION share/mp) ++install(EXPORT unofficial-mp-targets ++ FILE unofficial-mp-config.cmake ++ NAMESPACE unofficial::mp:: ++ DESTINATION share/unofficial-mp) +--- a/src/asl/CMakeLists.txt 2019-02-09 04:38:27.196322600 -0600 ++++ b/src/asl/CMakeLists.txt 2019-02-09 04:39:32.119889500 -0600 +@@ -235,6 +235,10 @@ add_mp_library(asl-extra OBJECT ${ASL_SO + + add_mp_library(asl STATIC OBJECT_LIBRARIES asl-core asl-extra + LIBRARIES mp INCLUDE_DIRECTORIES ${ASL_INCLUDE_DIRS}) ++set_property(TARGET asl PROPERTY ++ INTERFACE_INCLUDE_DIRECTORIES ++ $ ++ $) + + if (NOT WIN32) + target_link_libraries(asl m) +@@ -353,4 +357,6 @@ endif () + install(FILES ${ASL_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/arith.h + solvers/opcode.hd solvers/r_opn.hd + DESTINATION include/asl) +-install(TARGETS asl tableproxy DESTINATION lib RUNTIME DESTINATION bin) ++install(TARGETS tableproxy DESTINATION lib RUNTIME DESTINATION bin) ++install(TARGETS asl EXPORT unofficial-mp-targets ++ DESTINATION lib RUNTIME DESTINATION bin) diff --git a/ports/ampl-mp/portfile.cmake b/ports/ampl-mp/portfile.cmake new file mode 100644 index 000000000..45bcb6478 --- /dev/null +++ b/ports/ampl-mp/portfile.cmake @@ -0,0 +1,42 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ampl/mp + REF d305155b047b69fc5c6e5fda8630c753d7973b9a + SHA512 2c8ffd6de946a6f8ea94a8e0c00f03f67753ad99534e0d5fcaaaeb472fe76a3383324bcb628a31d8c01bc5f60254790f5508c8394096a4f05672f814dbd6fe2e + HEAD_REF master + PATCHES + disable-matlab-mex.patch + workaround-msvc-optimizer-ice.patch + install-targets.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DBUILD=asl + -DBUILD_TESTING=OFF +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets( + CONFIG_PATH share/unofficial-mp + TARGET_PATH share/unofficial-mp +) + +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/tools/${PORT}) +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/bin + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share + ${CURRENT_PACKAGES_DIR}/share/mp) + +configure_file(${SOURCE_PATH}/LICENSE.rst + ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) + +vcpkg_copy_pdbs() +vcpkg_test_cmake(PACKAGE_NAME unofficial-mp) diff --git a/ports/ampl-mp/workaround-msvc-optimizer-ice.patch b/ports/ampl-mp/workaround-msvc-optimizer-ice.patch new file mode 100644 index 000000000..cd55be8c0 --- /dev/null +++ b/ports/ampl-mp/workaround-msvc-optimizer-ice.patch @@ -0,0 +1,14 @@ +--- a/src/asl/CMakeLists.txt 2019-02-07 22:45:15.191909400 -0600 ++++ b/src/asl/CMakeLists.txt 2019-02-07 22:47:10.364936600 -0600 +@@ -216,6 +216,11 @@ add_mp_library(asl-core OBJECT ${ASL_COR + COMPILE_DEFINITIONS ${ASL_COMPILE_DEFINITIONS} + INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}) + ++if (MSVC) ++ set_source_files_properties(solvers/avltree.c solvers/sphes.c ++ PROPERTIES COMPILE_OPTIONS /Od) ++endif () ++ + # Public ASL headers. + set(ASL_HEADERS aslbuilder.h aslexpr.h aslexpr-visitor.h + aslproblem.h aslinterface.h ${CMAKE_CURRENT_BINARY_DIR}/stdio1.h)