Skip to content

Commit 443f58e

Browse files
CMake: Make Qt 6 the default
Invert the logic and assume Qt 6 unless -DBUILD_WITH_QT5=ON is passed.
1 parent 9ac71d5 commit 443f58e

5 files changed

Lines changed: 29 additions & 48 deletions

File tree

.github/workflows/build.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,15 @@ jobs:
109109
-DCMAKE_BUILD_TYPE=Release `
110110
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" `
111111
-DCMAKE_PREFIX_PATH=$env:QT_ROOT_DIR `
112-
${{ matrix.qt_version == 'qt6' && '-DBUILD_WITH_QT6=true' || '' }}
113-
112+
${{ matrix.qt_version == 'qt5' && '-DBUILD_WITH_QT5=ON' || '' }}
114113
- name: Run CMake (Mac/Linux Only)
115114
if: runner.os != 'Windows'
116115
run: |
117116
cd ${{ github.workspace }}/work/build/${{ github.event.repository.name }}
118117
cmake -G Ninja ${{ github.workspace }} \
119118
-DCMAKE_BUILD_TYPE=Release \
120119
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
121-
${{ matrix.qt_version == 'qt6' && '-DBUILD_WITH_QT6=true' || '' }}
120+
${{ matrix.qt_version == 'qt5' && '-DBUILD_WITH_QT5=ON' || '' }}
122121
123122
- name: Build and Install
124123
run: |
@@ -162,7 +161,6 @@ jobs:
162161
cmake -S ${{ github.workspace }} -B build/qtkeychain \
163162
-DCMAKE_TOOLCHAIN_FILE=$QT_ROOT_DIR/lib/cmake/Qt6/qt.toolchain.cmake \
164163
-DCMAKE_BUILD_TYPE=Release \
165-
-DBUILD_WITH_QT6=ON \
166164
-DBUILD_TRANSLATIONS=OFF
167165
cmake --build build/qtkeychain
168166
cmake --install build/qtkeychain --prefix ${{ github.workspace }}/install
@@ -172,8 +170,7 @@ jobs:
172170
cmake -S ${{ github.workspace }}/TestAppExample -B build/testapp \
173171
-DCMAKE_TOOLCHAIN_FILE=$QT_ROOT_DIR/lib/cmake/Qt6/qt.toolchain.cmake \
174172
-DCMAKE_BUILD_TYPE=Release \
175-
-DQt6Keychain_DIR=${{ github.workspace }}/install/lib/cmake/Qt6Keychain \
176-
-DBUILD_WITH_QT6=ON
173+
-DQt6Keychain_DIR=${{ github.workspace }}/install/lib/cmake/Qt6Keychain
177174
cmake --build build/testapp
178175
179176
build-ios:
@@ -199,7 +196,6 @@ jobs:
199196
cmake -S ${{ github.workspace }} -B build/qtkeychain \
200197
-G Xcode \
201198
-DCMAKE_TOOLCHAIN_FILE=$QT_ROOT_DIR/lib/cmake/Qt6/qt.toolchain.cmake \
202-
-DBUILD_WITH_QT6=ON \
203199
-DBUILD_TRANSLATIONS=OFF \
204200
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=NO \
205201
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
@@ -212,7 +208,6 @@ jobs:
212208
-G Xcode \
213209
-DCMAKE_TOOLCHAIN_FILE=$QT_ROOT_DIR/lib/cmake/Qt6/qt.toolchain.cmake \
214210
-DQt6Keychain_DIR=${{ github.workspace }}/install/lib/cmake/Qt6Keychain \
215-
-DBUILD_WITH_QT6=ON \
216211
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=NO \
217212
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
218213
cmake --build build/testapp --config Release

CMakeLists.txt

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ set(QTKEYCHAIN_SOVERSION 1)
55

66
project(qtkeychain VERSION ${QTKEYCHAIN_VERSION} LANGUAGES CXX)
77

8-
if(BUILD_WITH_QT6)
9-
set(CMAKE_CXX_STANDARD 17) # qt6 requires a c++17 compiler
10-
else()
11-
set(CMAKE_CXX_STANDARD 11)
12-
endif()
13-
148
include(FindPkgConfig)
159

1610
###
@@ -36,7 +30,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Haiku)
3630
set(HAIKU 1)
3731
endif()
3832

39-
option(BUILD_WITH_QT6 "Build qtkeychain with Qt 6" OFF)
33+
option(BUILD_WITH_QT5 "Build qtkeychain with Qt 5 (default is Qt 6)" OFF)
4034
option(BUILD_TEST_APPLICATION "Build test application (CLI)" OFF)
4135
option(BUILD_QTQUICK_DEMO "Build QtQuick demo application" OFF)
4236
option(BUILD_TRANSLATIONS "Build translations" ON)
@@ -56,13 +50,18 @@ if (WIN32)
5650
endif()
5751
endif()
5852

59-
if( NOT BUILD_WITH_QT6 )
60-
find_package(Qt5 COMPONENTS Core REQUIRED)
53+
if(BUILD_WITH_QT5)
54+
set(QT_MAJOR_VERSION 5)
55+
set(CMAKE_CXX_STANDARD 11)
56+
else()
57+
set(QT_MAJOR_VERSION 6)
58+
set(CMAKE_CXX_STANDARD 17)
6159
endif()
6260

63-
if (Qt5Core_FOUND AND NOT BUILD_WITH_QT6)
64-
set(QTKEYCHAIN_VERSION_INFIX 5)
61+
find_package(Qt${QT_MAJOR_VERSION} COMPONENTS Core REQUIRED)
62+
set(QTKEYCHAIN_VERSION_INFIX ${QT_MAJOR_VERSION})
6563

64+
if (QT_MAJOR_VERSION EQUAL 5)
6665
if(ANDROID)
6766
if(Qt5Core_VERSION VERSION_LESS 5.7)
6867
find_package(Qt5 COMPONENTS Core REQUIRED Private)
@@ -100,10 +99,6 @@ if (Qt5Core_FOUND AND NOT BUILD_WITH_QT6)
10099
set(QTCORE_LIBRARIES ${Qt5Core_LIBRARIES})
101100
include_directories(${Qt5Core_INCLUDE_DIRS})
102101
else()
103-
find_package(Qt6 COMPONENTS Core REQUIRED)
104-
set(QTKEYCHAIN_VERSION_INFIX 6)
105-
106-
107102
if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU AND NOT EMSCRIPTEN)
108103
find_package(Qt6 COMPONENTS DBus REQUIRED)
109104
set(QTDBUS_LIBRARIES Qt6::DBus)
@@ -191,13 +186,8 @@ if(BUILD_TEST_APPLICATION)
191186
if(APPLE)
192187
list(APPEND testclient_LIBRARIES "-framework Cocoa")
193188

194-
if (BUILD_WITH_QT6)
195-
find_package(Qt6 COMPONENTS Gui REQUIRED)
196-
list(APPEND testclient_LIBRARIES Qt6::Gui)
197-
else()
198-
find_package(Qt5 COMPONENTS Gui REQUIRED)
199-
list(APPEND testclient_LIBRARIES Qt5::Gui)
200-
endif()
189+
find_package(Qt${QT_MAJOR_VERSION} COMPONENTS Gui REQUIRED)
190+
list(APPEND testclient_LIBRARIES Qt${QT_MAJOR_VERSION}::Gui)
201191

202192
endif()
203193
add_executable( testclient testclient.cpp )

TestAppExample/CMakeLists.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ set(CMAKE_AUTOUIC ON)
1414

1515
set(BUNDLE_IDENTIFIER "org.qtkeychain.TestAppExample")
1616

17-
option(BUILD_WITH_QT6 "Build qtkeychain with Qt 6" OFF)
18-
if (BUILD_WITH_QT6)
19-
set(QTx Qt6)
20-
else()
17+
option(BUILD_WITH_QT5 "Build qtkeychain with Qt 5 (default is Qt 6)" OFF)
18+
if (BUILD_WITH_QT5)
2119
set(QTx Qt5)
20+
else()
21+
set(QTx Qt6)
2222
endif()
2323

2424
if(DEFINED QTKEYCHAIN_TARGET_NAME)
@@ -30,10 +30,10 @@ else()
3030
if(EXISTS "${_qtkeychain_source_dir}/qtkeychain/keychain.h")
3131
add_subdirectory("${_qtkeychain_source_dir}" "${CMAKE_CURRENT_BINARY_DIR}/qtkeychain_build")
3232
# QTKEYCHAIN_TARGET_NAME is set inside the subdirectory scope, derive it here
33-
if(BUILD_WITH_QT6)
34-
set(KEYCHAIN_TARGET qt6keychain)
35-
else()
33+
if(BUILD_WITH_QT5)
3634
set(KEYCHAIN_TARGET qt5keychain)
35+
else()
36+
set(KEYCHAIN_TARGET qt6keychain)
3737
endif()
3838
else()
3939
# Fallback: find an already-installed QtKeychain
@@ -46,7 +46,7 @@ find_package(${QTx} COMPONENTS Core Network Quick Qml REQUIRED)
4646

4747
qt_add_resources(QT_RESOURCES qml.qrc)
4848

49-
if(BUILD_WITH_QT6)
49+
if(NOT BUILD_WITH_QT5)
5050
qt_add_executable(TestAppExample
5151
MANUAL_FINALIZATION
5252
keychainclass.h
@@ -72,7 +72,7 @@ set_target_properties(TestAppExample PROPERTIES
7272

7373
target_link_libraries(TestAppExample PRIVATE ${QTx}::Core ${QTx}::Network ${QTx}::Quick ${QTx}::Qml ${KEYCHAIN_TARGET})
7474

75-
if(BUILD_WITH_QT6)
75+
if(NOT BUILD_WITH_QT5)
7676
qt_import_qml_plugins(TestAppExample)
7777
qt_finalize_target(TestAppExample)
7878
endif()

autotest/CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
include(ECMAddTests)
22

3-
if (BUILD_WITH_QT6)
4-
find_package(Qt6 CONFIG COMPONENTS Core Test REQUIRED)
5-
else()
6-
find_package(Qt5 CONFIG COMPONENTS Core Test REQUIRED)
7-
endif()
3+
find_package(Qt${QT_MAJOR_VERSION} CONFIG COMPONENTS Core Test REQUIRED)
84

95
ecm_add_tests(basic.cpp LINK_LIBRARIES ${QTKEYCHAIN_TARGET_NAME} Qt${QT_MAJOR_VERSION}::Test)
106
set_property(TARGET basic PROPERTY AUTOMOC ON)

cmake/Modules/QtVersionOption.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ if (TARGET Qt5::Core)
2626
elseif (TARGET Qt6::Core)
2727
set(QT_MAJOR_VERSION 6)
2828
else()
29-
option(BUILD_WITH_QT6 "Build against Qt 6" OFF)
29+
option(BUILD_WITH_QT5 "Build against Qt 5 (default is Qt 6)" OFF)
3030

31-
if (BUILD_WITH_QT6)
32-
set(QT_MAJOR_VERSION 6)
33-
else()
31+
if (BUILD_WITH_QT5)
3432
set(QT_MAJOR_VERSION 5)
33+
else()
34+
set(QT_MAJOR_VERSION 6)
3535
endif()
3636
endif()

0 commit comments

Comments
 (0)