CMake没有定义变量

时间:2019-05-10 19:54:56

标签: c++ cmake

当尝试在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

1 个答案:

答案 0 :(得分:0)

你想要的是

#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H

#cmakedefine PROJECT_VERSION ${PROJECT_VERSION}

#endif

语法为#cmakedefine VAR ...,其中VAR是变量名(不包含$()),表达式...被求值,请参见configure_file()。如果未定义变量VAR或其值为假,则将其替换为/* #undef VAR */