pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / by-name / fa / fatrop / package.nix
blobf575b763d04a59c0423e79abaab2c5d5faf83e4b
2   blasfeo,
3   cmake,
4   fetchFromGitHub,
5   lib,
6   llvmPackages,
7   python3Packages,
8   pythonSupport ? false,
9   stdenv,
12 stdenv.mkDerivation (finalAttrs: {
13   pname = "fatrop";
14   version = "0.0.4";
16   src = fetchFromGitHub {
17     owner = "meco-group";
18     repo = "fatrop";
19     rev = "v${finalAttrs.version}";
20     hash = "sha256-XVOS9L2vQeFkPXZieX1ZJiVagR0f2BtiRmSDPB9LQeI=";
21   };
23   nativeBuildInputs = [ cmake ];
24   buildInputs =
25     [ blasfeo ]
26     ++ lib.optionals pythonSupport [ python3Packages.pybind11 ]
27     ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.openmp ];
29   cmakeFlags = [
30     (lib.cmakeBool "BUILD_DOCS" true)
31     (lib.cmakeBool "ENABLE_MULTITHREADING" true)
32     (lib.cmakeBool "BUILD_WITH_BLASFEO" false)
33     (lib.cmakeBool "WITH_PYTHON" pythonSupport)
34     (lib.cmakeBool "WITH_SPECTOOL" false) # this depends on casadi
35   ];
37   doCheck = true;
39   meta = {
40     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";
41     homepage = "https://github.com/meco-group/fatrop";
42     license = lib.licenses.lgpl3Only;
43     maintainers = with lib.maintainers; [ nim65s ];
44   };