Ответ 1
Самый простой способ сделать это - передать LIBINTERFACE_VERSION в качестве определения с помощью add_definition:
add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )
Однако вы также можете создать шаблон "header-file" и использовать configure_file. Таким образом, CMake заменит ваш @LIBINTERFACE_VERSION @. Это также немного более расширяемо, потому что вы можете легко добавить дополнительные определения или переменные здесь...
например. создайте файл "version_config.h.in", выглядящий следующим образом:
#ifndef VERSION_CONFIG_H
#define VERSION_CONFIG_H
// define your version_libinterface
#define VERSION_LIBINTERFACE @[email protected]
// alternatively you could add your global method getLibInterfaceVersion here
unsigned int getLibInterfaceVersion()
{
return @[email protected];
}
#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.