Создавайте файл cpp каждый раз с помощью cmakeC++

Программы на C++. Форум разработчиков
Anonymous
Создавайте файл cpp каждый раз с помощью cmake

Сообщение Anonymous »

Я хочу, чтобы файл, содержащий дату сборки, создавался каждый раз.
После некоторых исследований я попробовал много разных подходов, но не до конца их понимаю. Я думал, что следующий код должен работать, но это не так. Он записан в файле CMakeLists.txt, который является частью многих каскадных файлов CMakeLists.txt.

Код: Выделить всё

[...]
add_library(${PROJECT_NAME} STATIC
src/software_version.cpp [...]
)
[...]

set(VERSION_FILE "src/software_version.cpp")
add_custom_target(build_software_version ALL COMMAND ${CMAKE_COMMAND} -E touch ${VERSION_FILE})
#or
add_custom_command(TARGET ${PROJECT_NAME} PRE_BUILD  COMMAND ${CMAKE_COMMAND} -E touch ${VERSION_FILE})
Изменить:

Я использую предопределенную __ DATE__ в методе этого файла и обнаружил, что он не будет актуальным, если я не буду создавать файл каждый раз. Если я просто внесу небольшое изменение в файл, чтобы файл снова собирался, дата будет правильной. Я надеялся добиться этого с помощью команды touch.
Поэтому я ожидал увидеть в журнале сборки запись о том, что файл был построен. (Там каждый раз появляется еще один файл)

На этом этапе первая команда компилируется, но ничего не меняет. Второй выдает ошибку во время сборки.
[ошибка]: https://i.sstatic.net/W5Cle.png

Подробнее здесь: https://stackoverflow.com/questions/772 ... with-cmake

Вернуться в «C++»