[英]How to get CMake executable name in C++ preprocessor definition
我的CMake文件中有两个可执行文件定义
add_executable(ProjectFoo ...)
add_executable(ProjectFoo_UnitTests ...)
有没有办法在C ++代码中获取可执行文件的名称(ProjectFoo或ProjectFoo_UnitTests),如下所示? 语法可能不正确,但我希望它可以阐明意图。
#if executable_name == ProjectFoo
...
如果您只想在运行时知道正在运行的可执行文件是否是单元测试配置,则将专用的预处理器定义传递给您的单元测试可执行文件:
target_compile_definitions(ProjectFoo_UnitTests IS_UNIT_TEST)
并在您的C ++代码中检查以下定义:
#if defined (IS_UNIT_TEST)
# include "some_mock.hpp"
#endif
您可以使用自己的宏定义“运送”每个可执行文件。 您可以在该宏中存储可执行文件的名称:
target_compile_definitions(ProjectFoo executable_name=ProjectFoo)
target_compile_definitions(ProjectFoo_UnitTests executable_name=ProjectFoo_UnitTests)
在代码里面, executable_name
可用于提取可执行文件的名称:
#if executable_name==ProjectFoo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.