From 38f97d09b303d523098764f8b8b77f79871aeaa1 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Fri, 2 Aug 2024 16:06:46 +0200 Subject: [PATCH] fatrop: init at 0.0.1 --- pkgs/by-name/fa/fatrop/package.nix | 56 ++++++++++++++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 58 insertions(+) create mode 100644 pkgs/by-name/fa/fatrop/package.nix diff --git a/pkgs/by-name/fa/fatrop/package.nix b/pkgs/by-name/fa/fatrop/package.nix new file mode 100644 index 000000000000..e85eede1e2d9 --- /dev/null +++ b/pkgs/by-name/fa/fatrop/package.nix @@ -0,0 +1,56 @@ +{ + blasfeo, + cmake, + fetchFromGitHub, + lib, + llvmPackages, + python3Packages, + pythonSupport ? false, + stdenv, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "fatrop"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "meco-group"; + repo = "fatrop"; + rev = "v${finalAttrs.version}"; + hash = "sha256-c4qYh8RutRsMIx3m0oxXy73fnLTBGVZ1QjFcLEJ413Y="; + }; + + postPatch = lib.optionalString pythonSupport '' + # avoid submodule + rmdir external/pybind11 + ln -s ${python3Packages.pybind11.src} external/pybind11 + + # install python module + echo "" >> fatropy/CMakeLists.txt + echo "install(DIRECTORY fatropy DESTINATION ${python3Packages.python.sitePackages})" >> fatropy/CMakeLists.txt + echo "install(TARGETS _fatropy DESTINATION ${python3Packages.python.sitePackages}/fatropy)" >> fatropy/CMakeLists.txt + ''; + + nativeBuildInputs = [ cmake ]; + buildInputs = + [ blasfeo ] + ++ lib.optionals pythonSupport [ python3Packages.pybind11 ] + ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ]; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_DOCS" true) + (lib.cmakeBool "ENABLE_MULTITHREADING" true) + (lib.cmakeBool "BUILD_WITH_BLASFEO" false) + (lib.cmakeBool "WITH_PYTHON" pythonSupport) + (lib.cmakeBool "WITH_SPECTOOL" false) # this depends on casadi + ]; + + doCheck = true; + + meta = { + description = "nonlinear optimal control problem solver that aims to be fast, support a broad class of optimal control problems and achieve a high numerical robustness"; + homepage = "https://github.com/meco-group/fatrop"; + license = lib.licenses.lgpl3Only; + maintainers = with lib.maintainers; [ nim65s ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0c4088511f76..b552c507334f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4266,6 +4266,8 @@ self: super: with self; { fasttext-predict = callPackage ../development/python-modules/fasttext-predict { }; + fatrop = toPythonModule (pkgs.fatrop.override { pythonSupport = true; python3Packages = self; }); + faust-cchardet = callPackage ../development/python-modules/faust-cchardet { }; favicon = callPackage ../development/python-modules/favicon { };