Самый простой способ сделать это - передать LIBINTERFACE_VERSION как определение с помощью add_definition :
add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )
Однако вы также можете создать «шаблон файла заголовка» и использовать файл_конфигурации . Таким образом, CMake заменит ваш @ LIBINTERFACE_VERSION @. Это также немного более расширяемо, потому что вы можете легко добавить дополнительные определения или переменные здесь ...
например. создайте файл "version_config.h.in", похожий на этот:
#ifndef VERSION_CONFIG_H
#define VERSION_CONFIG_H
// define your version_libinterface
#define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@
// alternatively you could add your global method getLibInterfaceVersion here
unsigned int getLibInterfaceVersion()
{
return @LIBINTERFACE_VERSION@;
}
#endif // VERSION_CONFIG_H
Затем добавьте строку configure_file в ваш файл cmakelists.txt:
configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h )
include_directories( ${CMAKE_BINARY_DIR}/generated/ ) # Make sure it can be included...
И, конечно же, убедитесь, что в ваши исходные файлы включен правильный version_config.h.