При использовании cmake
мы хотим, чтобы наши дистрибутивные файлы содержали некоторую информацию о самой версии (например, тег git
или точку фиксации).Это так, что мы в основном можем определить только из установленного пакета, какой он релиз.
Другими словами, мы ищем что-то вроде вывода git show | head -1
:
commit 695ec2ceca0854...blahblahblah
Наши cmake
файлы довольно просты и состоят из:
add_executable(exename main.cpp functions.cpp functions.h)
Как настроить CMakeLists.txt
для генерации этой информации и , чтобы включить ее в пакет для проекта.
Это может быть встроено в исполняемый файл в виде файла с одним строковым объектом, например:
char *x = "XYZZY-commit 695ec2ceca0854...blahblahblah";
, чтобы мы могли запустить strings
в исполняемом файле для получения информации.
Это также может быть совершенно отдельный файл, такой как commitpoint.txt
, который упакован и поставляется вместе с исполняемым файлом.
Или, если у кого-то есть лучший способ сделать это, я 'Я открыт для предложений.
Что бы я предпочел избегать - это то, что требует ручного вмешательства при сборке, например, поддержки модуля с информацией, жестко запрограммированной в нем и сохраненной в git
сама.Я ищу что-то полностью автоматизированное.