nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 cmake,
3 doxygen,
4 eiquadprog,
5 fetchFromGitHub,
6 lib,
7 osqp-eigen,
8 pkg-config,
9 pinocchio,
10 proxsuite,
11 stdenv,
12 pythonSupport ? false,
13 python3Packages,
14}:
15
16stdenv.mkDerivation (finalAttrs: {
17 pname = "tsid";
18 version = "1.8.0";
19
20 src = fetchFromGitHub {
21 owner = "stack-of-tasks";
22 repo = "tsid";
23 rev = "v${finalAttrs.version}";
24 hash = "sha256-SS6JhU4fuZtTzv/EY31ixwwLOzmO/dN3H5HEMh/URTA=";
25 };
26
27 cmakeFlags = [
28 (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
29 (lib.cmakeBool "BUILD_WITH_OSQP" true)
30 (lib.cmakeBool "BUILD_WITH_PROXQP" true)
31 (lib.cmakeBool "INSTALL_DOCUMENTATION" true)
32 ];
33
34 outputs = [
35 "out"
36 "doc"
37 ];
38
39 nativeBuildInputs = [
40 doxygen
41 cmake
42 pkg-config
43 ]
44 ++ lib.optionals pythonSupport [
45 python3Packages.python
46 python3Packages.pythonImportsCheckHook
47 ];
48
49 propagatedBuildInputs = [
50 eiquadprog
51 osqp-eigen
52 proxsuite
53 ]
54 ++ lib.optional (!pythonSupport) pinocchio
55 ++ lib.optional pythonSupport python3Packages.pinocchio;
56
57 doCheck = true;
58 pythonImportsCheck = [ "tsid" ];
59
60 meta = {
61 description = "Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio";
62 homepage = "https://github.com/stack-of-tasks/tsid";
63 license = lib.licenses.bsd2;
64 maintainers = with lib.maintainers; [ nim65s ];
65 platforms = lib.platforms.unix;
66 };
67})