You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
997 B

4 months ago
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}")