Skip to content

Commit 3a8f9de

Browse files
committed
Update to Qt 6 and ECM
1 parent fdc7c20 commit 3a8f9de

File tree

5 files changed

+110
-88
lines changed

5 files changed

+110
-88
lines changed

CMakeLists.txt

+46-25
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,63 @@
1-
cmake_minimum_required(VERSION 3.10.0)
1+
cmake_minimum_required(VERSION 3.19)
22

33
project("PulseAudio"
44
VERSION "0.9.0"
55
DESCRIPTION "PulseAudio support for Liri"
66
LANGUAGES CXX C
77
)
88

9-
## Shared macros and functions:
10-
if(NOT LIRI_LOCAL_ECM)
11-
find_package(LiriCMakeShared "2.0.0" REQUIRED NO_MODULE)
12-
list(APPEND CMAKE_MODULE_PATH "${LCS_MODULE_PATH}")
9+
## Only build on the appropriate platforms.
10+
if(NOT (UNIX OR NOT CMAKE_SYSTEM_NAME MATCHES "Android"))
11+
message(NOTICE "Skipping the build as the condition \"UNIX OR NOT Android\" is not met.")
12+
return()
1313
endif()
1414

15-
## Add some paths to check for CMake modules:
16-
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
15+
## ECM:
16+
find_package(ECM 5.245.0 REQUIRED NO_MODULE)
17+
list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
1718

18-
## Set minimum versions required:
19-
set(QT_MIN_VERSION "5.15.0")
19+
## Installation directories:
20+
include(KDEInstallDirs)
2021

21-
## Liri specific setup common for all modules:
22-
include(LiriSetup)
22+
## Compiler settings:
23+
set(KDE_SKIP_NULLPTR_WARNINGS_SETTINGS TRUE)
24+
include(KDECompilerSettings NO_POLICY_SCOPE)
2325

24-
## Only build on the appropriate platforms.
25-
if(NOT UNIX OR ANDROID)
26-
message(NOTICE "Skipping the build as the condition \"UNIX OR ANDROID\" is not met.")
27-
return()
26+
## Enable keywords such as emit:
27+
# TODO: Replace keywords such as emit with Q_EMIT
28+
remove_definitions(-DQT_NO_KEYWORDS)
29+
30+
## CMake settings:
31+
include(KDECMakeSettings)
32+
33+
## QML module:
34+
include(ECMQmlModule)
35+
36+
## ECM:
37+
include(ECMQtDeclareLoggingCategory)
38+
39+
## Disable use of C++ API deprecated in Qt 5.15
40+
add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)
41+
42+
## QML import path:
43+
if(NOT QML_IMPORT_PATH)
44+
set(QML_IMPORT_PATH ${CMAKE_SOURCE_DIR}/bin CACHE STRING "" FORCE)
2845
endif()
2946

30-
## Find Qt 5:
31-
find_package(Qt5 "${QT_MIN_VERSION}"
32-
CONFIG REQUIRED
33-
COMPONENTS
34-
Core
35-
Gui
36-
Qml
37-
Quick
38-
LinguistTools
39-
)
47+
## Shared macros and functions:
48+
#if(NOT LIRI_LOCAL_ECM)
49+
#find_package(LiriCMakeShared "2.0.0" REQUIRED NO_MODULE)
50+
#list(APPEND CMAKE_MODULE_PATH "${LCS_MODULE_PATH}")
51+
#endif()
52+
53+
## Add some paths to check for CMake modules:
54+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
55+
56+
## Liri specific setup common for all modules:
57+
#include(LiriSetup)
58+
59+
## Features:
60+
include(features.cmake)
4061

4162
## Add subdirectories:
4263
add_subdirectory(src/imports/pulseaudio)

README.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@ This repository contains:
1818

1919
## Dependencies
2020

21-
Qt >= 5.15.0 with at least the following modules is required:
21+
Qt >= 6.6.0 with at least the following modules is required:
2222

2323
* [qtbase](http://code.qt.io/cgit/qt/qtbase.git)
2424
* [qtdeclarative](http://code.qt.io/cgit/qt/qtdeclarative.git)
2525

2626
The following modules and their dependencies are required:
2727

28-
* [cmake](https://gitlab.kitware.com/cmake/cmake) >= 3.10.0
29-
* [cmake-shared](https://github.com/lirios/cmake-shared.git) >= 2.0.0
30-
* [fluid](https://github.com/lirios/fluid) >= 1.0.0
28+
* [cmake](https://gitlab.kitware.com/cmake/cmake) >= 3.19.0
29+
* [liri-settings](https://github.com/lirios/settings)
30+
* [liri-shell](https://github.com/lirios/shell)
31+
* [fluid](https://github.com/lirios/fluid) >= 2.0.0
3132
* [pulseadio](https://cgit.freedesktop.org/pulseaudio/pulseaudio/) >= 5.0.0
3233

3334
## Installation

features.cmake

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# SPDX-FileCopyrightText: 2024 Pier Luigi Fiorini <[email protected]>
2+
# SPDX-License-Identifier: BSD-3-Clause
3+
4+
## Find Qt:
5+
find_package(Qt6 "6.6.0"
6+
REQUIRED
7+
COMPONENTS
8+
Core
9+
Gui
10+
Qml
11+
Quick
12+
LinguistTools
13+
)
14+
15+
## Find pulse:
16+
find_package(Libpulse REQUIRED)
17+
18+
## Features summary:
19+
if(NOT LIRI_SUPERBUILD)
20+
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
21+
endif()

src/imports/pulseaudio/CMakeLists.txt

+38-59
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,43 @@
1-
find_package(Libpulse REQUIRED)
1+
ecm_add_qml_module(PulseAudioQmlPlugin
2+
URI Liri.PulseAudio
3+
VERSION 1.0
4+
CLASS_NAME PulseAudioPlugin
5+
NO_GENERATE_PLUGIN_SOURCE
6+
DEPENDENCIES QtQuick
7+
)
28

3-
liri_add_qml_plugin(PulseAudioQmlPlugin
4-
MODULE_PATH
5-
"Liri/PulseAudio"
6-
VERSION
7-
"1.0"
8-
OUTPUT_NAME
9-
"pulseaudioplugin"
10-
SOURCES
9+
target_sources(PulseAudioQmlPlugin
10+
PRIVATE
11+
qpulseaudio/card.cpp qpulseaudio/card.h
12+
qpulseaudio/client.cpp qpulseaudio/client.h
13+
qpulseaudio/context.cpp qpulseaudio/context.h
14+
qpulseaudio/debug.cpp qpulseaudio/debug.h
15+
qpulseaudio/device.cpp qpulseaudio/device.h
16+
qpulseaudio/maps.cpp qpulseaudio/maps.h
17+
qpulseaudio/operation.cpp qpulseaudio/operation.h
18+
qpulseaudio/port.cpp qpulseaudio/port.h
19+
qpulseaudio/profile.cpp qpulseaudio/profile.h
20+
qpulseaudio/pulseaudio.cpp qpulseaudio/pulseaudio.h
21+
qpulseaudio/pulseobject.cpp qpulseaudio/pulseobject.h
22+
qpulseaudio/ref.cpp qpulseaudio/ref.h
23+
qpulseaudio/server.cpp qpulseaudio/server.h
24+
qpulseaudio/sink.cpp qpulseaudio/sink.h
25+
qpulseaudio/sinkinput.cpp qpulseaudio/sinkinput.h
26+
qpulseaudio/source.cpp qpulseaudio/source.h
27+
qpulseaudio/sourceoutput.cpp qpulseaudio/sourceoutput.h
28+
qpulseaudio/stream.cpp qpulseaudio/stream.h
29+
qpulseaudio/streamrestore.cpp qpulseaudio/streamrestore.h
30+
qpulseaudio/volumeobject.cpp qpulseaudio/volumeobject.h
1131
plugin.cpp
12-
qpulseaudio/card.cpp
13-
qpulseaudio/card.h
14-
qpulseaudio/client.cpp
15-
qpulseaudio/client.h
16-
qpulseaudio/context.cpp
17-
qpulseaudio/context.h
18-
qpulseaudio/debug.cpp
19-
qpulseaudio/debug.h
20-
qpulseaudio/device.cpp
21-
qpulseaudio/device.h
22-
qpulseaudio/maps.cpp
23-
qpulseaudio/maps.h
24-
qpulseaudio/operation.cpp
25-
qpulseaudio/operation.h
26-
qpulseaudio/port.cpp
27-
qpulseaudio/port.h
28-
qpulseaudio/profile.cpp
29-
qpulseaudio/profile.h
30-
qpulseaudio/pulseaudio.cpp
31-
qpulseaudio/pulseaudio.h
32-
qpulseaudio/pulseobject.cpp
33-
qpulseaudio/pulseobject.h
34-
qpulseaudio/ref.cpp
35-
qpulseaudio/ref.h
36-
qpulseaudio/server.cpp
37-
qpulseaudio/server.h
38-
qpulseaudio/sink.cpp
39-
qpulseaudio/sink.h
40-
qpulseaudio/sinkinput.cpp
41-
qpulseaudio/sinkinput.h
42-
qpulseaudio/source.cpp
43-
qpulseaudio/source.h
44-
qpulseaudio/sourceoutput.cpp
45-
qpulseaudio/sourceoutput.h
46-
qpulseaudio/stream.cpp
47-
qpulseaudio/stream.h
48-
qpulseaudio/streamrestore.cpp
49-
qpulseaudio/streamrestore.h
50-
qpulseaudio/volumeobject.cpp
51-
qpulseaudio/volumeobject.h
52-
INCLUDE_DIRECTORIES
53-
"${CMAKE_CURRENT_SOURCE_DIR}/qpulseaudio"
54-
QML_FILES
32+
)
33+
34+
ecm_target_qml_sources(PulseAudioQmlPlugin
35+
SOURCES
5536
VolumeControl.qml
56-
qmldir
57-
#DEFINES
58-
#QT_NO_CAST_FROM_ASCII
59-
#QT_NO_FOREACH
60-
LIBRARIES
61-
PkgConfig::Libpulse
6237
)
6338

64-
liri_finalize_qml_plugin(PulseAudioQmlPlugin)
39+
target_include_directories(PulseAudioQmlPlugin PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/qpulseaudio")
40+
41+
target_link_libraries(PulseAudioQmlPlugin PRIVATE Qt6::Qml PkgConfig::Libpulse)
42+
43+
ecm_finalize_qml_module(PulseAudioQmlPlugin)

src/imports/pulseaudio/plugins.qmltypes

Whitespace-only changes.

0 commit comments

Comments
 (0)