Skip to content

Commit

Permalink
Qt 6 and ECM support
Browse files Browse the repository at this point in the history
  • Loading branch information
plfiorini committed Dec 30, 2023
1 parent c9b5fd2 commit b96f12b
Show file tree
Hide file tree
Showing 285 changed files with 2,641 additions and 5,577 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# SPDX-FileCopyrightText: none
# SPDX-License-Identifier: CC0-1.0
build/
*.user
*.qmlc
*.jsc
97 changes: 59 additions & 38 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# SPDX-FileCopyrightText: 2022 Pier Luigi Fiorini <[email protected]>
#
# SPDX-FileCopyrightText: 2024 Pier Luigi Fiorini <[email protected]>
# SPDX-License-Identifier: BSD-3-Clause

cmake_minimum_required(VERSION 3.10.0)
cmake_minimum_required(VERSION 3.19)

project("Aurora"
VERSION "0.0.0"
Expand All @@ -11,28 +10,51 @@ project("Aurora"
LANGUAGES CXX C
)

## Only build on the appropriate platforms.
if(NOT (LINUX OR APPLE OR CMAKE_SYSTEM_NAME MATCHES "QNX"))
message(NOTICE "Skipping the build as the condition \"LINUX OR APPLE OR QNX\" is not met.")
return()
endif()

## ECM:
find_package(ECM 5.245.0 REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

## Installation directories:
include(KDEInstallDirs)

## Compiler settings:
set(KDE_SKIP_NULLPTR_WARNINGS_SETTINGS TRUE)
include(KDECompilerSettings NO_POLICY_SCOPE)

## Enable keywords such as emit:
# TODO: Replace keywords such as emit with Q_EMIT
remove_definitions(-DQT_NO_KEYWORDS)

## CMake settings:
include(KDECMakeSettings)

## QML module:
include(ECMQmlModule)

## Shared macros and functions:
if(NOT LIRI_LOCAL_ECM)
find_package(LiriCMakeShared "2.0.0" REQUIRED NO_MODULE)
find_package(LiriCMakeShared "2.0.99" REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH "${LCS_MODULE_PATH}")
endif()

## Add some paths to check for CMake modules:
list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_CURRENT_SOURCE_DIR}/cmake/3rdparty;${CMAKE_CURRENT_SOURCE_DIR}/cmake/3rdparty/kwin")

## Liri specific setup common for all modules:
include(LiriSetup)

## Only build on the appropriate platforms.
if(NOT (LINUX OR APPLE OR QNX))
message(NOTICE "Skipping the build as the condition \"LINUX OR APPLE OR QNX\" is not met.")
return()
endif()
list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

## Features:
include(features.cmake)
if(NOT LIRI_SUPERBUILD)
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)

## Disable use of C++ API deprecated in Qt 5.15
add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)

## QML import path:
if(NOT QML_IMPORT_PATH)
set(QML_IMPORT_PATH ${CMAKE_SOURCE_DIR}/bin CACHE STRING "" FORCE)
endif()

## Add subdirectories:
Expand Down Expand Up @@ -61,14 +83,13 @@ if(FEATURE_aurora_libhybris_egl_server_buffer)
add_subdirectory(src/plugins/hardwareintegration/compositor/libhybris-egl-server)
endif()
if(FEATURE_aurora_shm_emulation_server)
add_subdirectory(src/plugins/hardwareintegration/compositor/shm-emulation-server)
# add_subdirectory(src/plugins/hardwareintegration/compositor/shm-emulation-server)
endif()
if(FEATURE_aurora_vulkan_server_buffer)
add_subdirectory(src/plugins/hardwareintegration/compositor/vulkan-server)
endif()
if(FEATURE_aurora_compositor_quick)
if(TARGET AuroraCompositor)
add_subdirectory(src/imports/compositor)
add_subdirectory(src/imports/compositor-extensions/ext)
add_subdirectory(src/imports/compositor-extensions/iviapplication)
add_subdirectory(src/imports/compositor-extensions/liri)
Expand All @@ -84,34 +105,34 @@ if(FEATURE_aurora_compositor_quick)
endif()
if(FEATURE_aurora_qpa)
add_subdirectory(src/platformheaders)
add_subdirectory(src/platformsupport/logind)
add_subdirectory(src/platformsupport/udev)
add_subdirectory(src/platformsupport/libinput)
add_subdirectory(src/platformsupport/edid)
add_subdirectory(src/platformsupport/kmsconvenience)
add_subdirectory(src/plugins/platforms/eglfs)
add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_kms)
#add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice)
add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support)
if(FEATURE_aurora_qpa_x11)
add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_x11)
endif()
# add_subdirectory(src/platformsupport/logind)
# add_subdirectory(src/platformsupport/udev)
# add_subdirectory(src/platformsupport/libinput)
# add_subdirectory(src/platformsupport/edid)
# add_subdirectory(src/platformsupport/kmsconvenience)
# add_subdirectory(src/plugins/platforms/eglfs)
# add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_kms)
# #add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice)
# add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support)
# if(FEATURE_aurora_qpa_x11)
# add_subdirectory(src/plugins/platforms/eglfs/deviceintegration/eglfs_x11)
# endif()
endif()
if(BUILD_TESTING)
if(TARGET AuroraCompositor)
add_subdirectory(tests/auto/compositor/compositor)
add_subdirectory(tests/manual/qmlclient)
add_subdirectory(tests/manual/qml-compositor)
add_subdirectory(tests/manual/scaling-compositor)
add_subdirectory(tests/manual/subsurface)
add_subdirectory(tests/auto/compositor/compositor)
add_subdirectory(tests/manual/qmlclient)
add_subdirectory(tests/manual/qml-compositor)
add_subdirectory(tests/manual/scaling-compositor)
add_subdirectory(tests/manual/subsurface)
endif()
if(TARGET Liri::AuroraLogind)
add_subdirectory(tests/auto/logind)
# add_subdirectory(tests/auto/logind)
endif()
if(TARGET Liri::AuroraUdev)
add_subdirectory(tests/auto/udev)
# add_subdirectory(tests/auto/udev)
endif()
if(TARGET Liri::AuroraLibInput)
add_subdirectory(tests/manual/libinput)
# add_subdirectory(tests/manual/libinput)
endif()
endif()
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@ Framework to develop QtQuick-based Wayland compositors.

## Dependencies

Qt >= 5.15.0 with at least the following modules is required:
Qt >= 6.6.0 with at least the following modules is required:

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

The following modules and their dependencies are required:

* [cmake](https://gitlab.kitware.com/cmake/cmake) >= 3.10.0
* [cmake-shared](https://github.com/lirios/cmake-shared.git) >= 2.0.0
* [cmake](https://gitlab.kitware.com/cmake/cmake) >= 3.19.0
* [extra-cmake-modules](https://invent.kde.org/frameworks/extra-cmake-modules) >= 5.245.0
* [cmake-shared](https://github.com/lirios/cmake-shared.git) >= 2.0.99

## Installation

Expand Down
Loading

0 comments on commit b96f12b

Please sign in to comment.