CMake: чтение номера сборки из файла для установки переменной - PullRequest
14 голосов
/ 21 апреля 2011

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

setup.h.in

#define build_number "@BUILD_NUMBER@";

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

Ответы [ 2 ]

24 голосов
/ 21 апреля 2011

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

file (STRINGS "BuildNumber.txt" BUILD_NUMBER)

Также см. Справочник команд файла .

3 голосов
/ 21 апреля 2011

Я не знаю вашу ОС, но я предполагаю, что вы используете 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)

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

...