diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-05-12 16:35:16 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-05-18 08:37:37 +0000 |
commit | 287311ed774a86ef9ce053dd42e947cd28b48495 (patch) | |
tree | b3fe3f16a83920df60d275411251e22de590bd57 | |
parent | b1ccd9ab328cc7f7e34ab653ec93f389b9945e19 (diff) |
cmake: Add Qt6 build
Also, switch Linux CMake job to build Qbs with Qt6
Change-Id: I188845a7cc086a8c87dbb7445ea95f99b26d94ef
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | .github/workflows/main.yml | 12 | ||||
-rw-r--r-- | CMakeLists.txt | 16 | ||||
-rw-r--r-- | cmake/QbsBuildConfig.cmake | 6 | ||||
-rw-r--r-- | doc/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/app/config-ui/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/lib/corelib/CMakeLists.txt | 9 | ||||
-rw-r--r-- | src/lib/scriptengine/CMakeLists.txt | 10 | ||||
-rw-r--r-- | src/libexec/qbs_processlauncher/CMakeLists.txt | 2 | ||||
-rw-r--r-- | tests/benchmarker/CMakeLists.txt | 2 | ||||
-rw-r--r-- | tests/fuzzy-test/CMakeLists.txt | 2 |
10 files changed, 40 insertions, 23 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b15885b8a..dde93af8e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,18 +62,20 @@ jobs: - { name: 'Build on Linux (clang_tidy)', script: './scripts/run-analyzer.sh', + image: 'focal', options: 'profile:qt-clang_64 modules.cpp.compilerWrapper:ccache', cacheid: 'clang', } - { name: 'Build on Linux (CMake)', script: './scripts/build-qbs-with-cmake.sh', - options: '-DQBS_USE_BUNDLED_QT_SCRIPT=1', + image: 'focal-qt6', cacheid: 'cmake', } - { name: 'Build on Linux (QMake)', script: './scripts/build-qbs-with-qmake.sh', + image: 'focal', options: 'CONFIG+=ccache', cacheid: 'qmake', } @@ -96,13 +98,13 @@ jobs: key: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache-${{ steps.get-timestamp.outputs.timestamp }} restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache- - name: Pull the Focal Image - run: docker-compose pull focal + run: docker-compose pull ${{ matrix.config.image }} - name: Print ccache stats - run: docker-compose run focal ccache -s + run: docker-compose run ${{ matrix.config.image }} ccache -s - name: Build Qbs - run: docker-compose run focal ${{ matrix.config.script }} + run: docker-compose run ${{ matrix.config.image }} ${{ matrix.config.script }} - name: Print ccache stats - run: docker-compose run focal ccache -s + run: docker-compose run ${{ matrix.config.image }} ccache -s build-macos: name: Build on macOS diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e3d15219..441454b10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,18 +22,28 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) +find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) + if(WITH_TESTS) enable_testing() set(QT_TEST_COMPONENT Test) - set(IMPLICIT_DEPENDS Qt5::Test) + set(IMPLICIT_DEPENDS Qt${QT_VERSION_MAJOR}::Test) endif() -find_package(Qt5 +find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Concurrent Core Gui Network Widgets Xml ${QT_TEST_COMPONENT} REQUIRED ) -find_package(Qt5 COMPONENTS Script) +find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS Script) + +if (Qt6_FOUND) + find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core5Compat REQUIRED) + set_property(TARGET Qt6::Core5Compat PROPERTY IMPORTED_GLOBAL TRUE) # hack for CMake < 1.18 + add_library(Qt6Core5Compat ALIAS Qt6::Core5Compat) +else() + add_library(Qt6Core5Compat INTERFACE) +endif() add_subdirectory(src) add_subdirectory(doc) diff --git a/cmake/QbsBuildConfig.cmake b/cmake/QbsBuildConfig.cmake index a1eecded8..8bdfec77e 100644 --- a/cmake/QbsBuildConfig.cmake +++ b/cmake/QbsBuildConfig.cmake @@ -55,9 +55,9 @@ endif() function(get_update_path_command var) if(WIN32) - get_target_property(_QTCORE_LIBRARY Qt5::Core IMPORTED_LOCATION_RELEASE) + get_target_property(_QTCORE_LIBRARY Qt${QT_VERSION_MAJOR}::Core IMPORTED_LOCATION_RELEASE) if(NOT _QTCORE_LIBRARY) - get_target_property(_QTCORE_LIBRARY Qt5::Core IMPORTED_LOCATION_DEBUG) + get_target_property(_QTCORE_LIBRARY Qt${QT_VERSION_MAJOR}::Core IMPORTED_LOCATION_DEBUG) endif() get_filename_component(_QT_LIBRARY_PATH "${_QTCORE_LIBRARY}" DIRECTORY) get_target_property(_QBS_LIBRARY_PATH qbscore LIBRARY_OUTPUT_DIRECTORY) @@ -240,7 +240,7 @@ function(add_qbs_test test_name) ) target_link_libraries( ${target_name} - PRIVATE ${_arg_DEPENDS} qbscore qbsconsolelogger Qt5::Test + PRIVATE ${_arg_DEPENDS} qbscore qbsconsolelogger Qt${QT_VERSION_MAJOR}::Test PUBLIC ${_arg_PUBLIC_DEPENDS} ) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 0b5922a1a..96cdab897 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -42,7 +42,7 @@ if (QBS_INSTALL_HTML_DOCS OR QBS_INSTALL_QCH_DOCS) set(_INSTALL_QCH_DOCS false) endif() - get_target_property(_QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION) + get_target_property(_QT_QMAKE_EXECUTABLE Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION) get_update_path_command(UPDATE_PATH_COMMAND) add_custom_target( BuildQbsDocumentation ALL diff --git a/src/app/config-ui/CMakeLists.txt b/src/app/config-ui/CMakeLists.txt index 47b9c1905..f3375d5ea 100644 --- a/src/app/config-ui/CMakeLists.txt +++ b/src/app/config-ui/CMakeLists.txt @@ -14,6 +14,6 @@ if(APPLE) endif() add_qbs_app(qbs-config-ui - DEPENDS qbscore qbsconsolelogger Qt5::Widgets ${MACOS_FRAMEWORKS} + DEPENDS qbscore qbsconsolelogger Qt${QT_VERSION_MAJOR}::Widgets ${MACOS_FRAMEWORKS} SOURCES ${SOURCES} ${MACOS_SOURCES} ) diff --git a/src/lib/corelib/CMakeLists.txt b/src/lib/corelib/CMakeLists.txt index 3a070b55c..423f04ce7 100644 --- a/src/lib/corelib/CMakeLists.txt +++ b/src/lib/corelib/CMakeLists.txt @@ -422,9 +422,14 @@ add_qbs_library(qbscore PUBLIC_DEFINES ${QBS_PROJECT_FILE_UPDATES_DEFINES} DEPENDS - Qt5::CorePrivate Qt5::Network qbsscriptengine Qt5::Xml ${EXTERNAL_DEPENDS} + Qt${QT_VERSION_MAJOR}::CorePrivate + Qt${QT_VERSION_MAJOR}::Network + Qt${QT_VERSION_MAJOR}::Xml + Qt6Core5Compat + qbsscriptengine + ${EXTERNAL_DEPENDS} PUBLIC_DEPENDS - Qt5::Core + Qt${QT_VERSION_MAJOR}::Core INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/../.." SOURCES diff --git a/src/lib/scriptengine/CMakeLists.txt b/src/lib/scriptengine/CMakeLists.txt index 452605888..01c6cd09b 100644 --- a/src/lib/scriptengine/CMakeLists.txt +++ b/src/lib/scriptengine/CMakeLists.txt @@ -38,7 +38,7 @@ set(QT_SCRIPT_INCLUDES "${QT_SCRIPT_PATH}/script" "${QT_SCRIPT_PATH}/script/api" "${QT_SCRIPT_PATH}/script/parser" - "${CMAKE_CURRENT_BINARY_DIR}/include/QtScript/${Qt5_VERSION}/QtScript" + "${CMAKE_CURRENT_BINARY_DIR}/include/QtScript/${QT_VERSION}/QtScript" ) set(QT_SCRIPT_DEFINES @@ -83,7 +83,7 @@ else() "-Wno-nonnull-compare" "-pthread") endif() -set(QT_SCRIPT_PUBLIC_DEPENDS Qt5::Core) +set(QT_SCRIPT_PUBLIC_DEPENDS Qt${QT_VERSION_MAJOR}::Core) if (UNIX) list(APPEND QT_SCRIPT_PUBLIC_DEPENDS "pthread") elseif(WIN32) @@ -323,7 +323,7 @@ list_transform_prepend(PARSER_SOURCES "${QT_SCRIPT_PATH}/script/parser/") find_package(Perl) -get_target_property(_QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION) +get_target_property(_QT_QMAKE_EXECUTABLE Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION) get_filename_component(_QT_BIN_DIRECTORY ${_QT_QMAKE_EXECUTABLE} DIRECTORY) file(GLOB API_HEADERS "${QT_SCRIPT_PATH}/script/api/*.h") @@ -334,7 +334,7 @@ add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/QtScript/qscriptengine.h" COMMAND ${PERL_EXECUTABLE} "${_QT_BIN_DIRECTORY}/syncqt.pl" -minimal - -version "${Qt5_VERSION}" + -version "${QT_VERSION}" -outdir ${CMAKE_CURRENT_BINARY_DIR} "${QT_SCRIPT_PATH}/.." BYPRODUCTS @@ -344,7 +344,7 @@ add_custom_command( add_qbs_library(qbsscriptengine STATIC DEFINES ${QT_SCRIPT_DEFINES} - DEPENDS Qt5::CorePrivate + DEPENDS Qt${QT_VERSION_MAJOR}::CorePrivate Qt6Core5Compat PUBLIC_DEPENDS ${QT_SCRIPT_PUBLIC_DEPENDS} INCLUDES ${QT_SCRIPT_PUBLIC_INCLUDES} ${QT_SCRIPT_INCLUDES} ${JAVASCRIPT_CORE_INCLUDES} PUBLIC_INCLUDES ${QT_SCRIPT_PUBLIC_INCLUDES} diff --git a/src/libexec/qbs_processlauncher/CMakeLists.txt b/src/libexec/qbs_processlauncher/CMakeLists.txt index 73aca9f07..03ab07cbe 100644 --- a/src/libexec/qbs_processlauncher/CMakeLists.txt +++ b/src/libexec/qbs_processlauncher/CMakeLists.txt @@ -15,7 +15,7 @@ list_transform_prepend(PROTOCOL_SOURCES ${PATH_TO_PROTOCOL_SOURCES}/) add_qbs_app(qbs_processlauncher DESTINATION ${QBS_LIBEXEC_INSTALL_DIR} - DEPENDS Qt5::Core Qt5::Network + DEPENDS Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network INCLUDES ${PATH_TO_PROTOCOL_SOURCES} SOURCES ${SOURCES} ${PROTOCOL_SOURCES} ) diff --git a/tests/benchmarker/CMakeLists.txt b/tests/benchmarker/CMakeLists.txt index d77d6d9c4..12a6b3076 100644 --- a/tests/benchmarker/CMakeLists.txt +++ b/tests/benchmarker/CMakeLists.txt @@ -13,6 +13,6 @@ set(SOURCES ) add_qbs_app(qbs_benchmarker - DEPENDS Qt5::Core Qt5::Concurrent + DEPENDS Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Concurrent SOURCES ${SOURCES} ) diff --git a/tests/fuzzy-test/CMakeLists.txt b/tests/fuzzy-test/CMakeLists.txt index fe3a1a54e..43101f68b 100644 --- a/tests/fuzzy-test/CMakeLists.txt +++ b/tests/fuzzy-test/CMakeLists.txt @@ -7,6 +7,6 @@ set(SOURCES ) add_qbs_app(qbs_fuzzy-test - DEPENDS Qt5::Core + DEPENDS Qt${QT_VERSION_MAJOR}::Core SOURCES ${SOURCES} ) |