如何检查是否在CMakeLists.txt文件中定义了某些内容
How to check if something has been defined in the CMakeLists.txt file
我在CMakeLists文件中有这样的内容:
set(CMAKE_CXX_FLAGS "-g -Wextra -DFLAG")
之后的在相同的CMakeLists.txt文件中,我需要检查FLAG
是否已定义。有可能这样做吗?
IF(FLAG)
target_link_libraries(${PRODUCT} ${LIBS1})
ELSE()
target_link_libraries(${PRODUCT} ${LIBS2})
ENDIF()
我还将检查FLAG
是否已在我的c++代码中定义。如果定义了,我将使用LIBS1
中的代码,否则我将使用LIBS2
库集中定义的代码。
#ifdef FLAG
// some code that uses LIBS1 libraries
#else
// some code that uses LIBS2 libraries
#endif
我不知道直接的方法,但你可以使用字符串匹配来获得标志:
STRING(REGEX MATCH "FLAG" result ${CMAKE_CXX_FLAGS})
IF(${result} MATCHES "FLAG"))
#Add your code
ENDIF()
相关文章:
- 告诉CMake链接到自定义文件夹中的Boost
- 通过cMake使用具有自定义文件扩展名的共享库
- 威纳派读取自定义文件或文件夹的所有访问权限
- 使用命令列表解析自定义文件
- 单独的类声明和方法定义文件问题
- Qt解析自定义文件格式
- 将单独的头文件和类定义文件链接到主函数文件 - G++ 返回重载"undefined reference to"构造函数
- FAT32和NTF中的自定义文件属性
- 如何在没有"fatal error: Wt/WApplication: No such file or directory"的情况下将wt安装到自定义文件夹中
- C++ while 循环在自定义文件结构中
- QT C 读取自定义文件结构
- gcc 是否有编译指示来定义文件类型/编译器
- C/C++ 中的跨平台自定义文件头
- 使用头文件和类定义文件时未解决的外部符号错误
- 将此c++代码分解为单独的类规范文件和函数定义文件
- 自定义文件类中fstream对象的生存期
- 如何使用BinaryReader类使用C#读取自定义文件(C++)
- 提供带有libjpeg的自定义文件IO
- C++模块定义文件头内联符号
- 错误:未定义文件中的第一个引用符号