aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openturns
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openturns
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openturns')
-rw-r--r--vcpkg/ports/openturns/dependencies.diff113
-rw-r--r--vcpkg/ports/openturns/portfile.cmake78
-rw-r--r--vcpkg/ports/openturns/usage4
-rw-r--r--vcpkg/ports/openturns/vcpkg.json60
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"
+ ]
+ }
+ }
+}