cmake_minimum_required(VERSION 3.20)

# Linux-only. GTK4 Layer Shell and WebKitGTK are not built or stubbed on Windows.
project(nebula-shell LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK4 REQUIRED IMPORTED_TARGET gtk4)
pkg_check_modules(GTK4_LAYER_SHELL REQUIRED IMPORTED_TARGET gtk4-layer-shell-0)
pkg_check_modules(WEBKITGTK REQUIRED IMPORTED_TARGET webkitgtk-6.0)

add_executable(nebula-shell
    src/main.cpp
    src/ShellApplication.cpp
    src/Surface.cpp
    src/DesktopSurface.cpp
    src/TopBarSurface.cpp
    src/LauncherSurface.cpp
)

target_link_libraries(nebula-shell PRIVATE
    PkgConfig::GTK4
    PkgConfig::GTK4_LAYER_SHELL
    PkgConfig::WEBKITGTK
)

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
    target_compile_options(nebula-shell PRIVATE -Wall -Wextra)
endif()
