diff --git a/pkgs/default.nix b/pkgs/default.nix index 19886f75f2..5ba4984868 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -74,6 +74,12 @@ in { gazebo_11 = self.libsForQt5.callPackage ./gazebo { }; gazebo = self.gazebo_11; + gz-cmake_3 = self.callPackage ./gazebo/gz-cmake/3.nix { }; + + gz-math_7 = self.callPackage ./gazebo/gz-math/7.nix { }; + + gz-utils_2 = self.callPackage ./gazebo/gz-utils/2.nix { }; + geographiclib = self.callPackage ./geographiclib { }; ignition = { @@ -123,7 +129,8 @@ in { python310 = pythonOverridesFor super.python310; sdformat_6 = self.callPackage ./sdformat/6.nix { }; - sdformat_9 = self.callPackage ./sdformat { }; + sdformat_9 = self.callPackage ./sdformat/9.nix { }; + sdformat_13 = self.callPackage ./sdformat/13.nix { }; sdformat = self.sdformat_9; superflore = self.python3Packages.callPackage ./superflore { }; diff --git a/pkgs/gazebo/gz-cmake/3.nix b/pkgs/gazebo/gz-cmake/3.nix new file mode 100644 index 0000000000..a6e642284f --- /dev/null +++ b/pkgs/gazebo/gz-cmake/3.nix @@ -0,0 +1,6 @@ +{ callPackage, ... } @ args : + +callPackage ./generic.nix ({ + version = "3.0.1"; + srcHash = "sha256-yDQYdui+JtLhBoXHRMvyhAqrnsbOSTx9qfnddYjuH7Q="; +} // args) diff --git a/pkgs/gazebo/gz-cmake/generic.nix b/pkgs/gazebo/gz-cmake/generic.nix new file mode 100644 index 0000000000..df88ec8a2f --- /dev/null +++ b/pkgs/gazebo/gz-cmake/generic.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config +, version, srcHash +, ... }: + +stdenv.mkDerivation rec { + pname = "gz-cmake${lib.versions.major version}"; + inherit version; + + src = fetchFromGitHub rec { + name = "${rev}-source"; + owner = "gazebosim"; + repo = "gz-cmake"; + rev = "${pname}_${version}"; + hash = srcHash; + }; + + nativeBuildInputs = [ cmake ]; + # pkg-config is needed to use some CMake modules in this package + propagatedBuildInputs = [ pkg-config ]; + + meta = with lib; { + homepage = "https://gazebosim.org/libs/cmake"; + description = "A set of CMake modules that are used by the C++-based Gazebo projects. "; + license = licenses.asl20; + maintainers = with maintainers; [ lopsided98 ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/gazebo/gz-math/7.nix b/pkgs/gazebo/gz-math/7.nix new file mode 100644 index 0000000000..3dee27f21a --- /dev/null +++ b/pkgs/gazebo/gz-math/7.nix @@ -0,0 +1,8 @@ +{ callPackage, gz-cmake_3, gz-utils_2, ... } @ args: + +callPackage ./generic.nix (args // { + version = "7.1.0"; + srcHash = "sha256-iAjafpJJSCZoQfb2D5qctUpyph73ZpVRjnJWHU8zNnQ="; + gz-cmake = gz-cmake_3; + gz-utils = gz-utils_2; +}) diff --git a/pkgs/gazebo/gz-math/generic.nix b/pkgs/gazebo/gz-math/generic.nix new file mode 100644 index 0000000000..5511a24bf1 --- /dev/null +++ b/pkgs/gazebo/gz-math/generic.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, gz-cmake, gz-utils, eigen +, version, srcHash +, ... }: + +stdenv.mkDerivation rec { + pname = "gz-math${lib.versions.major version}"; + inherit version; + + src = fetchFromGitHub rec { + name = "${rev}-source"; + owner = "gazebosim"; + repo = "gz-math"; + rev = "${pname}_${version}"; + hash = srcHash; + }; + + nativeBuildInputs = [ cmake gz-cmake ]; + buildInputs = [ gz-utils eigen ]; + + meta = with lib; { + homepage = "https://gazebosim.org/libs/math"; + description = "General purpose math library for robot applications. "; + license = licenses.asl20; + maintainers = with maintainers; [ lopsided98 ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/gazebo/gz-utils/2.nix b/pkgs/gazebo/gz-utils/2.nix new file mode 100644 index 0000000000..32b14d6c4f --- /dev/null +++ b/pkgs/gazebo/gz-utils/2.nix @@ -0,0 +1,7 @@ +{ callPackage, gz-cmake_3, ... } @ args: + +callPackage ./generic.nix (args // { + version = "2.0.0"; + srcHash = "sha256-osY+q+H7F05gcLrpyMGeLsddh2nevG4lZsFeyeZWdaY="; + gz-cmake = gz-cmake_3; +}) diff --git a/pkgs/gazebo/gz-utils/generic.nix b/pkgs/gazebo/gz-utils/generic.nix new file mode 100644 index 0000000000..551eed3297 --- /dev/null +++ b/pkgs/gazebo/gz-utils/generic.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromGitHub, cmake, gz-cmake +, version, srcHash +, ... }: + +stdenv.mkDerivation rec { + pname = "gz-utils${lib.versions.major version}"; + inherit version; + + src = fetchFromGitHub rec { + name = "${rev}-source"; + owner = "gazebosim"; + repo = "gz-utils"; + rev = "${pname}_${version}"; + hash = srcHash; + }; + + nativeBuildInputs = [ cmake gz-cmake ]; + + meta = with lib; { + homepage = "https://gazebosim.org/libs/utils"; + description = "Classes and functions for robot applications"; + license = licenses.asl20; + maintainers = with maintainers; [ lopsided98 ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/sdformat/13.nix b/pkgs/sdformat/13.nix new file mode 100644 index 0000000000..3a9aa55f9b --- /dev/null +++ b/pkgs/sdformat/13.nix @@ -0,0 +1,10 @@ +{ callPackage, gz-cmake_3, gz-math_7, gz-utils_2, ... } @ args: + +callPackage ./generic.nix (args // { + version = "13.4.1"; + srcHash = "sha256-BlYXDccIs1kOj34Nwpuemzt1z8aSzZtD8zeWrIQTJHw="; + gz-cmake = gz-cmake_3; + gz-math = gz-math_7; + gz-utils = gz-utils_2; +}) + diff --git a/pkgs/sdformat/6.nix b/pkgs/sdformat/6.nix index 627e8644b3..828eb8edb5 100644 --- a/pkgs/sdformat/6.nix +++ b/pkgs/sdformat/6.nix @@ -1,8 +1,9 @@ { callPackage, ignition, ... } @ args: -callPackage ./. (args // { +callPackage ./generic.nix (args // { version = "6.3.1"; srcHash = "sha256-JPjDFLFP0+mZ7q1am3iPmDlcyGG/i1Yti8zKdY7d7ME="; - ignition-math = ignition.math4; + gz-cmake = null; + gz-math = ignition.math4; + gz-utils = null; }) - diff --git a/pkgs/sdformat/9.nix b/pkgs/sdformat/9.nix new file mode 100644 index 0000000000..60c4d28f95 --- /dev/null +++ b/pkgs/sdformat/9.nix @@ -0,0 +1,10 @@ +{ callPackage, ignition, ... } @ args: + +callPackage ./generic.nix (args // { + version = "9.10.0"; + srcHash = "sha256-VmDU0VR/TkA5461kgwsp0uv8aqsqqG7YbY2DBe5Os8I="; + gz-cmake = ignition.cmake2; + gz-math = ignition.math6; + gz-utils = null; +}) + diff --git a/pkgs/sdformat/default.nix b/pkgs/sdformat/generic.nix similarity index 63% rename from pkgs/sdformat/default.nix rename to pkgs/sdformat/generic.nix index c686feb142..43d2ee4770 100644 --- a/pkgs/sdformat/default.nix +++ b/pkgs/sdformat/generic.nix @@ -1,10 +1,7 @@ -{ lib, stdenv, fetchurl, fetchpatch, cmake, pkg-config, ruby, boost, ignition -, ignition-math ? ignition.math, tinyxml, urdfdom, urdfdom-headers -, console-bridge -, version ? "9.9.0" -, srcHash ? "sha256-/Vf7xkWfehJzLcAS6JDTk5HuC4tL0p3ImGfq7/OutZw=" -, ... - }: +{ lib, stdenv, fetchurl, fetchpatch, cmake, gz-cmake, ruby, boost +, gz-math, gz-utils, tinyxml-2, tinyxml, urdfdom +, version, srcHash +, ... }: stdenv.mkDerivation rec { pname = "sdformat"; @@ -18,10 +15,7 @@ stdenv.mkDerivation rec { patches = # Fix asssumptions that CMAKE_INSTALL_*DIR variables are relative # https://github.com/gazebosim/sdformat/pull/1190 - lib.singleton (if lib.versionAtLeast version "9" then fetchpatch { - url = "https://github.com/gazebosim/sdformat/commit/e8286cd012623173f40536c7fbea780bb65e7f0b.patch"; - hash = "sha256-WHpbN2n3JDV98SzWpPRtFE4xRB/jdlwMZagTsIZ1ixk="; - } else fetchpatch { + lib.optional (lib.versionOlder version "9") (fetchpatch { url = "https://github.com/gazebosim/sdformat/commit/b37a28eefb4c06e1add5fa53d7a08cd5d2402f9b.patch"; hash = "sha256-IZ5RIl3GlAY4LzcmOOpiWZkyjVnsislo5brwu+t5pZo="; }) ++ @@ -34,10 +28,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - nativeBuildInputs = [ cmake pkg-config ruby ]; - buildInputs = [ urdfdom ]; - propagatedBuildInputs = [ ignition-math tinyxml ] - ++ lib.optional (lib.versionOlder version "9") boost; + nativeBuildInputs = [ cmake gz-cmake ruby ]; + buildInputs = [ gz-math gz-utils urdfdom ]; + propagatedBuildInputs = [ gz-math ] + ++ lib.singleton (if lib.versionAtLeast version "10.0.0" then tinyxml-2 else tinyxml) + ++ lib.optional (lib.versionOlder version "8.0.0") boost; meta = with lib; { homepage = "http://sdformat.org/";