cmake_minimum_required(VERSION 3.20) if(NOT TARGET Qt6::Qml) project(NebulaWindows LANGUAGES CXX) find_package(Qt6 6.4 REQUIRED COMPONENTS Core Gui Qml Network) qt_standard_project_setup(REQUIRES 6.4) endif() if(NOT TARGET Qt6::Network) find_package(Qt6 6.4 REQUIRED COMPONENTS Network) endif() if(NOT TARGET NebulaApplications) add_subdirectory( "${CMAKE_CURRENT_SOURCE_DIR}/../applications" "${CMAKE_CURRENT_BINARY_DIR}/nebula-applications" ) endif() qt_add_library(NebulaWindows STATIC) qt_add_qml_module(NebulaWindows URI Nebula.Windows VERSION 1.0 RESOURCE_PREFIX /qt/qml SOURCES WindowTypes.hpp WindowBackend.hpp WindowModel.hpp WindowModel.cpp WorkspaceModel.hpp WorkspaceModel.cpp WindowService.hpp WindowService.cpp backends/sway/SwayIpcClient.hpp backends/sway/SwayIpcClient.cpp backends/sway/SwayWindowBackend.hpp backends/sway/SwayWindowBackend.cpp ) target_include_directories(NebulaWindows PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/backends/sway" ) target_link_libraries(NebulaWindows PUBLIC Qt6::Core Qt6::Gui Qt6::Qml Qt6::Network NebulaApplications ) set_target_properties(NebulaWindows PROPERTIES AUTOMOC ON ) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") target_compile_options(NebulaWindows PRIVATE -Wall -Wextra) endif()