tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
trenchbroom: 2022.1 -> 2023.1
Astro
2 years ago
199d7bd5
e74e6844
+60
-9
1 changed file
expand all
collapse all
unified
split
pkgs
applications
misc
trenchbroom
default.nix
+60
-9
pkgs/applications/misc/trenchbroom/default.nix
···
1
-
{ lib, stdenv, fetchFromGitHub
2
-
, cmake, ninja, git, pandoc, pkg-config
3
-
, libGL, libGLU, freeimage
4
, catch2, fmt, glew, miniz, tinyxml-2, xorg
5
, qtbase, wrapQtAppsHook
6
, copyDesktopItems, makeDesktopItem
···
8
9
stdenv.mkDerivation rec {
10
pname = "TrenchBroom";
11
-
version = "2022.1";
12
13
src = fetchFromGitHub {
14
owner = "TrenchBroom";
15
repo = "TrenchBroom";
16
rev = "v${version}";
17
-
sha256 = "sha256-FNpYBfKnY9foPq1+21+382KKXieHksr3tCox251iJn4=";
18
fetchSubmodules = true;
19
};
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
20
postPatch = ''
21
substituteInPlace common/src/Version.h.in \
22
--subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \
23
--subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \
24
--subst-var-by GIT_DESCRIBE v${version}
0
0
25
'';
26
27
-
nativeBuildInputs = [ cmake git pandoc wrapQtAppsHook copyDesktopItems pkg-config ];
28
buildInputs = [
29
-
libGL libGLU xorg.libXxf86vm freeimage qtbase catch2 fmt glew miniz tinyxml-2
30
-
xorg.libSM
0
31
];
32
QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}";
33
QT_QPA_PLATFORM = "offscreen";
34
35
cmakeFlags = [
0
0
0
36
# https://github.com/TrenchBroom/TrenchBroom/issues/4002#issuecomment-1125390780
37
"-DCMAKE_PREFIX_PATH=cmake/packages"
38
];
39
ninjaFlags = [
40
"TrenchBroom"
41
];
42
-
preBuild = "export HOME=$(mktemp -d)";
43
44
postInstall = ''
45
pushd $out/share/TrenchBroom/icons
···
71
description = "Level editor for Quake-engine based games";
72
license = licenses.gpl3Only;
73
maintainers = with maintainers; [ astro ];
0
74
};
75
}
···
1
+
{ lib, stdenv, fetchFromGitHub, writeText
2
+
, cmake, ninja, curl, git, pandoc, pkg-config, unzip, zip
3
+
, libGL, libGLU, freeimage, freetype, assimp
4
, catch2, fmt, glew, miniz, tinyxml-2, xorg
5
, qtbase, wrapQtAppsHook
6
, copyDesktopItems, makeDesktopItem
···
8
9
stdenv.mkDerivation rec {
10
pname = "TrenchBroom";
11
+
version = "2023.1";
12
13
src = fetchFromGitHub {
14
owner = "TrenchBroom";
15
repo = "TrenchBroom";
16
rev = "v${version}";
17
+
sha256 = "sha256-62xcFKSqxPS+J54+kLo/hewM+Wu/rVBGD8oiECDCJpA=";
18
fetchSubmodules = true;
19
};
20
+
# Manually simulate a vcpkg installation so that it can link the libraries
21
+
# properly.
22
+
postUnpack =
23
+
let
24
+
vcpkg_target = "x64-linux";
25
+
26
+
vcpkg_pkgs = [
27
+
"assimp"
28
+
"catch2"
29
+
"fmt"
30
+
"freeimage"
31
+
"freetype"
32
+
"glew"
33
+
"miniz"
34
+
"tinyxml2"
35
+
];
36
+
37
+
updates_vcpkg_file = writeText "update_vcpkg_trenchbroom" (
38
+
lib.concatMapStringsSep "\n" (name: ''
39
+
Package : ${name}
40
+
Architecture : ${vcpkg_target}
41
+
Version : 1.0
42
+
Status : is installed
43
+
'') vcpkg_pkgs);
44
+
in ''
45
+
export VCPKG_ROOT="$TMP/vcpkg"
46
+
47
+
mkdir -p $VCPKG_ROOT/.vcpkg-root
48
+
mkdir -p $VCPKG_ROOT/installed/${vcpkg_target}/lib
49
+
mkdir -p $VCPKG_ROOT/installed/vcpkg/updates
50
+
ln -s ${updates_vcpkg_file} $VCPKG_ROOT/installed/vcpkg/status
51
+
mkdir -p $VCPKG_ROOT/installed/vcpkg/info
52
+
${lib.concatMapStrings (name: ''
53
+
touch $VCPKG_ROOT/installed/vcpkg/info/${name}_1.0_${vcpkg_target}.list
54
+
'') vcpkg_pkgs}
55
+
56
+
ln -s ${assimp.lib}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
57
+
ln -s ${catch2}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
58
+
ln -s ${fmt}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
59
+
ln -s ${freeimage}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
60
+
ln -s ${freetype}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
61
+
ln -s ${glew.out}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
62
+
ln -s ${miniz}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
63
+
ln -s ${tinyxml-2}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
64
+
'';
65
postPatch = ''
66
substituteInPlace common/src/Version.h.in \
67
--subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \
68
--subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \
69
--subst-var-by GIT_DESCRIBE v${version}
70
+
substituteInPlace app/CMakeLists.txt \
71
+
--replace 'set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")' 'set(CPACK_PACKAGING_INSTALL_PREFIX "'$out'")'
72
'';
73
74
+
nativeBuildInputs = [ cmake ninja curl git pandoc wrapQtAppsHook copyDesktopItems pkg-config unzip zip ];
75
buildInputs = [
76
+
libGL libGLU xorg.libXxf86vm xorg.libSM
77
+
freeimage freetype qtbase catch2 fmt
78
+
glew miniz tinyxml-2 assimp
79
];
80
QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}";
81
QT_QPA_PLATFORM = "offscreen";
82
83
cmakeFlags = [
84
+
"-DCMAKE_MAKE_PROGRAM=ninja"
85
+
"-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake"
86
+
"-DVCPKG_MANIFEST_INSTALL=OFF"
87
# https://github.com/TrenchBroom/TrenchBroom/issues/4002#issuecomment-1125390780
88
"-DCMAKE_PREFIX_PATH=cmake/packages"
89
];
90
ninjaFlags = [
91
"TrenchBroom"
92
];
0
93
94
postInstall = ''
95
pushd $out/share/TrenchBroom/icons
···
121
description = "Level editor for Quake-engine based games";
122
license = licenses.gpl3Only;
123
maintainers = with maintainers; [ astro ];
124
+
platforms = [ "x86_64-linux" ];
125
};
126
}