otadump: init at 0.1.2 (#329129)
[NixPkgs.git] / pkgs / applications / graphics / f3d / default.nix
blobc654e78a9b456ba7147bc27de026226ad70885ba
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , help2man
6 , gzip
7 # There is a f3d overriden with EGL enabled vtk in top-level/all-packages.nix
8 # compiling with EGL enabled vtk will result in f3d running in headless mode
9 # See https://github.com/NixOS/nixpkgs/pull/324022. This may change later.
10 , vtk_9
11 , autoPatchelfHook
12 , Cocoa
13 , OpenGL
14 , python3Packages
15 , opencascade-occt
16 , assimp
17 , fontconfig
18 , withManual ? !stdenv.hostPlatform.isDarwin
19 , withPythonBinding ? false
22 stdenv.mkDerivation rec {
23   pname = "f3d";
24   version = "2.5.0";
26   outputs = [ "out" ] ++ lib.optionals withManual [ "man" ];
28   src = fetchFromGitHub {
29     owner = "f3d-app";
30     repo = "f3d";
31     rev = "refs/tags/v${version}";
32     hash = "sha256-Mw40JyXZj+Q4a9dD5UnkUSdUfQGaV92gor8ynn86VJ8=";
33   };
35   nativeBuildInputs = [
36     cmake
37   ] ++ lib.optionals withManual [
38     # manpage
39     help2man
40     gzip
41   ] ++ lib.optionals stdenv.hostPlatform.isElf [
42     # https://github.com/f3d-app/f3d/pull/1217
43     autoPatchelfHook
44   ];
46   buildInputs = [
47     vtk_9
48     opencascade-occt
49     assimp
50     fontconfig
51   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
52     Cocoa
53     OpenGL
54   ] ++ lib.optionals withPythonBinding [
55     python3Packages.python
56     # Using C++ header files, not Python import
57     python3Packages.pybind11
58   ];
60   cmakeFlags = [
61     # conflict between VTK and Nixpkgs;
62     # see https://github.com/NixOS/nixpkgs/issues/89167
63     "-DCMAKE_INSTALL_LIBDIR=lib"
64     "-DCMAKE_INSTALL_INCLUDEDIR=include"
65     "-DCMAKE_INSTALL_BINDIR=bin"
66     "-DF3D_MODULE_EXTERNAL_RENDERING=ON"
67     "-DF3D_PLUGIN_BUILD_ASSIMP=ON"
68     "-DF3D_PLUGIN_BUILD_OCCT=ON"
69   ] ++ lib.optionals withManual [
70     "-DF3D_LINUX_GENERATE_MAN=ON"
71   ] ++ lib.optionals withPythonBinding [
72     "-DF3D_BINDINGS_PYTHON=ON"
73   ];
75   meta = with lib; {
76     description = "Fast and minimalist 3D viewer using VTK";
77     homepage = "https://f3d-app.github.io/f3d";
78     changelog = "https://github.com/f3d-app/f3d/releases/tag/v${version}";
79     license = licenses.bsd3;
80     maintainers = with maintainers; [ bcdarwin pbsds ];
81     platforms = with platforms; unix;
82     mainProgram = "f3d";
83     # error: use of undeclared identifier 'NSMenuItem'
84     # adding AppKit does not solve it
85     broken = with stdenv.hostPlatform; isDarwin && isx86_64;
86   };