diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2022-10-28 12:41:13 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2022-11-09 16:36:39 +0100 |
commit | cc0481a46f801473c3dbabe855534a7aa034443f (patch) | |
tree | a212b7ec567b5c183457695920a87c70d378e24f /sources/shiboken6/tests/minimalbinding | |
parent | 0ba197308c7c6812723544b4f837102ec82fcec5 (diff) |
CMake: Execute shiboken with appropriate PATH on Windows
Previously one had to add the Qt bin dir and libclang.dll dir to
PATH manually to ensure shiboken successfully runs when
building Qt for Python using CMake without setup.py.
This should not be necessary though, because the build system knows
where Qt is (usually via the --qtpaths option) and where libclang is
(via LLVM_INSTALL_DIR and friends).
Introduce a CMake function that generates a batch shell script wrapper
for a given tool. The wrapper will have PATH set to the Qt bin dir
and libclang dir.
Generate such a wrapper for shiboken and use it everywhere we call
shiboken to generate bindings.
The wrapper is only created on Windows.
All mentions of Shiboken6::shiboken in custom commands now need to be
wrapped in $<TARGET_FILE> because automatic target path conversion
only happens if the target appears as the first argument to a custom
command, and that is not the case anymore with the wrapper script
being at the front.
As a drive-by, the indentation of custom commands is now adjusted
for easier readability and to conform with the indentation used
in the Qt build system.
Pick-to: 6.4
Fixes: PYSIDE-1844
Change-Id: I287adeedf234d0272c2963e96ae2aa5c4c0f0c83
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/shiboken6/tests/minimalbinding')
-rw-r--r-- | sources/shiboken6/tests/minimalbinding/CMakeLists.txt | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/sources/shiboken6/tests/minimalbinding/CMakeLists.txt b/sources/shiboken6/tests/minimalbinding/CMakeLists.txt index 1b6b37e31..1b8c259e6 100644 --- a/sources/shiboken6/tests/minimalbinding/CMakeLists.txt +++ b/sources/shiboken6/tests/minimalbinding/CMakeLists.txt @@ -15,13 +15,19 @@ ${CMAKE_CURRENT_BINARY_DIR}/minimal/minbooluser_wrapper.cpp configure_file("${CMAKE_CURRENT_SOURCE_DIR}/minimal-binding.txt.in" "${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt" @ONLY) +shiboken_get_tool_shell_wrapper(shiboken tool_wrapper) + add_custom_command( -OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log" -BYPRODUCTS ${minimal_SRC} -COMMAND Shiboken6::shiboken6 --project-file=${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt ${GENERATOR_EXTRA_FLAGS} -DEPENDS ${minimal_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6 -WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -COMMENT "Running generator for 'minimal' test binding..." + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log" + BYPRODUCTS ${minimal_SRC} + COMMAND + ${tool_wrapper} + $<TARGET_FILE:Shiboken6::shiboken6> + --project-file=${CMAKE_CURRENT_BINARY_DIR}/minimal-binding.txt + ${GENERATOR_EXTRA_FLAGS} + DEPENDS ${minimal_TYPESYSTEM} ${CMAKE_CURRENT_SOURCE_DIR}/global.h Shiboken6::shiboken6 + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMENT "Running generator for 'minimal' test binding..." ) add_library(minimal MODULE ${minimal_SRC}) |