diff --git a/pkgs/development/libraries/openturns/default.nix b/pkgs/development/libraries/openturns/default.nix new file mode 100644 index 000000000000..d5988ace408a --- /dev/null +++ b/pkgs/development/libraries/openturns/default.nix @@ -0,0 +1,80 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, swig +, boost +, spectra +, libxml2 +, tbb +, hmat-oss +, nlopt +, cminpack +, ceres-solver +, dlib +, hdf5 +, primesieve +, pagmo2 +, ipopt +, Accelerate +# tests take an hour to build on a 48-core machine +, runTests ? false +, enablePython ? false +, python3Packages +}: + +stdenv.mkDerivation rec { + pname = "openturns"; + version = "1.19"; + + src = fetchFromGitHub { + owner = "openturns"; + repo = "openturns"; + rev = "v${version}"; + sha256 = "sha256-hSvhKx7Ke5PXPYGcn9OJvq7YooAbHrbP6TdLZBotriE="; + }; + + nativeBuildInputs = [ cmake ] ++ lib.optional enablePython python3Packages.sphinx; + buildInputs = [ + swig + boost + spectra + libxml2 + tbb + hmat-oss + nlopt + cminpack + ceres-solver + dlib + hdf5 + primesieve + pagmo2 + ipopt + ] ++ lib.optionals enablePython [ + python3Packages.python + python3Packages.matplotlib + python3Packages.psutil + python3Packages.dill + ] ++ lib.optional stdenv.isDarwin Accelerate; + + cmakeFlags = [ + "-DOPENTURNS_SYSCONFIG_PATH=$out/etc" + "-DCMAKE_UNITY_BUILD=ON" + "-DCMAKE_UNITY_BUILD_BATCH_SIZE=32" + "-DSWIG_COMPILE_FLAGS='-O1'" + "-DUSE_SPHINX=${if enablePython then "ON" else "OFF"}" + "-DBUILD_PYTHON=${if enablePython then "ON" else "OFF"}" + ]; + + doCheck = runTests; + + checkTarget = "tests check"; + + meta = with lib; { + description = "Multivariate probabilistic modeling and uncertainty treatment library"; + license = with licenses; [ lgpl3 gpl3 ]; + homepage = "https://openturns.github.io/www/"; + maintainers = with maintainers; [ gdinh ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/libraries/pagmo2/default.nix b/pkgs/development/libraries/pagmo2/default.nix index dfb70ab624e1..7e30b0593b21 100644 --- a/pkgs/development/libraries/pagmo2/default.nix +++ b/pkgs/development/libraries/pagmo2/default.nix @@ -6,6 +6,8 @@ , ipopt , boost , tbb + # tests pass but take 30+ minutes +, runTests ? false }: stdenv.mkDerivation rec { @@ -20,24 +22,29 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ]; - buildInputs = [ eigen nlopt ipopt boost tbb ]; + buildInputs = [ eigen nlopt boost tbb ] ++ lib.optional (!stdenv.isDarwin) ipopt; cmakeFlags = [ - "-DPAGMO_BUILD_TESTS=no" + "-DPAGMO_BUILD_TESTS=${if runTests then "ON" else "OFF"}" "-DPAGMO_WITH_EIGEN3=yes" "-DPAGMO_WITH_NLOPT=yes" - "-DNLOPT_LIBRARY=${nlopt}/lib/libnlopt.so" + "-DNLOPT_LIBRARY=${nlopt}/lib/libnlopt${stdenv.hostPlatform.extensions.sharedLibrary}" + ] ++ lib.optionals stdenv.isLinux [ "-DPAGMO_WITH_IPOPT=yes" "-DCMAKE_CXX_FLAGS='-fuse-ld=gold'" + ] ++ lib.optionals stdenv.isDarwin [ + # FIXME: fails ipopt test with Invalid_Option on darwin, so disable. + "-DPAGMO_WITH_IPOPT=no" + "-DLLVM_USE_LINKER=gold" ]; - # tests pass but take 30+ minutes - doCheck = false; + doCheck = runTests; meta = with lib; { homepage = "https://esa.github.io/pagmo2/"; description = "Scientific library for massively parallel optimization"; license = licenses.gpl3Plus; + platforms = platforms.unix; maintainers = [ maintainers.costrouc ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ccb0c5d36269..f20f2f329076 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20902,6 +20902,10 @@ with pkgs; opensupaplex = callPackage ../games/opensupaplex { }; + openturns = callPackage ../development/libraries/openturns { + inherit (darwin.apple_sdk.frameworks) Accelerate; + }; + open-wbo = callPackage ../applications/science/logic/open-wbo {}; openwsman = callPackage ../development/libraries/openwsman {}; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3e07fd2db148..95a12e2ce094 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6386,6 +6386,11 @@ in { opentimestamps = callPackage ../development/python-modules/opentimestamps { }; + openturns = toPythonModule (pkgs.openturns.override { + python3Packages = self; + enablePython = true; + }); + opentracing = callPackage ../development/python-modules/opentracing { }; openvino = toPythonModule (pkgs.openvino.override {