anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / development / libraries / ogre / default.nix
blob2a4007c3ce71604385c50ff4f88fafa92f29232c
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , pkg-config
6 , unzip
7 , SDL2
8 , boost
9 , freetype
10 , libpng
11 , ois
12 , pugixml
13 , zziplib
14   # linux
15 , libglut
16 , libGL
17 , libGLU
18 , libICE
19 , libSM
20 , libX11
21 , libXaw
22 , libXmu
23 , libXrandr
24 , libXrender
25 , libXt
26 , libXxf86vm
27 , xorgproto
28   # darwin
29 , darwin
30   # optional
31 , withNvidiaCg ? false
32 , nvidia_cg_toolkit
33 , withSamples ? false
36 let
37   common = { version, hash, imguiVersion, imguiHash }:
38   let
39     imgui.src = fetchFromGitHub {
40       owner = "ocornut";
41       repo = "imgui";
42       rev = "v${imguiVersion}";
43       hash = imguiHash;
44     };
45   in
46   stdenv.mkDerivation {
47     pname = "ogre";
48     inherit version;
50     src = fetchFromGitHub {
51       owner = "OGRECave";
52       repo = "ogre";
53       rev = "v${version}";
54       inherit hash;
55     };
57     postPatch = ''
58       mkdir -p build
59       cp -R ${imgui.src} build/imgui-${imguiVersion}
60       chmod -R u+w build/imgui-${imguiVersion}
61     '';
63     nativeBuildInputs = [
64       cmake
65       pkg-config
66       unzip
67     ];
69     buildInputs = [
70       SDL2
71       boost
72       freetype
73       libpng
74       ois
75       pugixml
76       zziplib
77     ] ++ lib.optionals stdenv.hostPlatform.isLinux [
78       libglut
79       libGL
80       libGLU
81       libICE
82       libSM
83       libX11
84       libXaw
85       libXmu
86       libXrandr
87       libXrender
88       libXt
89       libXxf86vm
90       xorgproto
91     ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
92       darwin.apple_sdk.frameworks.Cocoa
93     ] ++ lib.optionals withNvidiaCg [
94       nvidia_cg_toolkit
95     ];
97     cmakeFlags = [
98       (lib.cmakeBool "OGRE_BUILD_DEPENDENCIES" false)
99       (lib.cmakeBool "OGRE_BUILD_SAMPLES" withSamples)
100     ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
101       (lib.cmakeBool "OGRE_BUILD_LIBS_AS_FRAMEWORKS" false)
102     ];
104     meta = {
105       description = "3D Object-Oriented Graphics Rendering Engine";
106       homepage = "https://www.ogre3d.org/";
107       maintainers = with lib.maintainers; [ raskin wegank ];
108       platforms = lib.platforms.unix;
109       license = lib.licenses.mit;
110     };
111   };
114   ogre_14 = common {
115     version = "14.3.1";
116     hash = "sha256-rr8tetBfFdZPVvN3fYRWltf8/e6oLcLL0uhHKWanuVA=";
117     # https://github.com/OGRECave/ogre/blob/v14.3.1/Components/Overlay/CMakeLists.txt
118     imguiVersion = "1.91.2";
119     imguiHash = "sha256-B7XXQNuEPcT1ID5nMYbAV+aNCG9gIrC9J7BLnYB8yjI=";
120   };
122   ogre_13 = common {
123     version = "13.6.5";
124     hash = "sha256-8VQqePrvf/fleHijVIqWWfwOusGjVR40IIJ13o+HwaE=";
125     # https://github.com/OGRECave/ogre/blob/v13.6.5/Components/Overlay/CMakeLists.txt
126     imguiVersion = "1.87";
127     imguiHash = "sha256-H5rqXZFw+2PfVMsYvAK+K+pxxI8HnUC0GlPhooWgEYM=";
128   };