当尝试在config.h中定义项目版本变量以包含在源文件中时,CMake不会定义它们
CMakeLists.txt看起来像这样
cmake_minimum_required(VERSION 3.0)
project(podder VERSION 1.0 LANGUAGES CXX)
configure_file(config.h.in config.h ESCAPE_QUOTES)
config.h.in
#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H
#cmakedefine ${CMAKE_PROJECT_VERSION}
#endif
生成的config.h看起来像这样
#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H
/* #undef */
#endif
答案 0 :(得分:0)
你想要的是
#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H
#cmakedefine PROJECT_VERSION ${PROJECT_VERSION}
#endif
语法为#cmakedefine VAR ...
,其中VAR
是变量名(不包含$()
),表达式...
被求值,请参见configure_file()。如果未定义变量VAR
或其值为假,则将其替换为/* #undef VAR */
。