首先,我已经阅读了如何在C++源代码中读取CMake变量,我真的不知道它是否可以帮助我.
第二,我的问题.顶级CMakeLists.txt表示SET( MY_VAR /some/path )并在顶级source.cpp中我需要以某种方式实现std::string包含/some/path/to/files自然使用的MY_VAR值.
add_executable(myexe main.cpp)
if (MY_VAR)
target_compile_definitions(myexe PRIVATE MY_VAR=${MY_VAR})
endif()
Run Code Online (Sandbox Code Playgroud)
您可以使用该configure_file(filename output_file)命令.它用cmake变量的实际值替换类似${VARIABLE}或@VARIABLE@在文件中的内容filename,VARIABLE并将结果写入output_file.
所以,你可以写类似的东西
// in C++ code
std::string my_var = "@MY_VAR@";
# in CMakeLists.txt
configure_file(filename.h.in filename.h)
Run Code Online (Sandbox Code Playgroud)
另外,我认为在构建目录中的某个地方生成输出文件是个好主意(并且它包含添加到包含路径的目录).
| 归档时间: |
|
| 查看次数: |
7461 次 |
| 最近记录: |