tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
renderdoc: Fixes build with missing SWIG_PACKAGE
Bastian Köcher
8 years ago
039cb629
d7fb7091
+60
-2
2 changed files
expand all
collapse all
unified
split
pkgs
applications
graphics
renderdoc
custom_swig.patch
default.nix
+32
pkgs/applications/graphics/renderdoc/custom_swig.patch
···
1
1
+
diff --git a/qrenderdoc/CMakeLists.txt b/qrenderdoc/CMakeLists.txt
2
2
+
index 2df9ffa5..66bafaba 100644
3
3
+
--- a/qrenderdoc/CMakeLists.txt
4
4
+
+++ b/qrenderdoc/CMakeLists.txt
5
5
+
@@ -65,16 +65,6 @@ include(ExternalProject)
6
6
+
# Need bison for swig
7
7
+
find_package(BISON)
8
8
+
9
9
+
-# Compile our custom SWIG that will do scoped/strong enum classes
10
10
+
-ExternalProject_Add(custom_swig
11
11
+
- # using an URL to a zip directly so we don't clone the history etc
12
12
+
- URL ${RENDERDOC_SWIG_PACKAGE}
13
13
+
- BUILD_IN_SOURCE 1
14
14
+
- CONFIGURE_COMMAND ./autogen.sh > /dev/null 2>&1
15
15
+
- COMMAND CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ./configure --with-pcre=yes --prefix=${CMAKE_BINARY_DIR} > /dev/null
16
16
+
- BUILD_COMMAND $(MAKE) > /dev/null 2>&1
17
17
+
- INSTALL_COMMAND $(MAKE) install > /dev/null 2>&1)
18
18
+
-
19
19
+
# Lastly find PySide 2, optionally, for Qt5 Python bindings
20
20
+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
21
21
+
22
22
+
@@ -186,9 +176,8 @@ foreach(in ${swig_interfaces})
23
23
+
get_filename_component(swig_file ${in} NAME_WE)
24
24
+
25
25
+
add_custom_command(OUTPUT ${swig_file}_python.cxx ${swig_file}.py
26
26
+
- COMMAND ${CMAKE_BINARY_DIR}/bin/swig -v -Wextra -Werror -O -c++ -python -modern -modernargs -enumclass -fastunpack -py3 -builtin -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/renderdoc/api/replay -outdir ${CMAKE_CURRENT_BINARY_DIR} -o ${CMAKE_CURRENT_BINARY_DIR}/${swig_file}_python.cxx ${CMAKE_CURRENT_SOURCE_DIR}/${in}
27
27
+
+ COMMAND $ENV{NIXOS_CUSTOM_SWIG} -v -Wextra -Werror -O -c++ -python -modern -modernargs -enumclass -fastunpack -py3 -builtin -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/renderdoc/api/replay -outdir ${CMAKE_CURRENT_BINARY_DIR} -o ${CMAKE_CURRENT_BINARY_DIR}/${swig_file}_python.cxx ${CMAKE_CURRENT_SOURCE_DIR}/${in}
28
28
+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${in}
29
29
+
- DEPENDS custom_swig
30
30
+
DEPENDS ${RDOC_REPLAY_FILES}
31
31
+
DEPENDS ${QRD_INTERFACE_FILES})
32
32
+
+28
-2
pkgs/applications/graphics/renderdoc/default.nix
···
1
1
{ stdenv, fetchFromGitHub, cmake, pkgconfig
2
2
, qtbase, qtx11extras, qtsvg, makeWrapper, python3, bison
3
3
-
, autoconf, automake, pcre, vulkan-loader, xorg
3
3
+
, pcre, vulkan-loader, xorg, autoreconfHook
4
4
}:
5
5
6
6
+
let
7
7
+
custom_swig = stdenv.mkDerivation {
8
8
+
name = "renderdoc-custom-swig";
9
9
+
src = fetchFromGitHub {
10
10
+
owner = "baldurk";
11
11
+
repo = "swig";
12
12
+
rev = "renderdoc-modified-1";
13
13
+
sha256 = "1whymd3vamwnp4jqfc9asls3dw9wsdi21xhm1d2a4vx9nql8if1x";
14
14
+
};
15
15
+
16
16
+
nativeBuildInputs = [ autoreconfHook pcre ];
17
17
+
18
18
+
autoreconfPhase = ''
19
19
+
patchShebangs autogen.sh
20
20
+
./autogen.sh
21
21
+
'';
22
22
+
};
23
23
+
in
6
24
stdenv.mkDerivation rec {
7
25
name = "renderdoc-${version}";
8
26
version = "0.91";
···
17
35
buildInputs = [
18
36
qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader
19
37
];
20
20
-
nativeBuildInputs = [ cmake makeWrapper pkgconfig python3 bison autoconf automake pcre ];
38
38
+
39
39
+
nativeBuildInputs = [ cmake makeWrapper pkgconfig python3 bison ];
21
40
22
41
cmakeFlags = [
23
42
"-DBUILD_VERSION_HASH=${src.rev}"
···
28
47
# TODO: use this instead of preConfigure once placeholders land
29
48
#"-DVULKAN_LAYER_FOLDER=${placeholder out}/share/vulkan/implicit_layer.d/"
30
49
];
50
50
+
31
51
preConfigure = ''
32
52
cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
33
53
'';
···
41
61
ln -s $out/bin/.bin/renderdoccmd $out/bin/renderdoccmd
42
62
wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
43
63
'';
64
64
+
65
65
+
# Set path to custom swig binary
66
66
+
NIXOS_CUSTOM_SWIG = "${custom_swig}/bin/swig";
67
67
+
44
68
enableParallelBuilding = true;
69
69
+
70
70
+
patches = [ ./custom_swig.patch ];
45
71
46
72
meta = with stdenv.lib; {
47
73
description = "A single-frame graphics debugger";