Merge pull request #32230 from bkchr/renderdoc

renderdoc: Fixes build with missing SWIG_PACKAGE

authored by Joachim F and committed by GitHub 56518ff5 eaf2877c

+60 -2
+32
pkgs/applications/graphics/renderdoc/custom_swig.patch
···
··· 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 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 ]; 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 ]; 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 ''; 44 enableParallelBuilding = true; 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";