Код: Выделить всё
# version A
find_package(Python3 REQUIRED COMPONENTS Interpreter)
set(TIMESTAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated_timestamp)
set(TIMESTAMP_H ${TIMESTAMP_DIR}/timestamp.h)
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 ALL
BYPRODUCTS ${TIMESTAMP_CPP} ${TIMESTAMP_H}
COMMAND ${Python3_EXECUTABLE} ${TIMESTAMP_SCRIPT} ${TIMESTAMP_H} ${TIMESTAMP_CPP}
DEPENDS ${TIMESTAMP_SCRIPT}
COMMENT "Generating timestamp source and header"
)
set_source_files_properties(
${TIMESTAMP_CPP}
${TIMESTAMP_H}
PROPERTIES
GENERATED TRUE
)
add_library(timestamp_lib
${TIMESTAMP_CPP}
)
add_dependencies(timestamp_lib generate_timestamp_files)
target_include_directories(timestamp_lib
INTERFACE
${TIMESTAMP_DIR}
)
target_link_libraries(
timestamp_lib
)
Код: Выделить всё
cc1plus: fatal error: /home/abertulli//build/generated_timestamp/timestamp.cpp: No such file or directory
compilation terminated.
Код: Выделить всё
# version B
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)
target_include_directories(timestamp_lib
PUBLIC
include
)
target_link_libraries(
timestamp_lib
)
Подробнее здесь: https://stackoverflow.com/questions/798 ... ed-build-r
Мобильная версия