Skip to content

Commit 39eceea

Browse files
istophtextshell
authored andcommitted
Add qt6 support.
If you use qt=qt6 you need alos set: cpp_std=c++17
1 parent 351c8c9 commit 39eceea

File tree

3 files changed

+31
-12
lines changed

3 files changed

+31
-12
lines changed

meson.build

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: BSL-1.0
22

33
project('posixsignalmanager', ['cpp'],
4-
default_options : ['cpp_std=c++14'],
4+
default_options : ['cpp_std=c++17'],
55
version: '0.3')
66

77
macros = []
@@ -22,8 +22,26 @@ if not cxx.has_function('pipe2')
2222
macros += ['-DNO_PIPE2']
2323
endif
2424

25-
qt5 = import('qt5')
26-
qt5_dep = dependency('qt5', modules: 'Core')
25+
qt_version = get_option('qt')
26+
qt = import(qt_version)
27+
qt_dep = dependency(qt_version, modules: 'Core')
28+
29+
lib_name_base = 'posixsignalmanager'
30+
31+
if qt_version == 'qt5'
32+
lib_name_for_meson = lib_name_base
33+
pkg_filebase = 'PosixSignalManager'
34+
pkg_name = 'PosixSignalManager'
35+
pkg_description = 'Management of POSIX signals for Qt5 event loop'
36+
elif qt_version == 'qt6'
37+
lib_name_for_meson = lib_name_base + '-qt6'
38+
pkg_filebase = 'PosixSignalManagerQt6'
39+
pkg_name = 'PosixSignalManagerQt6'
40+
pkg_description = 'Management of POSIX signals for Qt6 event loop'
41+
else
42+
error('Unsupported qt option value: ' + qt_version + '. Must be "qt5" or "qt6".')
43+
endif
44+
2745

2846
main_vscript = 'posixsignalmanager.symver'
2947
if host_machine.system() == 'linux'
@@ -34,9 +52,9 @@ else
3452
endif
3553

3654

37-
posixsignalmanager_lib = library('posixsignalmanager', 'PosixSignalManager.cpp',
38-
qt5.preprocess(moc_headers: 'PosixSignalManager.h'),
39-
dependencies : [qt5_dep, librt], cpp_args: macros,
55+
posixsignalmanager_lib = library(lib_name_for_meson, 'PosixSignalManager.cpp',
56+
qt.preprocess(moc_headers: 'PosixSignalManager.h'),
57+
dependencies : [qt_dep, librt], cpp_args: macros,
4058
link_args : main_ld_vscript,
4159
link_depends : main_vscript,
4260
soversion: '0a',
@@ -45,15 +63,15 @@ posixsignalmanager_lib = library('posixsignalmanager', 'PosixSignalManager.cpp',
4563

4664
posixsignalmanager_dep = declare_dependency(link_with: posixsignalmanager_lib,
4765
include_directories: include_directories('.'),
48-
dependencies: [qt5_dep, librt])
66+
dependencies: [qt_dep, librt])
4967

5068
install_headers('PosixSignalManager.h')
5169

5270
import('pkgconfig').generate(
5371
posixsignalmanager_lib,
54-
description: 'management of posix signals for environments using the qt event loop',
55-
filebase: 'PosixSignalManager',
56-
name: 'PosixSignalManager',
72+
description: pkg_description,
73+
filebase: pkg_filebase,
74+
name: pkg_name,
5775
subdirs: ['.']
5876
)
5977

meson_options.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: BSL-1.0
22

3-
option('tests', type : 'boolean', value : true)
3+
option('qt', type : 'combo', choices : ['qt5', 'qt6'], value : 'qt5')
44
option('system-catch2', type : 'feature', value : 'disabled')
5+
option('tests', type : 'boolean', value : true)

tests/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ if meson.version().version_compare('>=0.62')
4545
endif
4646

4747
test('tests', executable('tests', 'tests.cpp', link_with: [testlib],
48-
dependencies: [posixsignalmanager_dep, qt5_dep, librt, catch2_dep, testdep_socket],
48+
dependencies: [posixsignalmanager_dep, qt_dep, librt, catch2_dep, testdep_socket],
4949
cpp_args: test_cpp_args + test_no_opts_cpp_args),
5050
kwargs: verbose_kwargs)

0 commit comments

Comments
 (0)