cmake_minimum_required(VERSION 3.10) get_filename_component(TARGET_NAME "${CMAKE_CURRENT_SOURCE_DIR}" NAME) set(COMMON_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt") if(EXISTS ${COMMON_CMAKE_PATH}) include(${COMMON_CMAKE_PATH}) else() message(FATAL_ERROR "Cannot find common build logic at ${COMMON_CMAKE_PATH}") endif() # 每次构建重新生成 build_time.h(custom target 永远过期), # 保证 common.c 因头文件内容/时间变化而重新编译,Rd_GetBuildTime() 拿到最新时间。 set(BUILD_TIME_HEADER "${CMAKE_CURRENT_BINARY_DIR}/build_time.h") add_custom_target(GenBuildTime COMMAND ${CMAKE_COMMAND} "-DOUTPUT=${BUILD_TIME_HEADER}" -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/gen_build_time.cmake" BYPRODUCTS "${BUILD_TIME_HEADER}" COMMENT "[${TARGET_NAME}] Generating build_time.h" VERBATIM ) add_dependencies(${TARGET_NAME} GenBuildTime) target_include_directories(${TARGET_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")