如何在CMake中设置警告级别?

如何使用CMake设置项目警告级别 (而不是整个解决scheme)? 应该在Visual StudioGCC上工作

我发现各种select,但大多数似乎要么不工作,或不符合文件。

你可以做类似这样的事情:

if(MSVC) # Force to always compile with W4 if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") endif() elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) # Update if necessary set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic") endif() 

这是我迄今为止发现的最好的解决scheme(包括编译器检查):

 if(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)") add_definitions(/W2) endif() 

这将在Visual Studio中设置警告级别2。 我想用-W2也可以在GCC中工作(未经testing)。

@Williams更新:它应该是-Wall for GCC。

Interesting Posts