2024-01-25 12:33:02 +00:00
|
|
|
cmake_minimum_required(VERSION 3.20)
|
2024-02-12 10:16:22 +00:00
|
|
|
project(quickshell VERSION "0.0.1")
|
2024-01-25 12:33:02 +00:00
|
|
|
|
|
|
|
set(QT_MIN_VERSION "6.6.0")
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
2024-02-05 01:25:27 +00:00
|
|
|
option(LAYERSHELL "Enable wayland layershell support" ON)
|
|
|
|
|
2024-01-25 12:33:02 +00:00
|
|
|
add_compile_options(-Wall -Wextra)
|
|
|
|
|
|
|
|
# nix workaround
|
|
|
|
if (CMAKE_EXPORT_COMPILE_COMMANDS)
|
|
|
|
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (NOT CMAKE_BUILD_TYPE)
|
|
|
|
message(STATUS "CMAKE_BUILD_TYPE unset, defaulting to Debug.")
|
|
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
|
|
endif()
|
|
|
|
|
2024-02-05 07:03:44 +00:00
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Gui Qml Quick QuickControls2)
|
2024-02-05 01:25:27 +00:00
|
|
|
|
|
|
|
if (LAYERSHELL)
|
|
|
|
find_package(LayerShellQt REQUIRED)
|
|
|
|
endif()
|
2024-01-25 12:33:02 +00:00
|
|
|
|
|
|
|
qt_standard_project_setup(REQUIRES 6.6)
|
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
qt_add_executable(quickshell
|
2024-01-25 12:33:02 +00:00
|
|
|
src/cpp/main.cpp
|
|
|
|
src/cpp/shell.cpp
|
2024-01-30 11:32:21 +00:00
|
|
|
src/cpp/variants.cpp
|
2024-02-01 01:43:18 +00:00
|
|
|
src/cpp/rootwrapper.cpp
|
2024-02-01 09:29:45 +00:00
|
|
|
src/cpp/proxywindow.cpp
|
2024-02-16 14:38:20 +00:00
|
|
|
src/cpp/reload.cpp
|
2024-02-01 09:29:45 +00:00
|
|
|
src/cpp/rootwrapper.cpp
|
2024-02-04 12:58:58 +00:00
|
|
|
src/cpp/qmlglobal.cpp
|
|
|
|
src/cpp/qmlscreen.cpp
|
2024-02-05 07:00:59 +00:00
|
|
|
src/cpp/watcher.cpp
|
2024-02-13 14:11:00 +00:00
|
|
|
src/cpp/region.cpp
|
2024-02-17 12:24:03 +00:00
|
|
|
src/cpp/persistentprops.cpp
|
2024-02-19 08:36:51 +00:00
|
|
|
src/cpp/shellwindow.cpp
|
2024-01-25 12:33:02 +00:00
|
|
|
)
|
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
qt_add_qml_module(quickshell URI QuickShell)
|
2024-01-25 12:33:02 +00:00
|
|
|
|
|
|
|
# qml type registration requires this
|
2024-02-12 10:16:22 +00:00
|
|
|
target_include_directories(quickshell PRIVATE src/cpp)
|
2024-01-25 12:33:02 +00:00
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
target_link_libraries(quickshell PRIVATE Qt6::Gui Qt6::Qml Qt6::Quick Qt6::QuickControls2)
|
2024-02-05 01:25:27 +00:00
|
|
|
|
|
|
|
if (LAYERSHELL)
|
2024-02-12 10:16:22 +00:00
|
|
|
target_link_libraries(quickshell PRIVATE LayerShellQtInterface)
|
|
|
|
target_compile_definitions(quickshell PRIVATE CONF_LAYERSHELL)
|
2024-02-05 01:25:27 +00:00
|
|
|
|
2024-02-12 10:16:22 +00:00
|
|
|
target_sources(quickshell PRIVATE src/cpp/layershell.cpp)
|
2024-02-05 01:25:27 +00:00
|
|
|
endif()
|