Files
zswm/src/CMakeLists.txt

82 lines
2.0 KiB
CMake

cmake_minimum_required(VERSION 3.24)
set(APP_NAME "zswm")
set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
add_compile_definitions(LOG_FILE="$ENV{HOME}/zswm-log.txt")
# add_compile_definitions(RELEASE)
# generate compile_commands.json for clangd
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# compile flags
add_compile_options(-g)
add_compile_options(-Wall)
# add_link_options(-fsanitize=address)
project(${APP_NAME}
VERSION 0.0.1
LANGUAGES C
)
add_executable(${APP_NAME} main.c utils.c layout.c status.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)
pkg_check_modules(PULSE REQUIRED libpulse-mainloop-glib)
add_subdirectory(xcb)
add_subdirectory(renderer)
# status icons(all from https://remixicon.com/)
set(NET_UP_ICON "${SOURCE_DIR}/resources/icons/corner-right-up-line.png")
set(NET_DOWN_ICON "${SOURCE_DIR}/resources/icons/corner-left-down-line.png")
set(SPEAKER_ICON "${SOURCE_DIR}/resources/icons/volume-up-fill.png")
set(MEM_ICON "${SOURCE_DIR}/resources/icons/ram-line.png")
set(CPU_ICON "${SOURCE_DIR}/resources/icons/cpu-line.png")
set(CLOCK_ICON "${SOURCE_DIR}/resources/icons/time-line.png")
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}
PRIVATE ${PULSE_INCLUDE_DIRS}
)
target_include_directories(${APP_NAME}
PRIVATE "${SOURCE_DIR}/include"
PRIVATE "${SOURCE_DIR}"
PRIVATE ${CMAKE_BINARY_DIR}
)
target_link_libraries(${APP_NAME}
PRIVATE m
PRIVATE ${GLIB_LIBRARIES}
PRIVATE ${CAIRO_XCB_LIBRARIES}
PRIVATE ${PULSE_LIBRARIES}
PRIVATE ${LIB_XCB_NAME}
PRIVATE ${LIB_RENDERER_NAME}
)