aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/CMakeLists.txt')
-rw-r--r--sources/pyside6/libpyside/CMakeLists.txt134
1 files changed, 58 insertions, 76 deletions
diff --git a/sources/pyside6/libpyside/CMakeLists.txt b/sources/pyside6/libpyside/CMakeLists.txt
index 50cc3108f..ebfe123dd 100644
--- a/sources/pyside6/libpyside/CMakeLists.txt
+++ b/sources/pyside6/libpyside/CMakeLists.txt
@@ -1,42 +1,47 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(libpyside)
-if(${Qt${QT_MAJOR_VERSION}Qml_FOUND})
- if(NOT "${Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS}" MATCHES "/QtQml/")
- string(REPLACE "/QtCore" "/QtQml" replaceme "${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}")
- list(APPEND Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS ${replaceme})
- list(REMOVE_DUPLICATES Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS)
- endif()
-endif()
+set(libpyside_libraries Qt::Core Qt::CorePrivate)
-if(${Qt${QT_MAJOR_VERSION}Quick_FOUND})
- if(NOT "${Qt${QT_MAJOR_VERSION}Quick_PRIVATE_INCLUDE_DIRS}" MATCHES "/QtQuick/")
- string(REPLACE "/QtCore" "/QtQuick" replaceme "${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}")
- list(APPEND Qt${QT_MAJOR_VERSION}Quick_PRIVATE_INCLUDE_DIRS ${Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS})
- list(APPEND Qt${QT_MAJOR_VERSION}Quick_PRIVATE_INCLUDE_DIRS ${replaceme})
- list(REMOVE_DUPLICATES Qt${QT_MAJOR_VERSION}Quick_PRIVATE_INCLUDE_DIRS)
- endif()
-endif()
+set(CMAKE_AUTOMOC ON)
-set(QML_PRIVATE_API_SUPPORT 0)
-if(Qt${QT_MAJOR_VERSION}Qml_FOUND)
- # Used for registering custom QQuickItem classes defined in Python code.
- set(QML_SUPPORT 1)
- set(QML_INCLUDES ${Qt${QT_MAJOR_VERSION}Qml_INCLUDE_DIRS})
- set(QML_LIBRARIES ${Qt${QT_MAJOR_VERSION}Qml_LIBRARIES})
-
- if(Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS)
- # Used for transforming QML exceptions into Python exceptions.
- set(QML_PRIVATE_API_SUPPORT 1)
- set(QML_INCLUDES ${QML_INCLUDES} ${Qt${QT_MAJOR_VERSION}Qml_PRIVATE_INCLUDE_DIRS})
- else()
- message(WARNING "QML private API include files could not be found, support for catching QML exceptions inside Python code will not work.")
- endif()
-else()
- set(QML_SUPPORT 0)
- set(QML_PRIVATE_API_SUPPORT 0)
- set(QML_INCLUDES "")
- set(QML_LIBRARIES "")
-endif()
+set(libpyside_HEADERS # installed below
+ class_property.h
+ dynamicqmetaobject.h
+ feature_select.h
+ globalreceiverv2.h
+ pysideclassdecorator_p.h
+ pysideclassinfo.h
+ pysideclassinfo_p.h
+ pysidecleanup.h
+ pyside.h
+ pysideinit.h
+ pysidelogging_p.h
+ pysidemacros.h
+ pysidemetafunction.h
+ pysidemetafunction_p.h
+ pysidemetatype.h
+ pyside_numpy.h
+ pyside_p.h
+ pysideproperty.h
+ pysideproperty_p.h
+ pysideqapp.h
+ pysideqenum.h
+ pysideqhash.h
+ pysideqmetatype.h
+ pysideqobject.h
+ pysideqslotobject_p.h
+ pysidesignal.h
+ pysidesignal_p.h
+ pysideslot_p.h
+ pysidestaticstrings.h
+ pysideutils.h
+ pysideweakref.h
+ qobjectconnect.h
+ signalmanager.h
+)
set(libpyside_SRC
class_property.cpp
@@ -44,16 +49,20 @@ set(libpyside_SRC
feature_select.cpp
signalmanager.cpp
globalreceiverv2.cpp
+ pysideclassdecorator.cpp
pysideclassinfo.cpp
pysideqenum.cpp
+ pysideqslotobject_p.cpp
pysidemetafunction.cpp
pysidesignal.cpp
pysideslot.cpp
pysideproperty.cpp
- pysideqflags.cpp
pysideweakref.cpp
pyside.cpp
+ pyside_numpy.cpp
pysidestaticstrings.cpp
+ qobjectconnect.cpp
+ ${libpyside_HEADERS}
)
qt6_add_resources(libpyside_SRC libpyside.qrc)
@@ -83,21 +92,18 @@ add_other_files(${other_files})
add_library(pyside6 SHARED ${libpyside_SRC} ${other_files})
add_library(PySide6::pyside6 ALIAS pyside6)
-target_include_directories(pyside6 PRIVATE
- ${QML_INCLUDES}
- ${Qt${QT_MAJOR_VERSION}Core_PRIVATE_INCLUDE_DIRS}
- ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
-)
+#does nothing if QFP_NO_OVERRIDE_OPTIMIZATION_FLAGS (no-size-optimization) flag is not set
+append_size_optimization_flags(pyside6)
target_include_directories(pyside6 PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/PySide6>
)
+target_compile_definitions(pyside6 PRIVATE -DQT_LEAN_HEADERS=1 -DQT_NO_KEYWORDS=1)
+
target_link_libraries(pyside6
- PRIVATE Shiboken6::libshiboken
- PRIVATE ${QML_LIBRARIES}
- PRIVATE ${Qt${QT_MAJOR_VERSION}Core_LIBRARIES})
+ PRIVATE Shiboken6::libshiboken ${libpyside_libraries})
set_target_properties(pyside6 PROPERTIES
VERSION ${BINDING_API_VERSION}
@@ -105,16 +111,7 @@ set_target_properties(pyside6 PROPERTIES
OUTPUT_NAME "pyside6${pyside6_SUFFIX}${SHIBOKEN_PYTHON_SHARED_LIBRARY_SUFFIX}"
DEFINE_SYMBOL BUILD_LIBPYSIDE)
-if(${QT_MAJOR_VERSION} GREATER_EQUAL 6)
- set_property(TARGET pyside6 PROPERTY CXX_STANDARD 17)
-else()
- set_property(TARGET pyside6 PROPERTY CXX_STANDARD 11)
-endif()
-
-if(QML_SUPPORT)
- target_compile_definitions(pyside6 PUBLIC PYSIDE_QML_SUPPORT=1)
-endif()
-target_compile_definitions(pyside6 PRIVATE PYSIDE_QML_PRIVATE_API_SUPPORT=${QML_PRIVATE_API_SUPPORT})
+set_property(TARGET pyside6 PROPERTY CXX_STANDARD 17)
if(PYSIDE_QT_CONF_PREFIX)
set_property(SOURCE pyside.cpp
@@ -127,23 +124,6 @@ endif()
# install stuff
#
-set(libpyside_HEADERS
- class_property.h
- dynamicqmetaobject.h
- feature_select.h
- pysideclassinfo.h
- pysideqenum.h
- pysidemacros.h
- signalmanager.h
- pyside.h
- pysidestaticstrings.h
- pysidemetafunction.h
- pysidesignal.h
- pysideproperty.h
- pysideqflags.h
- pysideweakref.h
-)
-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(LIBRARY_OUTPUT_SUFFIX ${CMAKE_DEBUG_POSTFIX})
else()
@@ -152,6 +132,8 @@ endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII")
+qfp_strip_library("pyside6")
+
# create pkg-config file
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pyside6.pc.in"
"${CMAKE_CURRENT_BINARY_DIR}/pyside6${pyside6_SUFFIX}.pc" @ONLY)
@@ -180,7 +162,7 @@ set(PYSIDE_GLUE "${CMAKE_INSTALL_PREFIX}/share/PySide6${pyside6_SUFFIX}/glue")
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/PySide6Config-spec.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/install/PySide6Config${SHIBOKEN_PYTHON_CONFIG_SUFFIX}.cmake"
- INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}"
+ INSTALL_DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6"
PATH_VARS PYSIDE_PYTHONPATH PYSIDE_TYPESYSTEMS PYSIDE_GLUE
)
@@ -197,16 +179,16 @@ install(TARGETS pyside6 EXPORT PySide6Targets
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
RUNTIME DESTINATION bin)
install(EXPORT PySide6Targets NAMESPACE PySide6::
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pyside6${pyside6_SUFFIX}.pc"
DESTINATION "${LIB_INSTALL_DIR}/pkgconfig")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PySide6Config.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/PySide6Config${SHIBOKEN_PYTHON_CONFIG_SUFFIX}.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PySide6ConfigVersion.cmake"
- DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6-${BINDING_API_VERSION}")
+ DESTINATION "${LIB_INSTALL_DIR}/cmake/PySide6")