gpt4 book ai didi

c++ - 不使用configure_file时如何使用CMake生成C++代码?

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:03 24 4
gpt4 key购买 nike

我的 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)

主要.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;
}

std out 的输出将是:

Cmake defined following text: MySpecialText

关于c++ - 不使用configure_file时如何使用CMake生成C++代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52596713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com