diff --git a/CMakeLists.txt b/CMakeLists.txt index 094b349a..7a97889a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,7 +113,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) endif() if(${PROJECT_NAME}_QT6) - set(Qt_VERSION_MAJOR 6) + set(QT_VERSION_MAJOR 6) set(QT_MIN_VERSION "6.0.0") find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Widgets PrintSupport Xml) list( @@ -126,7 +126,7 @@ if(${PROJECT_NAME}_QT6) ) set(${PROJECT_NAME}_LIBRARY_QTID "-qt6") else() - set(Qt_VERSION_MAJOR 5) + set(QT_VERSION_MAJOR 5) set(QT_MIN_VERSION 5.9.0) find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Widgets PrintSupport Xml) list( @@ -236,7 +236,7 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # Generate .pri file for qmake users (except when using the VS generator) if(NOT CMAKE_CONFIGURATION_TYPES) - if(Qt_VERSION_MAJOR EQUAL 5 OR (Qt_VERSION_MAJOR EQUAL 6 AND Qt6Core_VERSION VERSION_GREATER "6.2")) + if(QT_VERSION_MAJOR EQUAL 5 OR (QT_VERSION_MAJOR EQUAL 6 AND Qt6Core_VERSION VERSION_GREATER "6.2")) include(ECMGeneratePriFile) #not available for Qt6.2 or lower set(PROJECT_VERSION_STRING ${${PROJECT_NAME}_VERSION}) ecm_generate_pri_file( @@ -267,10 +267,10 @@ endif() add_subdirectory(src) if(${PROJECT_NAME}_PYTHON_BINDINGS) - if(Qt_VERSION_MAJOR EQUAL 5 AND Qt5Core_VERSION VERSION_LESS 5.12) + if(QT_VERSION_MAJOR EQUAL 5 AND Qt5Core_VERSION VERSION_LESS 5.12) message(WARNING "** Disabling Python Bindings. Qt version is too old and unsupported.") set(${PROJECT_NAME}_PYTHON_BINDINGS OFF) - elseif(Qt_VERSION_MAJOR EQUAL 6 AND Qt6Core_VERSION VERSION_LESS 6.2) + elseif(QT_VERSION_MAJOR EQUAL 6 AND Qt6Core_VERSION VERSION_LESS 6.2) message(WARNING "** Disabling Python Bindings. shiboken6 is too old and unsupported") set(${PROJECT_NAME}_PYTHON_BINDINGS OFF) elseif(CMAKE_BUILD_TYPE MATCHES "^[Dd]eb" OR ${PROJECT_NAME}_STATIC) @@ -283,12 +283,12 @@ endif() if(${PROJECT_NAME}_TESTS OR ${PROJECT_NAME}_EXAMPLES) if(NOT EMSCRIPTEN) - find_package(Qt${Qt_VERSION_MAJOR}Sql) + find_package(Qt${QT_VERSION_MAJOR}Sql) endif() endif() if(${PROJECT_NAME}_TESTS) - find_package(Qt${Qt_VERSION_MAJOR}Test REQUIRED) + find_package(Qt${QT_VERSION_MAJOR}Test REQUIRED) add_subdirectory(unittests) endif() diff --git a/cmake/ECM/modules/ECMGenerateHeaders.cmake b/cmake/ECM/modules/ECMGenerateHeaders.cmake index 86f35adb..ddd6066c 100644 --- a/cmake/ECM/modules/ECMGenerateHeaders.cmake +++ b/cmake/ECM/modules/ECMGenerateHeaders.cmake @@ -118,8 +118,6 @@ Example usage (with ``PREFIX``): Since pre-1.0.0. #]=======================================================================] -include(CMakeParseArguments) - function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) set(options) set(oneValueArgs ORIGINAL HEADER_EXTENSION OUTPUT_DIR PREFIX REQUIRED_HEADERS COMMON_HEADER RELATIVE) @@ -178,7 +176,8 @@ function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) endif() set(_actualheader "${CMAKE_CURRENT_SOURCE_DIR}/${EGH_RELATIVE}${originalbasename}.${EGH_HEADER_EXTENSION}") - if (NOT EXISTS ${_actualheader}) + get_source_file_property(_generated "${_actualheader}" GENERATED) + if (NOT _generated AND NOT EXISTS ${_actualheader}) message(FATAL_ERROR "Could not find \"${_actualheader}\"") endif() diff --git a/cmake/ECM/modules/ECMSetupVersion.cmake b/cmake/ECM/modules/ECMSetupVersion.cmake index 330f7365..7164c9a0 100644 --- a/cmake/ECM/modules/ECMSetupVersion.cmake +++ b/cmake/ECM/modules/ECMSetupVersion.cmake @@ -142,7 +142,7 @@ function(ecm_setup_version _version) string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.0*([0-9]+).*" "\\1" _patch "${_version}") endif() - if(NOT ESV_SOVERSION) + if(NOT DEFINED ESV_SOVERSION) # use DEFINED, so "0" as valid SO version is not evaluated to FALSE set(ESV_SOVERSION ${_major}) endif() diff --git a/cmake/ECM/modules/QtVersionOption.cmake b/cmake/ECM/modules/QtVersionOption.cmake index ea37da22..0ea03658 100644 --- a/cmake/ECM/modules/QtVersionOption.cmake +++ b/cmake/ECM/modules/QtVersionOption.cmake @@ -12,6 +12,9 @@ that is, if the major Qt version has not yet been determined otherwise This module is typically included by other modules requiring knowledge about the major Qt version. +If the ECM version passed to find_package was at least 5.240.0 Qt6 is picked by default. +Otherwise Qt5 is picked. + ``QT_MAJOR_VERSION`` is defined to either be "5" or "6". Since 5.82.0. @@ -26,7 +29,11 @@ if (TARGET Qt5::Core) elseif (TARGET Qt6::Core) set(QT_MAJOR_VERSION 6) else() - option(BUILD_WITH_QT6 "Build against Qt 6" OFF) + if (ECM_GLOBAL_FIND_VERSION VERSION_GREATER_EQUAL 5.240) + option(BUILD_WITH_QT6 "Build against Qt 6" ON) + else() + option(BUILD_WITH_QT6 "Build against Qt 6" OFF) + endif() if (BUILD_WITH_QT6) set(QT_MAJOR_VERSION 6) diff --git a/cmake/KDAB/modules/FindKDChart.cmake b/cmake/KDAB/modules/FindKDChart.cmake index 6c6abe9f..81af2eee 100644 --- a/cmake/KDAB/modules/FindKDChart.cmake +++ b/cmake/KDAB/modules/FindKDChart.cmake @@ -5,22 +5,30 @@ # KDChart_LIBRARIES - Path to KDChart libraries. # KDChart_INCLUDE_DIR - Path to the KDChart include directory. # -# SPDX-FileCopyrightText: 2015-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2015 Klarälvdalens Datakonsult AB, a KDAB Group company # # SPDX-License-Identifier: BSD-3-Clause # include(FindPackageHandleStandardArgs) -find_library(KDChart_LIBRARIES - NAMES KDChart kdchart kdchart2 kdchartd2 NAMES_PER_DIR +find_library( + KDChart_LIBRARIES + NAMES KDChart + kdchart + kdchart2 + kdchartd2 + NAMES_PER_DIR HINTS ${KDChart_DIR} ENV KDChart_DIR - PATH_SUFFIXES lib) + PATH_SUFFIXES lib +) -find_path(KDChart_INCLUDE_DIR +find_path( + KDChart_INCLUDE_DIR NAMES KDChartGlobal.h HINTS ${KDChart_DIR} ENV KDChart_DIR - PATH_SUFFIXES include include/KDChart) + PATH_SUFFIXES include include/KDChart +) mark_as_advanced(KDChart_LIBRARIES KDChart_INCLUDE_DIR) @@ -28,7 +36,7 @@ find_package_handle_standard_args(KDChart DEFAULT_MSG KDChart_LIBRARIES KDChart_ if(KDChart_FOUND) add_library(KDChart UNKNOWN IMPORTED) - set_target_properties(KDChart PROPERTIES - IMPORTED_LOCATION ${KDChart_LIBRARIES} - INTERFACE_INCLUDE_DIRECTORIES ${KDChart_INCLUDE_DIR}) + set_target_properties( + KDChart PROPERTIES IMPORTED_LOCATION ${KDChart_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES ${KDChart_INCLUDE_DIR} + ) endif() diff --git a/cmake/KDAB/modules/FindPySide2.cmake b/cmake/KDAB/modules/FindPySide2.cmake index 6a59d210..df80e32b 100644 --- a/cmake/KDAB/modules/FindPySide2.cmake +++ b/cmake/KDAB/modules/FindPySide2.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2019-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2019 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Renato Araujo Oliveira Filho # # SPDX-License-Identifier: BSD-3-Clause @@ -23,18 +23,9 @@ set(PYSIDE2_FOUND FALSE) if(PYSIDE2_PRIV_FOUND) set(PYSIDE2_FOUND TRUE) message(STATUS "Using PySide2 found in the system!") - pkg_get_variable(SHIBOKEN_BINARY - pyside2 - generator_location - ) - pkg_get_variable(PYSIDE2_BASEDIR - pyside2 - typesystemdir - ) - pkg_get_variable(PYSIDE_INCLUDE_DIR - pyside2 - includedir - ) + pkg_get_variable(SHIBOKEN_BINARY pyside2 generator_location) + pkg_get_variable(PYSIDE2_BASEDIR pyside2 typesystemdir) + pkg_get_variable(PYSIDE_INCLUDE_DIR pyside2 includedir) set(PYSIDE_TYPESYSTEMS ${PYSIDE2_BASEDIR}) set(PYSIDE2_SO_VERSION ${PYSIDE2_PRIV_VERSION}) set(PYSIDE_LIBRARY ${PYSIDE2_PRIV_LINK_LIBRARIES}) @@ -45,7 +36,8 @@ else() get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os, sys try: import PySide2.QtCore as QtCore @@ -58,16 +50,18 @@ else() OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT PYSIDE2_BASEDIR) - message( - FATAL_ERROR - "The PySide2 module could not be imported. Make sure you have it installed " - "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" + message(FATAL_ERROR "The PySide2 module could not be imported. Make sure you have it installed " + "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" ) endif() - set(PYSIDE_BASEDIR ${PYSIDE2_BASEDIR} CACHE PATH "Top level install of PySide2" FORCE) + set(PYSIDE_BASEDIR + ${PYSIDE2_BASEDIR} + CACHE PATH "Top level install of PySide2" FORCE + ) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os import PySide2.QtCore as QtCore print(os.path.basename(QtCore.__file__).split('.', 1)[1]) @@ -77,7 +71,8 @@ else() ) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os import PySide2.QtCore as QtCore print(';'.join(map(str, QtCore.__version_info__))) @@ -103,10 +98,15 @@ else() #PySide #=============================================================================== - find_path(PYSIDE_INCLUDE_DIR - pyside.h + if(PYSIDE_CUSTOM_PREFIX STREQUAL "") + set(PYSIDE_CUSTOM_PREFIX ${PYSIDE2_BASEDIR}) + endif() + + find_path( + PYSIDE_INCLUDE_DIR pyside.h PATHS ${PYSIDE2_BASEDIR}/include ${PYSIDE_CUSTOM_PREFIX}/include/PySide2 - NO_DEFAULT_PATH) + NO_DEFAULT_PATH NO_CACHE NO_SYSTEM_ENVIRONMENT_PATH + ) # Platform specific library names if(MSVC) @@ -119,15 +119,17 @@ else() set(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}") endif() - find_file(PYSIDE_LIBRARY - ${PYSIDE_LIBRARY_BASENAMES} + find_file( + PYSIDE_LIBRARY ${PYSIDE_LIBRARY_BASENAMES} PATHS ${PYSIDE2_BASEDIR} ${PYSIDE_CUSTOM_PREFIX}/lib - NO_DEFAULT_PATH) + NO_DEFAULT_PATH + ) - find_path(PYSIDE_TYPESYSTEMS - typesystem_core.xml + find_path( + PYSIDE_TYPESYSTEMS typesystem_core.xml PATHS ${PYSIDE2_BASEDIR}/typesystems ${PYSIDE_CUSTOM_PREFIX}/share/PySide2/typesystems - NO_DEFAULT_PATH) + NO_DEFAULT_PATH + ) endif() if(PYSIDE2_FOUND) @@ -142,17 +144,20 @@ if(PYSIDE2_FOUND) set_property(TARGET PySide2::pyside2 PROPERTY IMPORTED_IMPLIB ${PYSIDE_LIBRARY}) endif() set_property(TARGET PySide2::pyside2 PROPERTY IMPORTED_LOCATION ${PYSIDE_LIBRARY}) - set_property(TARGET PySide2::pyside2 APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES - ${PYSIDE_INCLUDE_DIR} - ${PYSIDE_INCLUDE_DIR}/QtCore/ - ${PYSIDE_INCLUDE_DIR}/QtGui/ - ${PYSIDE_INCLUDE_DIR}/QtWidgets/ - ${Python3_INCLUDE_DIRS} + set_property( + TARGET PySide2::pyside2 + APPEND + PROPERTY INTERFACE_INCLUDE_DIRECTORIES + ${PYSIDE_INCLUDE_DIR} + ${PYSIDE_INCLUDE_DIR}/QtCore/ + ${PYSIDE_INCLUDE_DIR}/QtGui/ + ${PYSIDE_INCLUDE_DIR}/QtWidgets/ + ${Python3_INCLUDE_DIRS} ) endif() -find_package_handle_standard_args(PySide2 +find_package_handle_standard_args( + PySide2 REQUIRED_VARS PYSIDE2_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS VERSION_VAR PYSIDE2_SO_VERSION ) diff --git a/cmake/KDAB/modules/FindPySide6.cmake b/cmake/KDAB/modules/FindPySide6.cmake index b088daae..ae8dc870 100644 --- a/cmake/KDAB/modules/FindPySide6.cmake +++ b/cmake/KDAB/modules/FindPySide6.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2020-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Renato Araujo Oliveira Filho # # SPDX-License-Identifier: BSD-3-Clause @@ -20,7 +20,8 @@ list(GET Python3_LIBRARIES 0 PYTHON_LIBRARY_FILENAME) get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os, sys try: import PySide6.QtCore as QtCore @@ -33,17 +34,19 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT PYSIDE6_BASEDIR) - message( - FATAL_ERROR - "The PySide6 module could not be imported. Make sure you have it installed " - "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" + message(FATAL_ERROR "The PySide6 module could not be imported. Make sure you have it installed " + "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" ) endif() if(PYSIDE6_BASEDIR) - set(PYSIDE_BASEDIR ${PYSIDE6_BASEDIR} CACHE PATH "Top level install of PySide6" FORCE) + set(PYSIDE_BASEDIR + ${PYSIDE6_BASEDIR} + CACHE PATH "Top level install of PySide6" FORCE + ) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os import PySide6.QtCore as QtCore print(os.path.basename(QtCore.__file__).split('.', 1)[1]) @@ -53,7 +56,8 @@ if(PYSIDE6_BASEDIR) ) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os import PySide6.QtCore as QtCore print(';'.join(map(str, QtCore.__version_info__))) @@ -81,10 +85,12 @@ endif() if(PYSIDE6_FOUND) #PySide #=============================================================================== - find_path(PYSIDE_INCLUDE_DIR + find_path( + PYSIDE_INCLUDE_DIR pyside.h - PATHS ${PYSIDE6_BASEDIR}/include ${PYSIDE_CUSTOM_PREFIX}/include/PySide6 - NO_DEFAULT_PATH) + PATH_SUFFIXES PySide6 + PATHS ${PYSIDE6_BASEDIR}/include ${PYSIDE_CUSTOM_PREFIX}/include + ) # Platform specific library names if(MSVC) @@ -97,15 +103,18 @@ if(PYSIDE6_FOUND) set(PYSIDE_LIBRARY_BASENAMES "libpyside6.${PYSIDE6_SUFFIX}") endif() - find_file(PYSIDE_LIBRARY - ${PYSIDE_LIBRARY_BASENAMES} + find_library( + PYSIDE_LIBRARY + NAMES ${PYSIDE_LIBRARY_BASENAMES} PATHS ${PYSIDE6_BASEDIR} ${PYSIDE_CUSTOM_PREFIX}/lib - NO_DEFAULT_PATH) + ) - find_path(PYSIDE_TYPESYSTEMS + find_path( + PYSIDE_TYPESYSTEMS typesystem_core.xml - PATHS ${PYSIDE6_BASEDIR}/typesystems ${PYSIDE_CUSTOM_PREFIX}/share/PySide6/typesystems - NO_DEFAULT_PATH) + PATHS ${PYSIDE6_BASEDIR}/typesystems ${PYSIDE_CUSTOM_PREFIX}/share/PySide6/typesystems /usr/share/PySide6/typesystems + NO_DEFAULT_PATH + ) endif() if(PYSIDE6_FOUND) @@ -120,17 +129,20 @@ if(PYSIDE6_FOUND) set_property(TARGET PySide6::pyside6 PROPERTY IMPORTED_IMPLIB ${PYSIDE_LIBRARY}) endif() set_property(TARGET PySide6::pyside6 PROPERTY IMPORTED_LOCATION ${PYSIDE_LIBRARY}) - set_property(TARGET PySide6::pyside6 APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES - ${PYSIDE_INCLUDE_DIR} - ${PYSIDE_INCLUDE_DIR}/QtCore/ - ${PYSIDE_INCLUDE_DIR}/QtGui/ - ${PYSIDE_INCLUDE_DIR}/QtWidgets/ - ${Python3_INCLUDE_DIRS} + set_property( + TARGET PySide6::pyside6 + APPEND + PROPERTY INTERFACE_INCLUDE_DIRECTORIES + ${PYSIDE_INCLUDE_DIR} + ${PYSIDE_INCLUDE_DIR}/QtCore/ + ${PYSIDE_INCLUDE_DIR}/QtGui/ + ${PYSIDE_INCLUDE_DIR}/QtWidgets/ + ${Python3_INCLUDE_DIRS} ) endif() -find_package_handle_standard_args(PySide6 +find_package_handle_standard_args( + PySide6 REQUIRED_VARS PYSIDE6_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS VERSION_VAR PYSIDE6_SO_VERSION ) diff --git a/cmake/KDAB/modules/FindShiboken2.cmake b/cmake/KDAB/modules/FindShiboken2.cmake index 65b51cd1..9dd3a2a9 100644 --- a/cmake/KDAB/modules/FindShiboken2.cmake +++ b/cmake/KDAB/modules/FindShiboken2.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2019-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2019 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Renato Araujo Oliveira Filho # # SPDX-License-Identifier: BSD-3-Clause @@ -24,23 +24,15 @@ set(SHIBOKEN_FOUND FALSE) if(SHIBOKEN2_PRIV_FOUND) set(SHIBOKEN_FOUND TRUE) message(STATUS "Using shiboken found in the system!") - pkg_get_variable(SHIBOKEN_BINARY - shiboken2 - generator_location - ) - pkg_get_variable(SHIBOKEN_BASEDIR - shiboken2 - libdir - ) - pkg_get_variable(SHIBOKEN_INCLUDE_DIR - shiboken2 - includedir - ) + pkg_get_variable(SHIBOKEN_BINARY shiboken2 generator_location) + pkg_get_variable(SHIBOKEN_BASEDIR shiboken2 libdir) + pkg_get_variable(SHIBOKEN_INCLUDE_DIR shiboken2 includedir) set(SHIBOKEN_VERSION ${SHIBOKEN2_PRIV_VERSION}) set(SHIBOKEN_LIBRARY ${SHIBOKEN2_PRIV_LINK_LIBRARIES}) else() execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os try: import shiboken2_generator @@ -52,14 +44,13 @@ else() OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT SHIBOKEN_GENERATOR_BASEDIR) - message( - FATAL_ERROR - "The shiboken2_generator module could not be imported. Make sure you have it installed " - "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" + message(FATAL_ERROR "The shiboken2_generator module could not be imported. Make sure you have it installed " + "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" ) endif() execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os try: import shiboken2 @@ -71,14 +62,13 @@ else() OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT SHIBOKEN_BASEDIR) - message( - FATAL_ERROR - "The shiboken2 module could not be imported. Make sure you have it installed " - "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" + message(FATAL_ERROR "The shiboken2 module could not be imported. Make sure you have it installed " + "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" ) endif() execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os import shiboken2 print(';'.join(filter(None, map(str, shiboken2.__version_info__)))) @@ -91,15 +81,19 @@ else() list(GET SHIBOKEN_VERSION 2 SHIBOKEN_MINOR_VERSION) string(REPLACE ";" "." SHIBOKEN_VERSION "${SHIBOKEN_VERSION}") + if(SHIBOKEN_CUSTOM_PREFIX STREQUAL "") + set(SHIBOKEN_CUSTOM_PREFIX ${SHIBOKEN_GENERATOR_BASEDIR}) + endif() + message(STATUS "ShibokenGenerator base dir: ${SHIBOKEN_GENERATOR_BASEDIR}") message(STATUS "Shiboken base dir: ${SHIBOKEN_BASEDIR}") message(STATUS "Shiboken custom path: ${SHIBOKEN_CUSTOM_PREFIX}") if(SHIBOKEN_BASEDIR) - find_path(SHIBOKEN_INCLUDE_DIR - shiboken.h + find_path( + SHIBOKEN_INCLUDE_DIR shiboken.h PATHS ${SHIBOKEN_CUSTOM_PREFIX} ${SHIBOKEN_GENERATOR_BASEDIR}/include - NO_DEFAULT_PATH + NO_DEFAULT_PATH NO_CACHE NO_SYSTEM_ENVIRONMENT_PATH ) if(MSVC) set(SHIBOKEN_LIBRARY_BASENAMES "shiboken2.abi3.lib") @@ -109,15 +103,13 @@ else() set(SHIBOKEN_LIBRARY_BASENAMES "libshiboken2.${PYSIDE2_SUFFIX}") elseif(APPLE) set(SHIBOKEN_LIBRARY_BASENAMES - libshiboken2.abi3.dylib - libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.dylib + libshiboken2.abi3.dylib libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.dylib libshiboken2.abi3.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}.dylib libshiboken2.abi3.${SHIBOKEN_VERSION}.dylib ) else() set(SHIBOKEN_LIBRARY_BASENAMES - libshiboken2.abi3.so - libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION} + libshiboken2.abi3.so libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION} libshiboken2.abi3.so.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION} libshiboken2.abi3.so.${SHIBOKEN_VERSION} ) @@ -129,29 +121,35 @@ else() set(SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_CUSTOM_PREFIX}) list(APPEND SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_BASEDIR}) list(APPEND SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_GENERATOR_BASEDIR}) - find_file(SHIBOKEN_LIBRARY - ${SHIBOKEN_LIBRARY_BASENAMES} + find_file( + SHIBOKEN_LIBRARY ${SHIBOKEN_LIBRARY_BASENAMES} PATHS ${SHIBOKEN_SEARCH_PATHS} - NO_DEFAULT_PATH) + NO_DEFAULT_PATH + ) - find_program(SHIBOKEN_BINARY - shiboken2 + find_program( + SHIBOKEN_BINARY shiboken2 PATHS ${SHIBOKEN_SEARCH_PATHS} NO_DEFAULT_PATH ) endif() - if(SHIBOKEN_INCLUDE_DIR AND SHIBOKEN_LIBRARY AND SHIBOKEN_BINARY) + if(SHIBOKEN_INCLUDE_DIR + AND SHIBOKEN_LIBRARY + AND SHIBOKEN_BINARY + ) set(SHIBOKEN_FOUND TRUE) endif() if(SHIBOKEN_FOUND) + endif() if(MSVC) # On Windows we must link to python3.dll that is a small library that links against python3x.dll # that allow us to choose any python3x.dll at runtime execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: for lib in '${Python3_LIBRARIES}'.split(';'): if '/' in lib: prefix, py = lib.rsplit('/', 1) @@ -177,15 +175,18 @@ if(SHIBOKEN_FOUND) # Create shiboke2 target add_library(Shiboken2::libshiboken SHARED IMPORTED GLOBAL) if(MSVC) - set_property(TARGET Shiboken2::libshiboken PROPERTY - IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY}) + set_property(TARGET Shiboken2::libshiboken PROPERTY IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY}) endif() set_property(TARGET Shiboken2::libshiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_LIBRARY}) - set_property(TARGET Shiboken2::libshiboken APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS} + set_property( + TARGET Shiboken2::libshiboken + APPEND + PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS} ) - set_property(TARGET Shiboken2::libshiboken APPEND PROPERTY - INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES} + set_property( + TARGET Shiboken2::libshiboken + APPEND + PROPERTY INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES} ) # Generator target @@ -193,8 +194,8 @@ if(SHIBOKEN_FOUND) set_property(TARGET Shiboken2::shiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_BINARY}) endif() -find_package_handle_standard_args(Shiboken2 +find_package_handle_standard_args( + Shiboken2 REQUIRED_VARS SHIBOKEN_BASEDIR SHIBOKEN_INCLUDE_DIR SHIBOKEN_LIBRARY SHIBOKEN_BINARY VERSION_VAR SHIBOKEN_VERSION ) - diff --git a/cmake/KDAB/modules/FindShiboken6.cmake b/cmake/KDAB/modules/FindShiboken6.cmake index 350a67ea..02b67628 100644 --- a/cmake/KDAB/modules/FindShiboken6.cmake +++ b/cmake/KDAB/modules/FindShiboken6.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2020-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Renato Araujo Oliveira Filho # # SPDX-License-Identifier: BSD-3-Clause @@ -17,7 +17,8 @@ set(SHIBOKEN_FOUND FALSE) execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os try: import shiboken6_generator @@ -29,14 +30,13 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT SHIBOKEN_GENERATOR_BASEDIR) - message( - FATAL_ERROR - "The shiboken6_generator module could not be imported. Make sure you have it installed " - "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" + message(FATAL_ERROR "The shiboken6_generator module could not be imported. Make sure you have it installed " + "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" ) endif() execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os try: import shiboken6 @@ -48,14 +48,13 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT SHIBOKEN_BASEDIR) - message( - FATAL_ERROR - "The shiboken6 module could not be imported. Make sure you have it installed " - "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" + message(FATAL_ERROR "The shiboken6 module could not be imported. Make sure you have it installed " + "by checking the output of \"pip${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} list\"" ) endif() execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: import os import shiboken6 print(';'.join(filter(None, map(str, shiboken6.__version_info__)))) @@ -73,10 +72,11 @@ message(STATUS "Shiboken base dir: ${SHIBOKEN_BASEDIR}") message(STATUS "Shiboken custom path: ${SHIBOKEN_CUSTOM_PREFIX}") if(SHIBOKEN_BASEDIR) - find_path(SHIBOKEN_INCLUDE_DIR - shiboken.h + # Alternatively we could do find_package(Shiboken6Tools)? + find_path( + SHIBOKEN_INCLUDE_DIR shiboken.h + PATH_SUFFIXES shiboken6 PATHS ${SHIBOKEN_CUSTOM_PREFIX} ${SHIBOKEN_GENERATOR_BASEDIR}/include - NO_DEFAULT_PATH ) if(MSVC) set(SHIBOKEN_LIBRARY_BASENAMES "shiboken6.abi3.lib") @@ -86,49 +86,53 @@ if(SHIBOKEN_BASEDIR) set(SHIBOKEN_LIBRARY_BASENAMES "libshiboken6.${PYSIDE2_SUFFIX}") elseif(APPLE) set(SHIBOKEN_LIBRARY_BASENAMES - libshiboken6.abi3.dylib - libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.dylib + libshiboken6.abi3.dylib libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.dylib libshiboken6.abi3.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION}.dylib libshiboken6.abi3.${SHIBOKEN_VERSION}.dylib ) else() set(SHIBOKEN_LIBRARY_BASENAMES - libshiboken6.abi3.so - libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION} + libshiboken6.abi3.so libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION} libshiboken6.abi3.so.${SHIBOKEN_MACRO_VERSION}.${SHIBOKEN_MICRO_VERSION} libshiboken6.abi3.so.${SHIBOKEN_VERSION} ) endif() if(NOT SHIBOKEN_INCLUDE_DIR) + message(STATUS "No include dir found for Shiboken") return() endif() set(SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_CUSTOM_PREFIX}) list(APPEND SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_BASEDIR}) list(APPEND SHIBOKEN_SEARCH_PATHS ${SHIBOKEN_GENERATOR_BASEDIR}) - find_file(SHIBOKEN_LIBRARY - ${SHIBOKEN_LIBRARY_BASENAMES} + find_library( + SHIBOKEN_LIBRARY + NAMES ${SHIBOKEN_LIBRARY_BASENAMES} PATHS ${SHIBOKEN_SEARCH_PATHS} - NO_DEFAULT_PATH) + ) - find_program(SHIBOKEN_BINARY - shiboken6 + find_program( + SHIBOKEN_BINARY shiboken6 PATHS ${SHIBOKEN_SEARCH_PATHS} - NO_DEFAULT_PATH ) endif() -if(SHIBOKEN_INCLUDE_DIR AND SHIBOKEN_LIBRARY AND SHIBOKEN_BINARY) +if(SHIBOKEN_INCLUDE_DIR + AND SHIBOKEN_LIBRARY + AND SHIBOKEN_BINARY +) set(SHIBOKEN_FOUND TRUE) endif() if(SHIBOKEN_FOUND) + endif() if(MSVC) # On Windows we must link to python3.dll that is a small library that links against python3x.dll # that allow us to choose any python3x.dll at runtime execute_process( - COMMAND ${Python3_EXECUTABLE} -c "if True: + COMMAND + ${Python3_EXECUTABLE} -c "if True: for lib in '${Python3_LIBRARIES}'.split(';'): if '/' in lib: prefix, py = lib.rsplit('/', 1) @@ -154,15 +158,18 @@ if(SHIBOKEN_FOUND) # Create shiboken2 target add_library(Shiboken6::libshiboken SHARED IMPORTED GLOBAL) if(MSVC) - set_property(TARGET Shiboken6::libshiboken PROPERTY - IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY}) + set_property(TARGET Shiboken6::libshiboken PROPERTY IMPORTED_IMPLIB ${SHIBOKEN_LIBRARY}) endif() set_property(TARGET Shiboken6::libshiboken PROPERTY IMPORTED_LOCATION ${SHIBOKEN_LIBRARY}) - set_property(TARGET Shiboken6::libshiboken APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS} + set_property( + TARGET Shiboken6::libshiboken + APPEND + PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SHIBOKEN_INCLUDE_DIR} ${Python3_INCLUDE_DIRS} ) - set_property(TARGET Shiboken6::libshiboken APPEND PROPERTY - INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES} + set_property( + TARGET Shiboken6::libshiboken + APPEND + PROPERTY INTERFACE_LINK_LIBRARIES ${PYTHON_LIMITED_LIBRARIES} ) # Generator target @@ -175,4 +182,3 @@ find_package_handle_standard_args( REQUIRED_VARS SHIBOKEN_BASEDIR SHIBOKEN_INCLUDE_DIR SHIBOKEN_LIBRARY SHIBOKEN_BINARY VERSION_VAR SHIBOKEN_VERSION ) - diff --git a/cmake/KDAB/modules/KDCompilerFlags.cmake b/cmake/KDAB/modules/KDCompilerFlags.cmake index 1a01186b..9331d073 100644 --- a/cmake/KDAB/modules/KDCompilerFlags.cmake +++ b/cmake/KDAB/modules/KDCompilerFlags.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2021-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2021 Klarälvdalens Datakonsult AB, a KDAB Group company # # SPDX-License-Identifier: BSD-3-Clause # @@ -36,9 +36,10 @@ endif() # Do not treat the operator name keywords and, bitand, bitor, compl, not, or and xor as synonyms as keywords. # They're not supported under Visual Studio out of the box thus using them limits the portability of code -if(CMAKE_COMPILER_IS_GNUCXX OR - CMAKE_C_COMPILER_ID MATCHES "Clang" OR - (CMAKE_C_COMPILER_ID STREQUAL "Intel" AND NOT WIN32)) +if(CMAKE_COMPILER_IS_GNUCXX + OR CMAKE_C_COMPILER_ID MATCHES "Clang" + OR (CMAKE_C_COMPILER_ID STREQUAL "Intel" AND NOT WIN32) +) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-operator-names") endif() @@ -61,9 +62,10 @@ if(CYGWIN) add_definitions(-D_GNU_SOURCE) endif() -if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT APPLE) OR - (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT APPLE) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND NOT WIN32)) +if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT APPLE) + OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT APPLE) + OR (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND NOT WIN32) +) # Linker warnings should be treated as errors set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings ${CMAKE_MODULE_LINKER_FLAGS}") diff --git a/cmake/KDAB/modules/KDFunctions.cmake b/cmake/KDAB/modules/KDFunctions.cmake index 2aa54f12..38faeb3b 100644 --- a/cmake/KDAB/modules/KDFunctions.cmake +++ b/cmake/KDAB/modules/KDFunctions.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2021-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2021 Klarälvdalens Datakonsult AB, a KDAB Group company # # SPDX-License-Identifier: BSD-3-Clause # @@ -21,7 +21,10 @@ endif() function(kd_append_if condition value) if(${condition}) foreach(variable ${ARGN}) - set(${variable} "${${variable}} ${value}" PARENT_SCOPE) + set(${variable} + "${${variable}} ${value}" + PARENT_SCOPE + ) endforeach() endif() endfunction() diff --git a/cmake/KDAB/modules/KDInstallLocation.cmake b/cmake/KDAB/modules/KDInstallLocation.cmake index 96baaf3a..4b6e9d19 100644 --- a/cmake/KDAB/modules/KDInstallLocation.cmake +++ b/cmake/KDAB/modules/KDInstallLocation.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2012-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2012 Klarälvdalens Datakonsult AB, a KDAB Group company # # SPDX-License-Identifier: BSD-3-Clause # diff --git a/cmake/KDAB/modules/KDPySide2ModuleBuild.cmake b/cmake/KDAB/modules/KDPySide2ModuleBuild.cmake index 29be1168..78bc8e04 100644 --- a/cmake/KDAB/modules/KDPySide2ModuleBuild.cmake +++ b/cmake/KDAB/modules/KDPySide2ModuleBuild.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2019-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2019 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Renato Araujo Oliveira Filho # # SPDX-License-Identifier: BSD-3-Clause @@ -7,7 +7,8 @@ if(NOT ${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX) # cmake-lint: disable=C0103 - set(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} + set(${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX + ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Custom path to install python bindings." ) endif() @@ -19,8 +20,7 @@ if(WIN32) else() set(PATH_SEP ":") endif() -#Qt5 requires C++14 -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) #remove noisy compiler warnings (as the generated code is not necessarily super-warning-free) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") @@ -91,7 +91,8 @@ endmacro() # dependsArg - This var will be passed to add_custom_command(DEPENDS) so a new generation will be # trigger if one of these files changes # moduleOutputDir - Where the library file should be stored -macro(create_python_bindings +macro( + create_python_bindings libraryName typesystemPaths includePaths @@ -101,12 +102,17 @@ macro(create_python_bindings globalInclude typesystemXML dependsArg - moduleOutputDir) + moduleOutputDir +) # Transform the path separators into something shiboken understands. make_path(shiboken_include_dirs ${includePaths}) make_path(shiboken_typesystem_dirs ${typesystemPaths}) - get_property(raw_python_dir_include_dirs DIRECTORY PROPERTY INCLUDE_DIRECTORIES) + get_property( + raw_python_dir_include_dirs + DIRECTORY + PROPERTY INCLUDE_DIRECTORIES + ) make_path(python_dir_include_dirs ${raw_python_dir_include_dirs}) set(shiboken_include_dirs "${shiboken_include_dirs}${PATH_SEP}${python_dir_include_dirs}") @@ -119,13 +125,10 @@ macro(create_python_bindings set_property(SOURCE ${outputSource} PROPERTY SKIP_AUTOGEN ON) add_custom_command( OUTPUT ${outputSource} - COMMAND $ ${GENERATOR_EXTRA_FLAGS} - ${globalInclude} - --include-paths=${shiboken_include_dirs} - --typesystem-paths=${shiboken_typesystem_dirs} - ${shiboken_framework_include_dirs_option} - --output-directory=${CMAKE_CURRENT_BINARY_DIR} - ${typesystemXML} + COMMAND + $ ${GENERATOR_EXTRA_FLAGS} ${globalInclude} + --include-paths=${shiboken_include_dirs} --typesystem-paths=${shiboken_typesystem_dirs} + ${shiboken_framework_include_dirs_option} --output-directory=${CMAKE_CURRENT_BINARY_DIR} ${typesystemXML} DEPENDS ${typesystemXML} ${dependsArg} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Running generator for ${libraryName} binding..." @@ -136,10 +139,10 @@ macro(create_python_bindings add_library(${TARGET_NAME} MODULE ${outputSource}) set_target_properties( - ${TARGET_NAME} PROPERTIES - PREFIX "" - OUTPUT_NAME ${MODULE_NAME} - LIBRARY_OUTPUT_DIRECTORY ${moduleOutputDir} + ${TARGET_NAME} + PROPERTIES PREFIX "" + OUTPUT_NAME ${MODULE_NAME} + LIBRARY_OUTPUT_DIRECTORY ${moduleOutputDir} ) if(APPLE) set_target_properties(${TARGET_NAME} PROPERTIES INSTALL_RPATH "@loader_path") @@ -153,18 +156,14 @@ macro(create_python_bindings target_include_directories(${TARGET_NAME} PUBLIC ${targetIncludeDirs}) - target_link_libraries( - ${TARGET_NAME} - ${targetLinkLibraries} - PySide2::pyside2 - Shiboken2::libshiboken - ) + target_link_libraries(${TARGET_NAME} ${targetLinkLibraries} PySide2::pyside2 Shiboken2::libshiboken) target_compile_definitions(${TARGET_NAME} PRIVATE Py_LIMITED_API=0x03050000) if(APPLE) - set_property(TARGET ${TARGET_NAME} APPEND PROPERTY LINK_FLAGS "-undefined dynamic_lookup") + set_property( + TARGET ${TARGET_NAME} + APPEND + PROPERTY LINK_FLAGS "-undefined dynamic_lookup" + ) endif() - install( - TARGETS ${TARGET_NAME} - LIBRARY DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX} - ) + install(TARGETS ${TARGET_NAME} LIBRARY DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX}) endmacro() diff --git a/cmake/KDAB/modules/KDPySide6ModuleBuild.cmake b/cmake/KDAB/modules/KDPySide6ModuleBuild.cmake index b0b8991c..e2b0dc40 100644 --- a/cmake/KDAB/modules/KDPySide6ModuleBuild.cmake +++ b/cmake/KDAB/modules/KDPySide6ModuleBuild.cmake @@ -1,5 +1,5 @@ # -# SPDX-FileCopyrightText: 2020-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Renato Araujo Oliveira Filho # # SPDX-License-Identifier: BSD-3-Clause @@ -115,7 +115,6 @@ macro( PROPERTY INCLUDE_DIRECTORIES ) make_path(python_dir_include_dirs ${raw_python_dir_include_dirs}) - set(shiboken_include_dirs "${shiboken_include_dirs}${PATH_SEP}${python_dir_include_dirs}") set(shiboken_framework_include_dirs_option "") if(CMAKE_HOST_APPLE) diff --git a/cmake/KDAB/modules/KDQtInstallPaths.cmake b/cmake/KDAB/modules/KDQtInstallPaths.cmake index b535b2b5..c9294c01 100644 --- a/cmake/KDAB/modules/KDQtInstallPaths.cmake +++ b/cmake/KDAB/modules/KDQtInstallPaths.cmake @@ -1,23 +1,26 @@ # -# SPDX-FileCopyrightText: 2016-2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# SPDX-FileCopyrightText: 2016 Klarälvdalens Datakonsult AB, a KDAB Group company # Author: Allen Winter # # SPDX-License-Identifier: BSD-3-Clause # -# Assumes you've already found Qt and Qt_VERSION_MAJOR is set +# Assumes you've already found Qt and QT_VERSION_MAJOR is set # # Create variables for all the various install paths for the Qt version in use # Make sure to have found Qt before using this. # sets variables like QT_INSTALL_PREFIX, QT_INSTALL_DATA, QT_INSTALL_DOCS, etc. # run qmake -query to see a full list -if(NOT DEFINED Qt_VERSION_MAJOR) - message(FATAL_ERROR "Please set Qt_VERSION_MAJOR first (ie. set(Qt_VERSION_MAJOR 5))") +if(NOT DEFINED QT_VERSION_MAJOR) + message(FATAL_ERROR "Please set QT_VERSION_MAJOR first (ie. set(QT_VERSION_MAJOR 5))") endif() -if(TARGET Qt${Qt_VERSION_MAJOR}::qmake) - get_target_property(QT_QMAKE_EXECUTABLE Qt${Qt_VERSION_MAJOR}::qmake LOCATION) +# use qtpaths if qmake not found +if(TARGET Qt${QT_VERSION_MAJOR}::qmake) + get_target_property(QT_QMAKE_EXECUTABLE Qt${QT_VERSION_MAJOR}::qmake LOCATION) +elseif(TARGET Qt${QT_VERSION_MAJOR}::qtpaths) + get_target_property(QT_QMAKE_EXECUTABLE Qt${QT_VERSION_MAJOR}::qtpaths LOCATION) else() message(FATAL_ERROR "No supported Qt version found. Make sure you find Qt before calling this") endif() diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 31bea2c7..5f063308 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -27,8 +27,8 @@ add_subdirectory(MailMergeXML) add_subdirectory(ReportSection) if(NOT EMSCRIPTEN) - if(TARGET Qt${Qt_VERSION_MAJOR}::Sql) - list(APPEND QT_LIBRARIES Qt${Qt_VERSION_MAJOR}::Sql) + if(TARGET Qt${QT_VERSION_MAJOR}::Sql) + list(APPEND QT_LIBRARIES Qt${QT_VERSION_MAJOR}::Sql) add_subdirectory(Database) add_subdirectory(DatabaseXML) else() diff --git a/python/PyKDReports/CMakeLists.txt b/python/PyKDReports/CMakeLists.txt index 78182b4e..d9a2e18d 100644 --- a/python/PyKDReports/CMakeLists.txt +++ b/python/PyKDReports/CMakeLists.txt @@ -49,9 +49,9 @@ set(PyKDReports_target_include_directories ${CMAKE_SOURCE_DIR}/src/ ${CMAKE_SOUR # Libraries that will be necessary to link the target, this will used in the command 'target_link_libraries' set(PyKDReports_target_link_libraries kdreports - Qt${Qt_VERSION_MAJOR}::Core - Qt${Qt_VERSION_MAJOR}::Gui - Qt${Qt_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets ${Python3_LIBRARIES} ) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index c18b7ed3..3739fa0f 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -39,13 +39,13 @@ macro(add_unittest _source) add_test(NAME kdreports-${_name} COMMAND ${_name}) target_link_libraries( ${_name} - Qt${Qt_VERSION_MAJOR}::Core - Qt${Qt_VERSION_MAJOR}::Gui - Qt${Qt_VERSION_MAJOR}::Test + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Test kdreports ) if(NOT EMSCRIPTEN) - target_link_libraries(${_name} Qt${Qt_VERSION_MAJOR}::Sql) + target_link_libraries(${_name} Qt${QT_VERSION_MAJOR}::Sql) endif() endmacro() @@ -57,8 +57,8 @@ add_subdirectory(SpreadsheetMode) add_subdirectory(InThread) if(NOT EMSCRIPTEN) - if(TARGET Qt${Qt_VERSION_MAJOR}::Sql) - list(APPEND QT_LIBRARIES Qt${Qt_VERSION_MAJOR}::Sql) + if(TARGET Qt${QT_VERSION_MAJOR}::Sql) + list(APPEND QT_LIBRARIES Qt${QT_VERSION_MAJOR}::Sql) add_subdirectory(PageLayout) add_subdirectory(TextDocument) else()