kdePackages.kirigami-addons: 1.5.0 -> 1.6.0 (#360539)
[NixPkgs.git] / pkgs / applications / graphics / foxotron / default.nix
blob1ccbc136c7c9c3a53f855bb108ce0dc7ae3684d4
1 { stdenv
2 , lib
3 , fetchFromGitHub
4 , fetchpatch
5 , nix-update-script
6 , cmake
7 , pkg-config
8 , makeWrapper
9 , zlib
10 , libX11
11 , libXrandr
12 , libXinerama
13 , libXcursor
14 , libXi
15 , libXext
16 , libGLU
17 , alsa-lib
18 , fontconfig
19 , AVFoundation
20 , Carbon
21 , Cocoa
22 , CoreAudio
23 , Kernel
24 , OpenGL
27 stdenv.mkDerivation rec {
28   pname = "foxotron";
29   version = "2024-09-23";
31   src = fetchFromGitHub {
32     owner = "Gargaj";
33     repo = "Foxotron";
34     rev = version;
35     fetchSubmodules = true;
36     hash = "sha256-OnZWoiQ5ASKQV73/W6nl17B2ANwqCy/PlybHbNwrOyQ=";
37   };
39   patches = [
40     (fetchpatch {
41       name = "0001-assimp-Include-cstdint-for-std-uint32_t.patch";
42       url = "https://github.com/assimp/assimp/commit/108e3192a201635e49e99a91ff2044e1851a2953.patch";
43       stripLen = 1;
44       extraPrefix = "externals/assimp/";
45       hash = "sha256-rk0EFmgeZVwvx3NJOOob5Jwj9/J+eOtuAzfwp88o+J4=";
46     })
47   ];
49   postPatch = ''
50     substituteInPlace CMakeLists.txt \
51       --replace "set(CMAKE_OSX_ARCHITECTURES x86_64)" ""
53     # Outdated vendored assimp, many warnings with newer compilers, too old for CMake option to control this
54     # Note that this -Werror caused issues on darwin, so make sure to re-check builds there before removing this
55     substituteInPlace externals/assimp/code/CMakeLists.txt \
56       --replace 'TARGET_COMPILE_OPTIONS(assimp PRIVATE -Werror)' ""
57   '';
59   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
61   buildInputs = [ zlib ]
62     ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext alsa-lib fontconfig libGLU ]
63     ++ lib.optionals stdenv.hostPlatform.isDarwin [ AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL ];
65   env.NIX_CFLAGS_COMPILE = toString [
66     # Needed with GCC 12
67     "-Wno-error=array-bounds"
68   ];
70   # error: writing 1 byte into a region of size 0
71   hardeningDisable = [ "fortify3" ];
73   installPhase = ''
74     runHook preInstall
76     mkdir -p $out/{bin,lib/foxotron}
77     cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \
78       ../{config.json,Shaders,Skyboxes} $out/lib/foxotron/
79     wrapProgram $out/lib/foxotron/Foxotron \
80       --chdir "$out/lib/foxotron"
81     ln -s $out/{lib/foxotron,bin}/Foxotron
83     runHook postInstall
84   '';
86   passthru = {
87     updateScript = nix-update-script { };
88   };
90   meta = with lib; {
91     description = "General purpose model viewer";
92     longDescription = ''
93       ASSIMP based general purpose model viewer ("turntable") created for the
94       Revision 2021 3D Graphics Competition.
95     '';
96     homepage = "https://github.com/Gargaj/Foxotron";
97     license = licenses.unlicense;
98     maintainers = with maintainers; [ OPNA2608 ];
99     platforms = platforms.all;
100     mainProgram = "Foxotron";
101   };