2015-10-05 135 views
0

如何在我的CMake文件中將「基本運行時檢查」設置爲「默認」?將編譯器選項設置爲默認值在CMake中

在CMake中有以下行,我可以將它設置爲Release模式下的RTC,但我真正需要的是將其設置爲Default。

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /RTCs") 

回答

1

我找到了解決方案。

使用宏刪除當前編譯器選項。

macro(RemoveDebugCXXFlag flag) 
    string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") 
endmacro() 

macro(RemoveReleaseCXXFlag flag) 
    string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") 
endmacro() 

message(${CMAKE_CXX_FLAGS_DEBUG}) # Print Debug Flags Before Change 
RemoveDebugCXXFlag("/RTC1") 

message(${CMAKE_CXX_FLAGS_DEBUG}) # Print Debug Flags After Change 

message(${CMAKE_CXX_FLAGS_RELEASE}) # Print Release Flags Before Change 
RemoveReleaseCXXFlag("/RTC1") 
message(${CMAKE_CXX_FLAGS_RELEASE}) # Print Release Flags After Change 

問候

+1

只是想通過使變量名稱的一部分,也是可變的建議更寬泛的版本:'的foreach(配置$ {} CMAKE_CONFIGURATION_TYPES)'| '字符串(TOUPPER「$ {config}」CONFIG)'| 'string(REGEX REPLACE)/ RTC [A-Za-z0-9] *「」「CMAKE_CXX_FLAGS _ $ {CONFIG}」$ {CMAKE_CXX_FLAGS _ $ {CONFIG}}「)'| 'message(「$ {CMAKE_CXX_FLAGS _ $ {CONFIG}}」)'| 'endforeach()'。 – Florian

+0

感謝您的建議Florian –