66 lines
1.3 KiB
CMake
66 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.24)
|
|
|
|
set(APP_NAME "zswm")
|
|
set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
# generate compile_commands.json for clangd
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# compile flags
|
|
add_compile_options(-g)
|
|
add_compile_options(-Wall)
|
|
|
|
project(${APP_NAME}
|
|
VERSION 0.0.1
|
|
LANGUAGES C
|
|
)
|
|
|
|
add_executable(${APP_NAME} main.c utils.c)
|
|
|
|
# use C17
|
|
set_property(TARGET ${APP_NAME} PROPERTY C_STANDARD 17)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
pkg_check_modules(GLIB REQUIRED glib-2.0)
|
|
pkg_check_modules(XCB REQUIRED
|
|
xcb
|
|
xcb-cursor
|
|
xcb-ewmh
|
|
xcb-icccm
|
|
xcb-image
|
|
xcb-keysyms
|
|
xcb-util
|
|
xcb-xfixes
|
|
xcb-xinerama
|
|
xcb-xrm
|
|
)
|
|
pkg_check_modules(RENDERER REQUIRED cairo pango pangocairo imlib2)
|
|
pkg_check_modules(CAIRO_XCB REQUIRED cairo-xcb)
|
|
|
|
add_subdirectory(xcb)
|
|
add_subdirectory(renderer)
|
|
|
|
configure_file(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/app.h.in"
|
|
"${CMAKE_BINARY_DIR}/app.h"
|
|
@ONLY
|
|
)
|
|
|
|
target_include_directories(${APP_NAME} SYSTEM
|
|
PRIVATE ${GLIB_INCLUDE_DIRS}
|
|
PRIVATE ${CAIRO_XCB_INCLUDE_DIRS}
|
|
)
|
|
target_include_directories(${APP_NAME}
|
|
PRIVATE "${SOURCE_DIR}/include"
|
|
PRIVATE "${SOURCE_DIR}"
|
|
PRIVATE ${CMAKE_BINARY_DIR}
|
|
)
|
|
|
|
target_link_libraries(${APP_NAME}
|
|
PRIVATE ${GLIB_LIBRARIES}
|
|
PRIVATE ${CAIRO_XCB_LIBRARIES}
|
|
PRIVATE ${LIB_XCB_NAME}
|
|
PRIVATE ${LIB_RENDERER_NAME}
|
|
)
|