diff options
author | Tasuku Suzuki <tasuku.suzuki@qbc.io> | 2019-06-03 21:24:15 +0900 |
---|---|---|
committer | Tasuku Suzuki <tasuku.suzuki@qbc.io> | 2019-07-05 16:11:28 +0900 |
commit | be1e682572733ca5a0c3c65d049551daf8546f41 (patch) | |
tree | c9ba02d9b176c0ba07c43dab73782aec5565357d | |
parent | 7b17113e49b44ba5eec86831e3f697e98010f228 (diff) |
Fix build without feature.xmlstreamreader
This commit introduces a new feature called vkgen for the tool which
depends on xmlstreamreader.
Note that when features.vkgen is disabled, vulkan.pri will generate
dummy qvulkanfunctions.h and qvulkanfunctions_p.h because buildsystem
needs them.
Task-number: QTBUG-76159
Change-Id: I03d526a0fd76a2d8b531940f37538cead109d9d3
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
-rw-r--r-- | src/gui/configure.json | 7 | ||||
-rw-r--r-- | src/gui/vulkan/vulkan.pri | 72 | ||||
-rw-r--r-- | src/src.pro | 8 |
3 files changed, 50 insertions, 37 deletions
diff --git a/src/gui/configure.json b/src/gui/configure.json index c7bafb8925..764e92a729 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -1357,9 +1357,14 @@ "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2", "output": [ "publicFeature", "feature" ] }, + "vkgen": { + "label": "vkgen", + "condition": "features.xmlstreamreader", + "output": [ "privateFeature" ] + }, "vulkan": { "label": "Vulkan", - "condition": "libs.vulkan", + "condition": "features.vkgen && libs.vulkan", "output": [ "publicFeature" ] }, "openvg": { diff --git a/src/gui/vulkan/vulkan.pri b/src/gui/vulkan/vulkan.pri index 9bd7391235..5c902e8b82 100644 --- a/src/gui/vulkan/vulkan.pri +++ b/src/gui/vulkan/vulkan.pri @@ -17,39 +17,45 @@ qtConfig(vulkan) { QMAKE_USE += vulkan/nolink } -# Generate qvulkanfunctions.h, qvulkanfunctions_p.h, qvulkanfunctions_p.cpp -QMAKE_QVKGEN_INPUT = vulkan/vk.xml -QMAKE_QVKGEN_LICENSE_HEADER = $$QT_SOURCE_TREE/header.LGPL -qtPrepareTool(QMAKE_QVKGEN, qvkgen) - -qvkgen_h.commands = $$QMAKE_QVKGEN ${QMAKE_FILE_IN} $$shell_quote($$QMAKE_QVKGEN_LICENSE_HEADER) ${QMAKE_FILE_OUT_PATH}/${QMAKE_FILE_OUT_BASE} -qvkgen_h.output = $$OUT_PWD/vulkan/qvulkanfunctions.h -qvkgen_h.input = QMAKE_QVKGEN_INPUT -qtConfig(vulkan): \ - qvkgen_h.variable_out = HEADERS -else: \ - qvkgen_h.CONFIG += target_predeps no_link -QMAKE_EXTRA_COMPILERS += qvkgen_h - -qvkgen_ph.commands = $$escape_expand(\\n) -qvkgen_ph.output = $$OUT_PWD/vulkan/qvulkanfunctions_p.h -qvkgen_ph.input = QMAKE_QVKGEN_INPUT -qvkgen_ph.depends += $$OUT_PWD/vulkan/qvulkanfunctions.h -qtConfig(vulkan): \ - qvkgen_ph.variable_out = HEADERS -else: \ - qvkgen_ph.CONFIG += target_predeps no_link -QMAKE_EXTRA_COMPILERS += qvkgen_ph - -qvkgen_pimpl.commands = $$escape_expand(\\n) -qvkgen_pimpl.output = $$OUT_PWD/vulkan/qvulkanfunctions_p.cpp -qvkgen_pimpl.input = QMAKE_QVKGEN_INPUT -qvkgen_pimpl.depends += $$OUT_PWD/vulkan/qvulkanfunctions_p.h -qtConfig(vulkan): \ - qvkgen_pimpl.variable_out = SOURCES -else: \ - qvkgen_pimpl.CONFIG += target_predeps no_link -QMAKE_EXTRA_COMPILERS += qvkgen_pimpl +qtConfig(vkgen) { + # Generate qvulkanfunctions.h, qvulkanfunctions_p.h, qvulkanfunctions_p.cpp + QMAKE_QVKGEN_INPUT = vulkan/vk.xml + QMAKE_QVKGEN_LICENSE_HEADER = $$QT_SOURCE_TREE/header.LGPL + qtPrepareTool(QMAKE_QVKGEN, qvkgen) + + qvkgen_h.commands = $$QMAKE_QVKGEN ${QMAKE_FILE_IN} $$shell_quote($$QMAKE_QVKGEN_LICENSE_HEADER) ${QMAKE_FILE_OUT_PATH}/${QMAKE_FILE_OUT_BASE} + qvkgen_h.output = $$OUT_PWD/vulkan/qvulkanfunctions.h + qvkgen_h.input = QMAKE_QVKGEN_INPUT + qtConfig(vulkan): \ + qvkgen_h.variable_out = HEADERS + else: \ + qvkgen_h.CONFIG += target_predeps no_link + QMAKE_EXTRA_COMPILERS += qvkgen_h + + qvkgen_ph.commands = $$escape_expand(\\n) + qvkgen_ph.output = $$OUT_PWD/vulkan/qvulkanfunctions_p.h + qvkgen_ph.input = QMAKE_QVKGEN_INPUT + qvkgen_ph.depends += $$OUT_PWD/vulkan/qvulkanfunctions.h + qtConfig(vulkan): \ + qvkgen_ph.variable_out = HEADERS + else: \ + qvkgen_ph.CONFIG += target_predeps no_link + QMAKE_EXTRA_COMPILERS += qvkgen_ph + + qvkgen_pimpl.commands = $$escape_expand(\\n) + qvkgen_pimpl.output = $$OUT_PWD/vulkan/qvulkanfunctions_p.cpp + qvkgen_pimpl.input = QMAKE_QVKGEN_INPUT + qvkgen_pimpl.depends += $$OUT_PWD/vulkan/qvulkanfunctions_p.h + qtConfig(vulkan): \ + qvkgen_pimpl.variable_out = SOURCES + else: \ + qvkgen_pimpl.CONFIG += target_predeps no_link + QMAKE_EXTRA_COMPILERS += qvkgen_pimpl +} else { + # generate dummy files to make qmake happy + write_file($$OUT_PWD/vulkan/qvulkanfunctions.h) + write_file($$OUT_PWD/vulkan/qvulkanfunctions_p.h) +} # Ensure qvulkanfunctions.h gets installed correctly targ_headers.CONFIG += no_check_exist diff --git a/src/src.pro b/src/src.pro index b1afdd27a5..9ccc1e8f65 100644 --- a/src/src.pro +++ b/src/src.pro @@ -214,9 +214,11 @@ qtConfig(gui) { SUBDIRS += src_3rdparty_freetype src_platformsupport.depends += src_3rdparty_freetype } - SUBDIRS += src_tools_qvkgen - src_gui.depends += src_tools_qvkgen - TOOLS += src_tools_qvkgen + qtConfig(vkgen) { + SUBDIRS += src_tools_qvkgen + src_gui.depends += src_tools_qvkgen + TOOLS += src_tools_qvkgen + } SUBDIRS += src_gui src_platformsupport src_platformheaders qtConfig(opengl): SUBDIRS += src_openglextensions src_plugins.depends += src_gui src_platformsupport src_platformheaders |