Создавайте файл 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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