aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/zimpl
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/zimpl')
-rw-r--r--vcpkg/ports/zimpl/libm.diff13
-rw-r--r--vcpkg/ports/zimpl/msvc.diff48
-rw-r--r--vcpkg/ports/zimpl/portfile.cmake40
-rw-r--r--vcpkg/ports/zimpl/vcpkg.json25
4 files changed, 126 insertions, 0 deletions
diff --git a/vcpkg/ports/zimpl/libm.diff b/vcpkg/ports/zimpl/libm.diff
new file mode 100644
index 0000000..6b340cc
--- /dev/null
+++ b/vcpkg/ports/zimpl/libm.diff
@@ -0,0 +1,13 @@
+diff --git a/zimpl/CMakeLists.txt b/zimpl/CMakeLists.txt
+index 7cf9d85..07fa187 100644
+--- a/zimpl/CMakeLists.txt
++++ b/zimpl/CMakeLists.txt
+@@ -151,6 +151,8 @@ include(CheckSymbolExists)
+ find_library(libm m)
+ if(NOT libm)
+ set(libm "")
++else()
++ set(libm m)
+ endif()
+
+ set(libs ${libs} ${libm})
diff --git a/vcpkg/ports/zimpl/msvc.diff b/vcpkg/ports/zimpl/msvc.diff
new file mode 100644
index 0000000..46f326b
--- /dev/null
+++ b/vcpkg/ports/zimpl/msvc.diff
@@ -0,0 +1,48 @@
+diff --git a/zimpl/CMakeLists.txt b/zimpl/CMakeLists.txt
+index 7cf9d85..85d33a7 100644
+--- a/zimpl/CMakeLists.txt
++++ b/zimpl/CMakeLists.txt
+@@ -4,7 +4,7 @@ project(ZIMPL
+ VERSION 3.6.1
+ LANGUAGES C)
+
+-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
++if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT WIN32)
+ # if changing these flags, also update GCCWARN/GXXWARN in make/make.project
+ set(ADD_C_FLAGS -Wall -Wextra -Wno-unknown-pragmas -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-noreturn -Wmissing-declarations -fno-omit-frame-pointer)
+
+@@ -112,7 +112,6 @@ if(MSVC)
+ )
+
+ foreach(variable ${variables})
+- string(REGEX REPLACE "/M[T,D][ d]" "" ${variable} "${${variable}}")
+ # message("${variable} = ${${variable}}")
+ endforeach()
+ endif()
+@@ -128,9 +127,11 @@ if(ZLIB_FOUND)
+ include_directories(${ZLIB_INCLUDE_DIRS})
+ else()
+ add_definitions(-DWITHOUT_ZLIB)
++endif()
+
+- # look for pcre if ZLIB could not be found
+- find_package(PCRE)
++if(WIN32)
++ find_package(PCRE NAMES pcre2 REQUIRED)
++ set(PCRE_LIBRARIES "$<TARGET_NAME:PCRE2::POSIX>")
+ if(PCRE_FOUND)
+ add_definitions(-DWITH_PCRE)
+ add_definitions(-DPCRE2_STATIC)
+diff --git a/zimpl/zimpl-config.cmake.in b/zimpl/zimpl-config.cmake.in
+index b653f0c..946f6f2 100644
+--- a/zimpl/zimpl-config.cmake.in
++++ b/zimpl/zimpl-config.cmake.in
+@@ -1,3 +1,8 @@
++if(WIN32)
++ include(CMakeFindDependencyMacro)
++ find_dependency(pcre2)
++endif()
++
+ if(NOT TARGET libzimpl)
+ include("${CMAKE_CURRENT_LIST_DIR}/zimpl-targets.cmake")
+ endif()
diff --git a/vcpkg/ports/zimpl/portfile.cmake b/vcpkg/ports/zimpl/portfile.cmake
new file mode 100644
index 0000000..d9811b2
--- /dev/null
+++ b/vcpkg/ports/zimpl/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+# The latest version of ZIMPL is included in the SCIP Optimization Suite.
+set(scipoptsuite_version 9.1.0)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://scipopt.org/download/release/scipoptsuite-${scipoptsuite_version}.tgz"
+ SHA512 03c1c49dd5e4dbc5bfd4f07305937079773f6912c87b0ba86166fc02996928e8d23332137a944f16f2488a88dc12a4a2c6ebde216eb4532135ed282a182bfdaf
+ FILENAME "scipoptsuite-${scipoptsuite_version}.tgz"
+)
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ libm.diff
+ msvc.diff
+)
+
+vcpkg_find_acquire_program(BISON)
+vcpkg_find_acquire_program(FLEX)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}/zimpl"
+ OPTIONS
+ -DBREW=false
+ "-DBISON_EXECUTABLE=${BISON}"
+ "-DFLEX_EXECUTABLE=${FLEX}"
+ -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=1
+ MAYBE_UNUSED_VARIABLES
+ BREW
+)
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/zimpl)
+vcpkg_copy_tools(TOOL_NAMES zimpl AUTO_CLEAN)
+
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/zimpl/zimpl-config.cmake" "../../../include" "../../include")
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zimpl/mmlparse2.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/zimpl/" "")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/zimpl/LICENSE")
diff --git a/vcpkg/ports/zimpl/vcpkg.json b/vcpkg/ports/zimpl/vcpkg.json
new file mode 100644
index 0000000..0e4d3a4
--- /dev/null
+++ b/vcpkg/ports/zimpl/vcpkg.json
@@ -0,0 +1,25 @@
+{
+ "name": "zimpl",
+ "version": "3.6.1",
+ "port-version": 1,
+ "description": "Zuse Institut Mathematical Programming Language",
+ "homepage": "https://zimpl.zib.de/",
+ "license": "LGPL-3.0-or-later",
+ "supports": "!uwp",
+ "dependencies": [
+ "gmp",
+ {
+ "name": "pcre2",
+ "platform": "windows"
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib"
+ ]
+}