[英]How to use CMake to generate C++ code when not using configure_file?
我的CMake脚本会在C ++代码中生成一些我想要的信息。 该信息是一些我希望用户能够看到的文本。
我知道我可以在C ++代码变量中定义类似@mySpecialVariable@
变量。 如果这些变量由CMake定义,则在使用configure_file
,将通过CMake定义mySpecialVariable
的值来修改源文件。
我的问题是我从来没有使用过configure_file
。 我的构建目录与源目录是分开的,但是源文件永远不会从源目录复制(即configure_file
)到构建目录中。
无论如何,不使用configure_file
可以执行此操作吗?
CMake 3.12具有一个名为add_compiler_definitions的新功能,该功能应适合您的需求。
最小示例:
CMakeLists.txt
cmake_minimum_required(VERSION 3.12)
project(cmake_text)
set(MyCMakeVar "MySpecialText")
add_compile_definitions(CMAKE_TEXT="${MyCMakeVar}")
add_executable(cmake_text main.cpp)
main.cpp
#include <iostream>
int main(int argc, char** argv)
{
#ifdef CMAKE_TEXT
std::cout << "Cmake defined following text: " << CMAKE_TEXT << std::endl;
#else
std::cout << "CMake did not define any text!" << std::endl;
#endif
return 0;
}
标准输出的输出将是:
CMake定义了以下文本:MySpecialText
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.