我在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()
我还要检查我的c ++代码中是否已定义FLAG
。如果已定义,我将使用LIBS1
中的代码,否则我将使用LIBS2
库集中定义的代码。
#ifdef FLAG
// some code that uses LIBS1 libraries
#else
// some code that uses LIBS2 libraries
#endif
答案 0 :(得分:1)
我不知道直接的方式,但您可以使用字符串匹配来获取标志:
STRING(REGEX MATCH "FLAG" result ${CMAKE_CXX_FLAGS})
IF(${result} MATCHES "FLAG"))
#Add your code
ENDIF()