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