Код: Выделить всё
####################
# Embed build time #
####################
find_package(Python3 REQUIRED COMPONENTS Interpreter)
set(TIMESTAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated_timestamp)
set(TIMESTAMP_CPP ${TIMESTAMP_DIR}/timestamp.cpp)
set(TIMESTAMP_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/generate_timestamp.py)
file(MAKE_DIRECTORY ${TIMESTAMP_DIR})
add_custom_target(generate_timestamp_files
COMMAND ${Python3_EXECUTABLE} ${TIMESTAMP_SCRIPT} ${TIMESTAMP_CPP}
DEPENDS ${TIMESTAMP_SCRIPT}
COMMENT "Generating timestamp source and header"
)
set_source_files_properties(
${TIMESTAMP_CPP}
PROPERTIES
GENERATED TRUE
)
add_library(timestamp_lib
${TIMESTAMP_CPP}
)
add_dependencies(timestamp_lib generate_timestamp_files) # HERE
target_include_directories(timestamp_lib
PUBLIC
include
)
target_link_libraries(main_target
timestamp_lib
)
Код: Выделить всё
add_dependencies( ...)Изменение в версии 3.9: генераторы Ninja используют более слабый порядок, чем другие генераторы, чтобы улучшить доступный параллелизм. Они только гарантируют, что пользовательские команды зависимостей будут завершены до начала компиляции исходных текстов; это гарантирует доступность сгенерированных источников.
Но разве этого недостаточно? Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/798 ... cies-gives
Мобильная версия