aboutsummaryrefslogtreecommitdiff
path: root/pkgs/applications/graphics/renderdoc
diff options
context:
space:
mode:
authorBastian Köcher <git@kchr.de>2017-12-01 13:21:54 +0100
committerBastian Köcher <git@kchr.de>2017-12-28 00:15:32 +0100
commit039cb6291de0358fe89fb455c219a0ab891060be (patch)
tree75686c27197de03531c2258f5e3d8cd1431c954a /pkgs/applications/graphics/renderdoc
parentd7fb70918041028845740f3a89d8b2694645bfc0 (diff)
renderdoc: Fixes build with missing SWIG_PACKAGE
Diffstat (limited to 'pkgs/applications/graphics/renderdoc')
-rw-r--r--pkgs/applications/graphics/renderdoc/custom_swig.patch32
-rw-r--r--pkgs/applications/graphics/renderdoc/default.nix30
2 files changed, 60 insertions, 2 deletions
diff --git a/pkgs/applications/graphics/renderdoc/custom_swig.patch b/pkgs/applications/graphics/renderdoc/custom_swig.patch
new file mode 100644
index 000000000000..e6ed05ea97a5
--- /dev/null
+++ b/pkgs/applications/graphics/renderdoc/custom_swig.patch
@@ -0,0 +1,32 @@
+diff --git a/qrenderdoc/CMakeLists.txt b/qrenderdoc/CMakeLists.txt
+index 2df9ffa5..66bafaba 100644
+--- a/qrenderdoc/CMakeLists.txt
++++ b/qrenderdoc/CMakeLists.txt
+@@ -65,16 +65,6 @@ include(ExternalProject)
+ # Need bison for swig
+ find_package(BISON)
+
+-# Compile our custom SWIG that will do scoped/strong enum classes
+-ExternalProject_Add(custom_swig
+- # using an URL to a zip directly so we don't clone the history etc
+- URL ${RENDERDOC_SWIG_PACKAGE}
+- BUILD_IN_SOURCE 1
+- CONFIGURE_COMMAND ./autogen.sh > /dev/null 2>&1
+- COMMAND CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ./configure --with-pcre=yes --prefix=${CMAKE_BINARY_DIR} > /dev/null
+- BUILD_COMMAND $(MAKE) > /dev/null 2>&1
+- INSTALL_COMMAND $(MAKE) install > /dev/null 2>&1)
+-
+ # Lastly find PySide 2, optionally, for Qt5 Python bindings
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
+
+@@ -186,9 +176,8 @@ foreach(in ${swig_interfaces})
+ get_filename_component(swig_file ${in} NAME_WE)
+
+ add_custom_command(OUTPUT ${swig_file}_python.cxx ${swig_file}.py
+- 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}
++ 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}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${in}
+- DEPENDS custom_swig
+ DEPENDS ${RDOC_REPLAY_FILES}
+ DEPENDS ${QRD_INTERFACE_FILES})
+
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 2a5bbb9401a4..2bd3ab89161f 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -1,8 +1,26 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig
, qtbase, qtx11extras, qtsvg, makeWrapper, python3, bison
-, autoconf, automake, pcre, vulkan-loader, xorg
+, pcre, vulkan-loader, xorg, autoreconfHook
}:
+let
+ custom_swig = stdenv.mkDerivation {
+ name = "renderdoc-custom-swig";
+ src = fetchFromGitHub {
+ owner = "baldurk";
+ repo = "swig";
+ rev = "renderdoc-modified-1";
+ sha256 = "1whymd3vamwnp4jqfc9asls3dw9wsdi21xhm1d2a4vx9nql8if1x";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pcre ];
+
+ autoreconfPhase = ''
+ patchShebangs autogen.sh
+ ./autogen.sh
+ '';
+ };
+in
stdenv.mkDerivation rec {
name = "renderdoc-${version}";
version = "0.91";
@@ -17,7 +35,8 @@ stdenv.mkDerivation rec {
buildInputs = [
qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader
];
- nativeBuildInputs = [ cmake makeWrapper pkgconfig python3 bison autoconf automake pcre ];
+
+ nativeBuildInputs = [ cmake makeWrapper pkgconfig python3 bison ];
cmakeFlags = [
"-DBUILD_VERSION_HASH=${src.rev}"
@@ -28,6 +47,7 @@ stdenv.mkDerivation rec {
# TODO: use this instead of preConfigure once placeholders land
#"-DVULKAN_LAYER_FOLDER=${placeholder out}/share/vulkan/implicit_layer.d/"
];
+
preConfigure = ''
cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
'';
@@ -41,8 +61,14 @@ stdenv.mkDerivation rec {
ln -s $out/bin/.bin/renderdoccmd $out/bin/renderdoccmd
wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
'';
+
+ # Set path to custom swig binary
+ NIXOS_CUSTOM_SWIG = "${custom_swig}/bin/swig";
+
enableParallelBuilding = true;
+ patches = [ ./custom_swig.patch ];
+
meta = with stdenv.lib; {
description = "A single-frame graphics debugger";
homepage = https://renderdoc.org/;