CMake: Прочитать номер сборки из файла, чтобы установить переменную

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

setup.h.in

#define build_number "@[email protected]";

Используя файл configure_file, можно заменить заполнители в .in файле, как указано выше, с помощью переменной CMake. Можно ли заставить CMake считывать число из BuildNumber.txt в переменную?

Ответ 1

Для этой цели вы можете использовать команду CMake file (STRINGS ...). Предполагая, что номер сборки находится в файле BuildNumber.txt в одной строке, следующая команда будет считывать его в переменную CMake BUILD_NUMBER:

file (STRINGS "BuildNumber.txt" BUILD_NUMBER)

Также см. ссылку ссылка на файл.

Ответ 2

Я не знаю вашу ОС, но я утверждаю, что вы используете Windows или Linux.

if (UNIX)
  set (show_contents_prog cat)
elseif (WIN32)
  set (show_contents_prog type)
endif (WIN32)

execute_process(COMMAND ${show_contents_prog} input.txt OUTPUT_VARIABLE file_contents)

Я думаю, что это может помочь.