aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Millard <dmillard10@gmail.com>2021-01-20 15:51:57 -0500
committerGitHub <noreply@github.com>2021-01-20 12:51:57 -0800
commita8a07972dbd6a835329f31133fb83b3f4723cb55 (patch)
tree48215f9206893248b0240ba7b65883219ff35864
parent4d136ef25f4fab5b744c7ae6acfa04d44f254f2b (diff)
downloadvcpkg-a8a07972dbd6a835329f31133fb83b3f4723cb55.tar.gz
vcpkg-a8a07972dbd6a835329f31133fb83b3f4723cb55.zip
[pagmo2] Add new port (#15682)
* [pagmo2] Add new port * Disable C4701 * Disable /MD override for all static builds * Add pagmo2 port_version info * Find TBB when finding pagmo * Fixup pagmo2 port version * Change /Md patch to if(0) * Fix port_version for pagmo2 * Use vcpkg.json; use version * Reformat vcpkg.json * Fix port_versions for pagmo2
-rw-r--r--port_versions/baseline.json4
-rw-r--r--port_versions/p-/pagmo2.json9
-rw-r--r--ports/pagmo2/disable-C4701.patch13
-rw-r--r--ports/pagmo2/disable-md-override.patch20
-rw-r--r--ports/pagmo2/find-tbb.patch12
-rw-r--r--ports/pagmo2/portfile.cmake36
-rw-r--r--ports/pagmo2/vcpkg.json21
7 files changed, 115 insertions, 0 deletions
diff --git a/port_versions/baseline.json b/port_versions/baseline.json
index d5126885e..883f2d5e8 100644
--- a/port_versions/baseline.json
+++ b/port_versions/baseline.json
@@ -4376,6 +4376,10 @@
"baseline": "2020-12-14",
"port-version": 0
},
+ "pagmo2": {
+ "baseline": "2.16.1",
+ "port-version": 0
+ },
"paho-mqtt": {
"baseline": "1.3.8",
"port-version": 0
diff --git a/port_versions/p-/pagmo2.json b/port_versions/p-/pagmo2.json
new file mode 100644
index 000000000..c149fd0f0
--- /dev/null
+++ b/port_versions/p-/pagmo2.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "ea29ee58051fba73e950597ca2b0109dd6df0dec",
+ "version": "2.16.1",
+ "port-version": 0
+ }
+ ]
+}
diff --git a/ports/pagmo2/disable-C4701.patch b/ports/pagmo2/disable-C4701.patch
new file mode 100644
index 000000000..05ed75bd2
--- /dev/null
+++ b/ports/pagmo2/disable-C4701.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 96653ba..1afaafa 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -80,7 +80,7 @@ endif()
+ if(YACMA_COMPILER_IS_MSVC)
+ # Disable the idiotic minmax macros on MSVC, some annoying warnings,
+ # enable the bigobj option and the WIN32_LEAN_AND_MEAN definition.
+- list(APPEND PAGMO_CXX_FLAGS_DEBUG "-DNOMINMAX" "/wd4459" "/wd4127" "/wd4702" "/wd4251" "/bigobj" "-DWIN32_LEAN_AND_MEAN")
++ list(APPEND PAGMO_CXX_FLAGS_DEBUG "-DNOMINMAX" "/wd4459" "/wd4127" "/wd4702" "/wd4251" "/wd4701" "/bigobj" "-DWIN32_LEAN_AND_MEAN")
+ list(APPEND PAGMO_CXX_FLAGS_RELEASE "-DNOMINMAX" "/wd4459" "/wd4127" "/wd4702" "/wd4251" "/bigobj" "-DWIN32_LEAN_AND_MEAN")
+ # Enable strict conformance mode, if supported.
+ set(CMAKE_REQUIRED_QUIET TRUE)
diff --git a/ports/pagmo2/disable-md-override.patch b/ports/pagmo2/disable-md-override.patch
new file mode 100644
index 000000000..a5e09d3fa
--- /dev/null
+++ b/ports/pagmo2/disable-md-override.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 96653ba..549d9d4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -141,6 +141,7 @@ endif()
+ # Boost setup.
+ include(PagmoFindBoost)
+
++if(0)
+ # Explanation: on MSVC, when building static libraries, it is good practice to link
+ # to the static runtime. CMake, however, is hard-coded to link to the dynamic runtime.
+ # Hence we hackishly replace the /MD flag with /MT. This is the approach suggested
+@@ -161,6 +162,7 @@ if(YACMA_COMPILER_IS_MSVC AND PAGMO_BUILD_STATIC_LIBRARY)
+ endif()
+ endforeach()
+ endif()
++endif()
+
+ # List of source files.
+ set(PAGMO_SRC_FILES
diff --git a/ports/pagmo2/find-tbb.patch b/ports/pagmo2/find-tbb.patch
new file mode 100644
index 000000000..8781910f8
--- /dev/null
+++ b/ports/pagmo2/find-tbb.patch
@@ -0,0 +1,12 @@
+diff --git a/pagmo-config.cmake.in b/pagmo-config.cmake.in
+index 9553fc8..cb5e90b 100644
+--- a/pagmo-config.cmake.in
++++ b/pagmo-config.cmake.in
+@@ -8,6 +8,7 @@ set(THREADS_PREFER_PTHREAD_FLAG YES)
+ find_package(Threads REQUIRED)
+ unset(THREADS_PREFER_PTHREAD_FLAG)
+ include(PagmoFindBoost)
++find_package(TBB REQUIRED)
+ @_PAGMO_CONFIG_OPTIONAL_DEPS@
+ # Restore original module path.
+ set(CMAKE_MODULE_PATH "${_PAGMO_CONFIG_OLD_MODULE_PATH}")
diff --git a/ports/pagmo2/portfile.cmake b/ports/pagmo2/portfile.cmake
new file mode 100644
index 000000000..a709a2fb6
--- /dev/null
+++ b/ports/pagmo2/portfile.cmake
@@ -0,0 +1,36 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO esa/pagmo2
+ REF v2.16.1
+ SHA512 dac85a8525316e827df809d187d40f14dc20db7119796b7384d7855f83ba37e0bb595f6d8199053aac857460816929dd599c9d43802f2ed920a6f42dd2f16a03
+ HEAD_REF master
+ PATCHES
+ "disable-C4701.patch"
+ "disable-md-override.patch"
+ "find-tbb.patch"
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ nlopt PAGMO_WITH_NLOPT
+)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAGMO_BUILD_STATIC_LIBRARY)
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DPAGMO_WITH_EIGEN3=ON
+ -DPAGMO_BUILD_STATIC_LIBRARY=${PAGMO_BUILD_STATIC_LIBRARY}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/pagmo)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/COPYING.lgpl3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
diff --git a/ports/pagmo2/vcpkg.json b/ports/pagmo2/vcpkg.json
new file mode 100644
index 000000000..4e491b496
--- /dev/null
+++ b/ports/pagmo2/vcpkg.json
@@ -0,0 +1,21 @@
+{
+ "name": "pagmo2",
+ "version": "2.16.1",
+ "description": "A C++ platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.",
+ "homepage": "https://esa.github.io/pagmo2/",
+ "dependencies": [
+ "boost-any",
+ "boost-graph",
+ "boost-serialization",
+ "eigen3",
+ "tbb"
+ ],
+ "features": {
+ "nlopt": {
+ "description": "Enable the NLopt wrappers",
+ "dependencies": [
+ "nlopt"
+ ]
+ }
+ }
+}