CMakeLists.txt
1460 bytes
1cmake_minimum_required(VERSION 3.19)
2project(Hy3 VERSION "0.1")
3set(CMAKE_CXX_STANDARD 23)
4add_compile_definitions(WLR_USE_UNSTABLE)
5add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith)
6
7# nix workaround
8if(CMAKE_EXPORT_COMPILE_COMMANDS)
9 set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
10 ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
11endif()
12
13find_package(PkgConfig REQUIRED)
14pkg_check_modules(DEPS REQUIRED hyprland pixman-1 libdrm pango pangocairo libinput wayland-client xkbcommon)
15
16add_library(hy3 SHARED
17 src/main.cpp
18 src/dispatchers.cpp
19 src/Hy3Layout.cpp
20 src/Hy3Node.cpp
21 src/TabGroup.cpp
22 src/shaders.cpp
23 src/render.cpp
24)
25
26configure_file(src/tab.vert ${CMAKE_CURRENT_BINARY_DIR}/src/tab.vert COPYONLY)
27file(READ ${CMAKE_CURRENT_BINARY_DIR}/src/tab.vert SHADER_TAB_VERT)
28
29configure_file(src/tab.frag ${CMAKE_CURRENT_BINARY_DIR}/src/tab.frag COPYONLY)
30file(READ ${CMAKE_CURRENT_BINARY_DIR}/src/tab.frag SHADER_TAB_FRAG)
31
32configure_file(src/shader_content.hpp.in src/shader_content.hpp @ONLY)
33target_include_directories(hy3 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
34
35option(HY3_NO_VERSION_CHECK "Disable hyprland version check" FALSE)
36
37if (HY3_NO_VERSION_CHECK)
38 target_compile_definitions(hy3 PRIVATE -DHY3_NO_VERSION_CHECK=TRUE)
39endif()
40
41target_include_directories(hy3 PRIVATE ${DEPS_INCLUDE_DIRS})
42
43install(TARGETS hy3 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})