添加信号处理

This commit is contained in:
2025-10-08 11:08:03 +08:00
parent b8231b78ff
commit c575092c00
11 changed files with 402 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.24)
set(APP_NAME "zdwm")
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
add_compile_definitions(LOG_FILE="$ENV{HOME}/zdwm-log.txt")
@@ -18,7 +19,49 @@ project(${APP_NAME}
LANGUAGES C
)
add_executable(${APP_NAME} main.c)
add_executable(${APP_NAME} main.c utils.c buffer.c backtrace.c)
# use C23
set_property(TARGET ${APP_NAME} PROPERTY C_STANDARD 23)
find_package(PkgConfig REQUIRED)
pkg_check_modules(deps REQUIRED
glib-2.0
)
target_include_directories(${APP_NAME} SYSTEM
PRIVATE ${deps_INCLUDE_DIRS}
)
target_include_directories(${APP_NAME}
PRIVATE ${SOURCE_DIR}
PRIVATE ${BUILD_DIR}
)
target_link_libraries(${APP_NAME}
PRIVATE ${deps_LIBRARIES}
)
## 配置项
# Check for backtrace_symbols()
include(CheckSymbolExists)
check_symbol_exists(backtrace_symbols execinfo.h HAS_EXECINFO)
if(NOT HAS_EXECINFO)
find_library(LIB_EXECINFO execinfo)
if(LIB_EXECINFO)
set(HAS_EXECINFO TRUE)
target_link_libraries(${APP_NAME} ${LIB_EXECINFO})
endif()
endif()
if(HAS_EXECINFO)
message(STATUS "checking for execinfo -- found")
else()
message(STATUS "checking for execinfo -- not found")
endif()
configure_file("${SOURCE_DIR}/config.h.in"
"${BUILD_DIR}/config.h"
ESCAPE_QUOTES
@ONLY
)