From 6288c12bb4316c8970ab8437ef5beefce89f5836 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 29 Apr 2019 12:39:52 +0200 Subject: 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 5f930c7910..da061422dc 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 b2dd846b11..95e54d72c9 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 e0556ce960..e892f83432 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 0000000000..6c08e28fe9 --- /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 = - +} -- cgit v1.2.3