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} )