2013-06-03 71 views
1

我得在CMakeLists文件是這樣的:如何檢查是否有東西在的CMakeLists.txt定義文件

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 

回答

1

我不知道的一個直接的方法,但你可以使用字符串匹配來獲取標誌:

STRING(REGEX MATCH "FLAG" result ${CMAKE_CXX_FLAGS}) 
IF(${result} MATCHES "FLAG")) 
    #Add your code 
ENDIF() 
相關問題