aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--setup.py13
-rw-r--r--sources/pyside2/CMakeLists.txt39
2 files changed, 27 insertions, 25 deletions
diff --git a/setup.py b/setup.py
index af33254c..ce67ef94 100644
--- a/setup.py
+++ b/setup.py
@@ -801,7 +801,6 @@ class pyside_build(_build):
cmake_cmd = [
OPTION_CMAKE,
"-G", self.make_generator,
- "-DQT_QMAKE_EXECUTABLE='%s'" % self.qtinfo.qmake_command,
"-DBUILD_TESTS=%s" % self.build_tests,
"-DQt5Help_DIR=%s" % self.qtinfo.docs_dir,
"-DCMAKE_BUILD_TYPE=%s" % self.build_type,
@@ -823,18 +822,6 @@ class pyside_build(_build):
cmake_cmd.append("-DUSE_PYTHON_VERSION=3.3")
if sys.platform == 'darwin':
- # Shiboken supports specifying multiple include paths separated by a colon on *nix
- # systems.
- # In a framework build, two paths should be included:
- # path_to_qt/lib -> which contains framework folders with headers, and
- # path_to_qt/include -> which contains headers for static libraries.
- # A non-framework build contains all headers in the path_to_qt/include folder.
- path_separator = ":"
- includes_dir = '-DALTERNATIVE_QT_INCLUDE_DIR=' + self.qtinfo.headers_dir
- if os.path.isdir(self.qtinfo.headers_dir + "/../lib/QtCore.framework"):
- includes_dir += path_separator + self.qtinfo.headers_dir + "/../lib/"
- cmake_cmd.append(includes_dir)
-
if OPTION_OSXARCH:
# also tell cmake which architecture to use
cmake_cmd.append("-DCMAKE_OSX_ARCHITECTURES:STRING={}".format(OPTION_OSXARCH))
diff --git a/sources/pyside2/CMakeLists.txt b/sources/pyside2/CMakeLists.txt
index f5e4102c..5b7de8d2 100644
--- a/sources/pyside2/CMakeLists.txt
+++ b/sources/pyside2/CMakeLists.txt
@@ -97,19 +97,34 @@ option(ENABLE_VERSION_SUFFIX "Used to use current version in suffix to generated
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
if(CMAKE_HOST_APPLE)
- set(ALTERNATIVE_QT_INCLUDE_DIR "" CACHE PATH "The Alternative value to QT_INCLUDE_DIR. Necessary to fix bug on cmake 2.8 MACOS users")
+ set(ALTERNATIVE_QT_INCLUDE_DIR "" CACHE PATH "Deprecated. CMake now finds the proper include dir itself.")
set(OSX_USE_LIBCPP "OFF" CACHE BOOL "Explicitly link the libc++ standard library (useful for osx deployment targets lower than 10.9.")
if(OSX_USE_LIBCPP)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
endif()
-if(NOT CMAKE_HOST_APPLE)
- # Qt5: QT_INCLUDE_DIR does no longer exist.
- # On Windows and Linux, it can be computed from Qt5Core_INCLUDE_DIRS
- message("Qt5Core_INCLUDE_DIRS ${Qt5Core_INCLUDE_DIRS}")
- list(GET Qt5Core_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
- message(STATUS "*** computed QT_INCLUDE_DIR as ${QT_INCLUDE_DIR}")
+# Qt5: QT_INCLUDE_DIR does no longer exist.
+# On Windows, macOS, and Linux it can be computed from Qt5Core_INCLUDE_DIRS, which contains
+# a list of include directories. We take the first one.
+message(STATUS "*** Qt5Core_INCLUDE_DIRS = ${Qt5Core_INCLUDE_DIRS}")
+list(GET Qt5Core_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
+
+# 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 the path to the framework dir.
+ get_filename_component(QT_FRAMEWORK_INCLUDE_DIR "${QT_INCLUDE_DIR}/../" ABSOLUTE)
+ message(STATUS "*** QT_FRAMEWORK_INCLUDE_DIR is ${QT_FRAMEWORK_INCLUDE_DIR}")
+
+ # QT_INCLUDE_DIR points to the QtCore.framework directory, so we need to adjust this to point
+ # to the actual include directory, which has include files for non-framework parts of Qt.
+ get_filename_component(QT_INCLUDE_DIR "${QT_INCLUDE_DIR}/../../include" ABSOLUTE)
+
+ # And then we append the framework dir, to mimic the way setup.py passed that in before to
+ # the old shiboken parser.
+ set(QT_INCLUDE_DIR "${QT_INCLUDE_DIR}:${QT_FRAMEWORK_INCLUDE_DIR}")
endif()
if(MSVC)
@@ -130,15 +145,15 @@ else()
endif()
if(CMAKE_HOST_APPLE)
- if (NOT QT_INCLUDE_DIR)
- set(QT_INCLUDE_DIR "/Library/Frameworks")
- endif()
- if(ALTERNATIVE_QT_INCLUDE_DIR)
+ # ALTERNATIVE_QT_INCLUDE_DIR is deprecated, because CMake takes care of finding the proper
+ # include folders using the qmake found in the environment. Only use it for now in case
+ # something goes wrong with the cmake process.
+ if(ALTERNATIVE_QT_INCLUDE_DIR AND NOT QT_INCLUDE_DIR)
set(QT_INCLUDE_DIR ${ALTERNATIVE_QT_INCLUDE_DIR})
endif()
- string(REPLACE " " ":" QT_INCLUDE_DIR ${QT_INCLUDE_DIR})
endif()
endif()
+message(STATUS "*** computed QT_INCLUDE_DIR as ${QT_INCLUDE_DIR}")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE ${SHIBOKEN_BUILD_TYPE})