diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2018-03-02 18:52:58 +0100 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2018-03-06 12:02:32 +0000 |
commit | 471b05f35a9c57d7fa910cf9f11c7f5fdfbf2a93 (patch) | |
tree | 9646a8e990a85a19487c6f52b52ab4075348d31a | |
parent | 63bcb1ba4a1b211f219b1b47aa4b3ad85a8b7a77 (diff) |
Fix scriptableapplication to build on macOS with framework Qt
In case of a Qt framework build, shiboken needs to be passed a
--framework-include-paths=foo parameter pointing to the Qt
framework libdir. This is used by the C++ parser to resolve
framework include paths.
Task-number: PYSIDE-623
Change-Id: I38cf34a51102265056aea8718ad059aea3438354
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r-- | examples/scriptableapplication/CMakeLists.txt | 9 | ||||
-rw-r--r-- | examples/scriptableapplication/scriptableapplication.pro | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/examples/scriptableapplication/CMakeLists.txt b/examples/scriptableapplication/CMakeLists.txt index 40e29346a..6641d77c6 100644 --- a/examples/scriptableapplication/CMakeLists.txt +++ b/examples/scriptableapplication/CMakeLists.txt @@ -58,6 +58,15 @@ foreach(INCLUDE_DIR ${QT_INCLUDE_DIRS}) list(APPEND INCLUDES "-I${INCLUDE_DIR}") endforeach() +# On macOS, check if Qt is a framework build. This affects how include paths should be handled. +get_target_property(QtCore_is_framework Qt5::Core FRAMEWORK) +if (QtCore_is_framework) + get_target_property(qt_core_library_location Qt5::Core LOCATION) + get_filename_component(qt_core_library_location_dir "${qt_core_library_location}" DIRECTORY) + get_filename_component(lib_dir "${qt_core_library_location_dir}/../" ABSOLUTE) + list(APPEND INCLUDES "--framework-include-paths=${lib_dir}") +endif() + # Set up the options to pass to shiboken. set(WRAPPED_HEADER ${CMAKE_SOURCE_DIR}/wrappedclasses.h) set(TYPESYSTEM_FILE ${CMAKE_SOURCE_DIR}/scriptableapplication.xml) diff --git a/examples/scriptableapplication/scriptableapplication.pro b/examples/scriptableapplication/scriptableapplication.pro index 9f888f6a0..bcb05c115 100644 --- a/examples/scriptableapplication/scriptableapplication.pro +++ b/examples/scriptableapplication/scriptableapplication.pro @@ -12,6 +12,9 @@ TYPESYSTEM_FILE = scriptableapplication.xml QT_INCLUDEPATHS = -I$$[QT_INSTALL_HEADERS] -I$$[QT_INSTALL_HEADERS]/QtCore \ -I$$[QT_INSTALL_HEADERS]/QtGui -I$$[QT_INSTALL_HEADERS]/QtWidgets +# On macOS, check if Qt is a framework build. This affects how include paths should be handled. +qtConfig(framework): QT_INCLUDEPATHS += --framework-include-paths=$$[QT_INSTALL_LIBS] + SHIBOKEN_OPTIONS = --generator-set=shiboken --enable-parent-ctor-heuristic \ --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero \ $$QT_INCLUDEPATHS -I$$PWD -T$$PWD -T$$PYSIDE2/typesystems --output-directory=$$OUT_PWD |