From 6288c12bb4316c8970ab8437ef5beefce89f5836 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 29 Apr 2019 12:39:52 +0200 Subject: [PATCH] Resolve QMAKE_INCDIR_VULKAN on every qmake call Do not store this variable locally, because a) it might change if the SDK location changes b) does not play well with Qt installer packages which would provide the include path of the build machine. To achieve this we introduce the (usual) magic value - for QMAKE_EXPORT_INCDIR_VULKAN to denote "do not export this value". Fixes: QTBUG-73796 Change-Id: Ied26ee12cbcdf7f5f6e1caef5d29dadf6309c5d6 Reviewed-by: Laszlo Agocs Reviewed-by: Kai Koehne --- mkspecs/common/windows-vulkan.conf | 5 +---- mkspecs/features/qt_configure.prf | 6 ++++-- mkspecs/features/qt_module_pris.prf | 8 ++++++-- mkspecs/features/win32/windows_vulkan_sdk.prf | 8 ++++++++ 4 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 mkspecs/features/win32/windows_vulkan_sdk.prf diff --git a/mkspecs/common/windows-vulkan.conf b/mkspecs/common/windows-vulkan.conf index 5f930c7910e..da061422dca 100644 --- a/mkspecs/common/windows-vulkan.conf +++ b/mkspecs/common/windows-vulkan.conf @@ -1,5 +1,2 @@ -# Pick up the VULKAN_SDK env var set by the LunarG SDK so that the Vulkan -# headers are found out-of-the-box on typical Windows setups. - -QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)\\include +load(windows_vulkan_sdk) QMAKE_LIBS_VULKAN = diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index b2dd846b115..95e54d72c9b 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -959,8 +959,10 @@ defineTest(qtConfExportLibrary) { defines = $$eval($${spfx}.defines) !isEmpty(defines): qtConfOutputVar(assign, $$output, QMAKE_DEFINES_$$NAME, $$defines) includes = $$eval($${spfx}.exportincludedir) - isEmpty(includes): includes = $$eval($${spfx}.includedir) - !isEmpty(includes): qtConfOutputVar(assign, $$output, QMAKE_INCDIR_$$NAME, $$includes) + !equals(includes, -) { + isEmpty(includes): includes = $$eval($${spfx}.includedir) + !isEmpty(includes): qtConfOutputVar(assign, $$output, QMAKE_INCDIR_$$NAME, $$includes) + } uses = $$eval($${lpfx}.dependencies) !isEmpty(uses) { # FIXME: ideally, we would export transitive deps only for static diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index e0556ce9605..e892f834326 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -60,8 +60,12 @@ defineReplace(qtExportLibsForModule) { QMAKE_LIBS_$$NAME QMAKE_LIBS_$${NAME}_DEBUG QMAKE_LIBS_$${NAME}_RELEASE \ QMAKE_DEFINES_$$NAME QMAKE_INCDIR_$$NAME for (var, vars) { - defined($$var, var): \ - result += "$$var = $$val_escape($$var)" + expvar = $$var + expvar ~= s/^QMAKE_/QMAKE_EXPORT_/ + defined($$expvar, var):equals($$expvar, -): next() + !defined($$expvar, var): expvar = $$var + defined($$expvar, var): \ + result += "$$var = $$val_escape($$expvar)" } } return($$result) diff --git a/mkspecs/features/win32/windows_vulkan_sdk.prf b/mkspecs/features/win32/windows_vulkan_sdk.prf new file mode 100644 index 00000000000..6c08e28fe91 --- /dev/null +++ b/mkspecs/features/win32/windows_vulkan_sdk.prf @@ -0,0 +1,8 @@ +isEmpty(QMAKE_INCDIR_VULKAN) { + # Pick up the VULKAN_SDK env var set by the LunarG SDK so that the Vulkan + # headers are found out-of-the-box on typical Windows setups. + QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)\\include + + # Do not export the include dir but resolve it on every qmake call. + QMAKE_EXPORT_INCDIR_VULKAN = - +}