diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix index dd893ba9a976..dc3b9e4b3a61 100644 --- a/pkgs/applications/graphics/f3d/default.nix +++ b/pkgs/applications/graphics/f3d/default.nix @@ -6,11 +6,11 @@ , gzip , vtk_9 , autoPatchelfHook -, libX11 -, libGL , Cocoa , OpenGL +, python3Packages , withManual ? !stdenv.isDarwin +, withPythonBinding ? false }: stdenv.mkDerivation rec { @@ -37,7 +37,16 @@ stdenv.mkDerivation rec { autoPatchelfHook ]; - buildInputs = [ vtk_9 ] ++ lib.optionals stdenv.isDarwin [ Cocoa OpenGL ]; + buildInputs = [ + vtk_9 + ] ++ lib.optionals stdenv.isDarwin [ + Cocoa + OpenGL + ] ++ lib.optionals withPythonBinding [ + python3Packages.python + # Using C++ header files, not Python import + python3Packages.pybind11 + ]; cmakeFlags = [ # conflict between VTK and Nixpkgs; @@ -45,8 +54,11 @@ stdenv.mkDerivation rec { "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_INCLUDEDIR=include" "-DCMAKE_INSTALL_BINDIR=bin" + "-DF3D_MODULE_EXTERNAL_RENDERING=ON" ] ++ lib.optionals withManual [ "-DF3D_LINUX_GENERATE_MAN=ON" + ] ++ lib.optionals withPythonBinding [ + "-DF3D_BINDINGS_PYTHON=ON" ]; meta = with lib; { diff --git a/pkgs/by-name/ex/exhibit/package.nix b/pkgs/by-name/ex/exhibit/package.nix new file mode 100644 index 000000000000..79b0f4742ea4 --- /dev/null +++ b/pkgs/by-name/ex/exhibit/package.nix @@ -0,0 +1,59 @@ +{ + lib, + python3Packages, + fetchFromGitHub, + meson, + ninja, + pkg-config, + gobject-introspection, + wrapGAppsHook4, + desktop-file-utils, + libadwaita, +}: + +python3Packages.buildPythonApplication rec { + pname = "exhibit"; + version = "1.2.0"; + pyproject = false; # Built with meson + + src = fetchFromGitHub { + owner = "Nokse22"; + repo = "Exhibit"; + rev = "v${version}"; + hash = "sha256-yNS6q7XbWda2+so9QRS/c4uYaVPo7b4JCite5nzc3Eo="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gobject-introspection + wrapGAppsHook4 + desktop-file-utils + ]; + + buildInputs = [ libadwaita ]; + + dependencies = with python3Packages; [ + pygobject3 + f3d + ]; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = { + description = "3D model viewer for the GNOME desktop powered by f3d"; + homepage = "https://github.com/Nokse22/Exhibit"; + license = with lib.licenses; [ + gpl3Plus + cc0 + ]; + mainProgram = "exhibit"; + maintainers = with lib.maintainers; [ aleksana ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix index 30a6dec4c530..5ad312c1b865 100644 --- a/pkgs/development/libraries/vtk/generic.nix +++ b/pkgs/development/libraries/vtk/generic.nix @@ -79,8 +79,10 @@ in stdenv.mkDerivation { "-DCMAKE_CXX_FLAGS=-fPIC" "-DVTK_MODULE_USE_EXTERNAL_vtkpng=ON" "-DVTK_MODULE_USE_EXTERNAL_vtktiff=1" + "-DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES" ] ++ lib.optionals (!stdenv.isDarwin) [ "-DOPENGL_INCLUDE_DIR=${libGL}/include" + "-DVTK_OPENGL_HAS_EGL=ON" ] ++ [ "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_INCLUDEDIR=include" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1869e52ba12d..a798ad23a2a5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4083,6 +4083,11 @@ self: super: with self; { ezyrb = callPackage ../development/python-modules/ezyrb { }; + f3d = toPythonModule (pkgs.f3d.override { + withPythonBinding = true; + python3Packages = self; + }); + f5-icontrol-rest = callPackage ../development/python-modules/f5-icontrol-rest { }; f5-sdk = callPackage ../development/python-modules/f5-sdk { };