diff --git a/pkgs/by-name/ei/eiquadprog/package.nix b/pkgs/by-name/ei/eiquadprog/package.nix new file mode 100644 index 000000000000..9380e7f9d2bf --- /dev/null +++ b/pkgs/by-name/ei/eiquadprog/package.nix @@ -0,0 +1,38 @@ +{ + boost, + cmake, + eigen, + fetchFromGitHub, + jrl-cmakemodules, + lib, + stdenv, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "eiquadprog"; + version = "1.2.9"; + + src = fetchFromGitHub { + owner = "stack-of-tasks"; + repo = "eiquadprog"; + rev = "v${finalAttrs.version}"; + hash = "sha256-VqRx06sCCZrnB+NWm6Z9OMKzjKQIydGgKQU6fMY7phk="; + }; + + nativeBuildInputs = [ + cmake + jrl-cmakemodules + ]; + propagatedBuildInputs = [ eigen ]; + checkInputs = [ boost ]; + + doCheck = true; + + meta = { + description = "C++ reimplementation of eiquadprog"; + homepage = "https://github.com/stack-of-tasks/eiquadprog"; + changelog = "https://github.com/stack-of-tasks/eiquadprog/blob/v${finalAttrs.version}/CHANGELOG.md"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ nim65s ]; + }; +}) diff --git a/pkgs/by-name/os/osqp-eigen/package.nix b/pkgs/by-name/os/osqp-eigen/package.nix new file mode 100644 index 000000000000..935bb0bfa659 --- /dev/null +++ b/pkgs/by-name/os/osqp-eigen/package.nix @@ -0,0 +1,44 @@ +{ + catch2, + cmake, + eigen, + fetchFromGitHub, + lib, + osqp, + stdenv, + valgrind, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "osqp-eigen"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "robotology"; + repo = "osqp-eigen"; + rev = "v${finalAttrs.version}"; + hash = "sha256-mN9oU+qXm+Kob8M4rtxv4qNSbXlFCqpN+s8dHedU8Mo="; + }; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_TESTING" true) + (lib.cmakeBool "OSQPEIGEN_RUN_Valgrind_tests" stdenv.isLinux) + ]; + + nativeBuildInputs = [ cmake ]; + propagatedBuildInputs = [ + eigen + osqp + ]; + checkInputs = [ catch2 ]; + nativeCheckInputs = lib.optional stdenv.isLinux valgrind; + + doCheck = true; + + meta = { + description = "Simple Eigen-C++ wrapper for OSQP library"; + homepage = "https://github.com/robotology/osqp-eigen"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ nim65s ]; + }; +}) diff --git a/pkgs/by-name/ts/tsid/package.nix b/pkgs/by-name/ts/tsid/package.nix new file mode 100644 index 000000000000..054857f8b222 --- /dev/null +++ b/pkgs/by-name/ts/tsid/package.nix @@ -0,0 +1,66 @@ +{ + cmake, + doxygen, + eiquadprog, + fetchFromGitHub, + lib, + osqp-eigen, + pkg-config, + pinocchio, + proxsuite, + stdenv, + pythonSupport ? false, + python3Packages, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "tsid"; + version = "1.7.1"; + + src = fetchFromGitHub { + owner = "stack-of-tasks"; + repo = "tsid"; + rev = "v${finalAttrs.version}"; + hash = "sha256-id6OCOX01o41Z5kqzwvjYa5uoQZtzhRaFBuOBhbLcTA="; + }; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) + (lib.cmakeBool "BUILD_WITH_OSQP" true) + (lib.cmakeBool "BUILD_WITH_PROXQP" true) + (lib.cmakeBool "INSTALL_DOCUMENTATION" true) + ]; + + outputs = [ + "doc" + "out" + ]; + + nativeBuildInputs = [ + doxygen + cmake + pkg-config + ] ++ lib.optional pythonSupport python3Packages.python; + + propagatedBuildInputs = + [ + eiquadprog + osqp-eigen + proxsuite + ] + ++ lib.optional (!pythonSupport) pinocchio ++ lib.optional pythonSupport python3Packages.pinocchio; + + doCheck = true; + # pythonImportsCheck, but in stdenv.mkDerivation + postInstall = lib.optionalString pythonSupport '' + PYTHONPATH=$out/${python3Packages.python.sitePackages}:$PYTHONPATH + python -c "import tsid" + ''; + + meta = { + description = "Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio"; + homepage = "https://github.com/stack-of-tasks/tsid"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ nim65s ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1397631cf3b9..ef218c2a06bc 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15758,6 +15758,11 @@ self: super: with self; { tsfresh = callPackage ../development/python-modules/tsfresh { }; + tsid = toPythonModule (pkgs.tsid.override { + pythonSupport = true; + python3Packages = self; + }); + tskit = callPackage ../development/python-modules/tskit { }; ttach = callPackage ../development/python-modules/ttach { };