diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openturns | |
Diffstat (limited to 'vcpkg/ports/openturns')
| -rw-r--r-- | vcpkg/ports/openturns/dependencies.diff | 113 | ||||
| -rw-r--r-- | vcpkg/ports/openturns/portfile.cmake | 78 | ||||
| -rw-r--r-- | vcpkg/ports/openturns/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/openturns/vcpkg.json | 60 |
4 files changed, 255 insertions, 0 deletions
diff --git a/vcpkg/ports/openturns/dependencies.diff b/vcpkg/ports/openturns/dependencies.diff new file mode 100644 index 0000000..85ffbf2 --- /dev/null +++ b/vcpkg/ports/openturns/dependencies.diff @@ -0,0 +1,113 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e2f0f5b..61cc8b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -128,6 +128,12 @@ if (NOT DEFINED LAPACK_LIBRARIES) + endif () + list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${LAPACK_LIBRARIES}) + ++find_package(kissfft CONFIG REQUIRED) ++list(APPEND OPENTURNS_PRIVATE_LIBRARIES kissfft::kissfft-double) ++ ++find_path(RAPIDCSV_INCLUDE_DIRS "rapidcsv.h" REQUIRED) ++list(APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${RAPIDCSV_INCLUDE_DIRS}) ++ + if (USE_SPECTRA) + find_package (Spectra 1.0 CONFIG) + endif () +@@ -183,7 +189,8 @@ if (TBB_FOUND) + endif () + + if (USE_MUPARSER) +- find_package (muParser 2.2.3 QUIET) ++ find_package (MUPARSER NAMES muparser REQUIRED) ++ set(MUPARSER_LIBRARIES muparser::muparser) + endif () + if (MUPARSER_FOUND) + set (OPENTURNS_HAVE_MUPARSER TRUE) +@@ -194,6 +201,8 @@ if (MUPARSER_FOUND) + set (SYMBOLICPARSER_DEFAULT_BACKEND MuParser) + endif () + if (USE_EXPRTK) ++ find_path(EXPRTK_INCLUDE_DIRS "exprtk.hpp" REQUIRED) ++ list(APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${EXPRTK_INCLUDE_DIRS}) + set (OPENTURNS_HAVE_EXPRTK TRUE) + set (OPENTURNS_HAVE_ANALYTICAL_PARSER TRUE) + set (SYMBOLICPARSER_DEFAULT_BACKEND ExprTk) +@@ -262,7 +271,9 @@ if (USE_BOOST) + endif () + endif () + if (USE_MPFR) +- find_package (MPFR) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(MPFR mpfr REQUIRED) ++ set(MPFR_LIBRARIES "${MPFR_LINK_LIBRARIES}") + if (MPFR_FOUND) + set (OPENTURNS_HAVE_MPFR TRUE) + list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${MPFR_INCLUDE_DIRS}) +@@ -435,9 +446,8 @@ check_include_file (dlfcn.h OPENTURNS_HAVE_DLFCN_H ) + + include (CheckFunctionExists) + if (OPENTURNS_HAVE_DLFCN_H AND UNIX) +- find_library (LIBDL_LIBRARIES NAMES dl) +- mark_as_advanced (LIBDL_LIBRARIES) +- if (LIBDL_LIBRARIES) ++ set(LIBDL_LIBRARIES "${CMAKE_DL_LIBS}") ++ if(1) + set (CMAKE_REQUIRED_LIBRARIES ${LIBDL_LIBRARIES}) + check_function_exists (dladdr OPENTURNS_HAVE_DLADDR) + set (CMAKE_REQUIRED_LIBRARIES) +diff --git a/LICENSE b/LICENSE +index 2bd2cde..3148f78 100644 +--- a/LICENSE ++++ b/LICENSE +@@ -4,11 +4,8 @@ This library bundles several third-party codes with various licenses compatible + - COBYLA optimization solver (lib/src/Base/Optim/algocobyla.*) under Expat license, see COPYING.cobyla + - Mersenne twister RNG (lib/src/Base/Stat/dsfmt.*) under BSD license, see COPYING.dsfmt + - Ev3 symbolic library (lib/src/Base/Diff/Ev3/*) under LGPL license, see COPYING.ev3 +-- ExprTk symbolic parser (lib/src/Base/Func/openturns/exprtk.hpp) under Expat license, see COPYING.exprtk + - Faddeeva function (lib/src/Base/Func/SpecFunc/Faddeeva.*) under Expat license, see COPYING.faddeeva + - Kendall Tau (lib/src/Base/Stat/kendall.c) under BSL license, see COPYING.kendall +-- KissFFT (lib/src/Base/Algo/kissfft.hh), under BSD license, see COPYING.kissfft + - KS distribution from Cephes library (lib/src/Uncertainty/Distribution/cephes/*) under BSD license, see COPYING.cephes + - TNC optimization solver (lib/src/Base/Optim/algotnc.*) under Expat license, see COPYING.tnc + - Gauss Legendre quadrature from FastGL library (lib/src/Base/Algo/fastgl*) under BSD license, see COPYING.fastGL +-- Rapidcsv parser library (lib/src/Base/Stat/rapidcsv.h) under BSD license, see COPYING.rapidcsv +diff --git a/lib/OpenTURNSConfig.cmake.in b/lib/OpenTURNSConfig.cmake.in +index 096490b..307faaa 100644 +--- a/lib/OpenTURNSConfig.cmake.in ++++ b/lib/OpenTURNSConfig.cmake.in +@@ -47,7 +47,7 @@ set_and_check ( OPENTURNS_INCLUDE_DIR "@PACKAGE_OPENTURNS_INCLUDE_DIR@" ) + set ( OPENTURNS_INCLUDE_DIRS "@PACKAGE_OPENTURNS_INCLUDE_DIRS@" ) + set ( OPENTURNS_LIBRARY "@OPENTURNS_LIBRARY@" ) + set ( OPENTURNS_LIBRARIES "@OPENTURNS_LIBRARIES@" ) +-set ( OPENTURNS_LIBRARY_DIRS "@PACKAGE_OPENTURNS_LIBRARY_DIRS@" ) ++set ( OPENTURNS_LIBRARY_DIRS "" ) + set_and_check ( OPENTURNS_ROOT_DIR "@PACKAGE_OPENTURNS_ROOT_DIR@" ) + + set ( OPENTURNS_VERSION_STRING "@OPENTURNS_VERSION_STRING@" ) +@@ -62,6 +62,11 @@ set (OPENTURNS_PYTHON_MODULE_PATH "@PACKAGE_PYTHON_MODULE_PATH@") + # static libraries dependencies are transitive so imported targets must be defined + if (NOT @BUILD_SHARED_LIBS@) + include(CMakeFindDependencyMacro) ++ find_dependency(kissfft CONFIG) ++ find_dependency(nanoflann CONFIG) ++ if("@MUPARSER_FOUND@") ++ find_dependency(muparser CONFIG) ++ endif() + + if ("1" STREQUAL "@Ceres_FOUND@") + find_dependency(Ceres CONFIG) +diff --git a/lib/src/Base/Func/SymbolicParserExprTk.cxx b/lib/src/Base/Func/SymbolicParserExprTk.cxx +index 38e818b..8f926da 100644 +--- a/lib/src/Base/Func/SymbolicParserExprTk.cxx ++++ b/lib/src/Base/Func/SymbolicParserExprTk.cxx +@@ -27,7 +27,7 @@ + + #include "openturns/OTwindows.h" // exprtk includes windows.h + #define exprtk_disable_caseinsensitivity +-#include "openturns/exprtk.hpp" ++#include <exprtk.hpp> + + BEGIN_NAMESPACE_OPENTURNS + diff --git a/vcpkg/ports/openturns/portfile.cmake b/vcpkg/ports/openturns/portfile.cmake new file mode 100644 index 0000000..8e1fe56 --- /dev/null +++ b/vcpkg/ports/openturns/portfile.cmake @@ -0,0 +1,78 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO openturns/openturns + REF v${VERSION} + SHA512 d73c294ce8fafb99da0769791cee09a6da76d3839489dd32227a7569c1fbbfc06c2a918d3951ea5b9d7a7efb1f30d11e04a52bb8d906e37411bc372235a9832b + HEAD_REF master + PATCHES + dependencies.diff +) +file(REMOVE "${SOURCE_PATH}/lib/src/Base/Algo/kissfft.hh") +file(REMOVE "${SOURCE_PATH}/lib/src/Base/Func/openturns/exprtk.hpp") +file(REMOVE "${SOURCE_PATH}/lib/src/Base/Stat/rapidcsv.h") + +vcpkg_find_acquire_program(PKGCONFIG) +set(ENV{PKG_CONFIG} "${PKGCONFIG}") + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "muparser" USE_MUPARSER + "tbb" USE_TBB +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DBUILD_PYTHON:BOOL=OFF # Requires additional python modules + -DUSE_BONMIN=OFF + -DUSE_CUBA:BOOL=OFF + -DUSE_DOXYGEN:BOOL=OFF + -DUSE_HMAT=OFF + -DUSE_IPOPT=OFF + -DUSE_OPENMP:BOOL=OFF + -DUSE_PRIMESIEVE=OFF + -DCMAKE_REQUIRE_FIND_PACKAGE_Spectra:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_Eigen3:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_TBB:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_LibXml2:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_HDF5:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_MPC:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_NLopt:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_dlib:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_Ceres:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_CMinpack:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_Pagmo:BOOL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_nanoflann:BOOL=ON + OPTIONS_RELEASE + "-DOPENTURNS_CONFIG_CMAKE_PATH=${CURRENT_PACKAGES_DIR}/share/${PORT}" + OPTIONS_DEBUG + "-DOPENTURNS_CONFIG_CMAKE_PATH=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}" +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openturns/OTdebug.h" "#ifndef OT_STATIC" "#if 0") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +vcpkg_install_copyright(FILE_LIST + "${SOURCE_PATH}/LICENSE" + "${SOURCE_PATH}/COPYING" + "${SOURCE_PATH}/COPYING.LESSER" + "${SOURCE_PATH}/COPYING.cobyla" + "${SOURCE_PATH}/COPYING.dsfmt" + "${SOURCE_PATH}/COPYING.ev3" + "${SOURCE_PATH}/COPYING.faddeeva" + "${SOURCE_PATH}/COPYING.fastgl" + "${SOURCE_PATH}/COPYING.kendall" + "${SOURCE_PATH}/COPYING.cephes" + "${SOURCE_PATH}/COPYING.tnc" +) diff --git a/vcpkg/ports/openturns/usage b/vcpkg/ports/openturns/usage new file mode 100644 index 0000000..227f990 --- /dev/null +++ b/vcpkg/ports/openturns/usage @@ -0,0 +1,4 @@ +openturns provides CMake targets: + + find_package(OpenTURNS CONFIG REQUIRED) + target_link_libraries(main PRIVATE OT) diff --git a/vcpkg/ports/openturns/vcpkg.json b/vcpkg/ports/openturns/vcpkg.json new file mode 100644 index 0000000..ff0134e --- /dev/null +++ b/vcpkg/ports/openturns/vcpkg.json @@ -0,0 +1,60 @@ +{ + "name": "openturns", + "version": "1.25.1", + "description": "OpenTURNS is a scientific C++ and Python library featuring an internal data model and algorithms dedicated to the treatment of uncertainties.", + "homepage": "https://openturns.github.io/", + "license": null, + "dependencies": [ + "blas", + "boost-geometry", + "boost-math", + "boost-multiprecision", + "boost-random", + "ceres", + "cminpack", + "dlib", + "exprtk", + { + "name": "hdf5", + "default-features": false, + "features": [ + "cpp" + ] + }, + "kissfft", + "lapack", + { + "name": "libxml2", + "default-features": false + }, + "mpc", + "mpfr", + "nanoflann", + "nlopt", + "pagmo2", + "rapidcsv", + "spectra", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "muparser": { + "description": "Legacy analytical parser", + "dependencies": [ + "muparser" + ] + }, + "tbb": { + "description": "Use TBB multithreading", + "dependencies": [ + "tbb" + ] + } + } +} |