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
26 lines
997 B
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}")
|