forked from OSchip/llvm-project
[CMake] Don't pass in MSVC warning flags as definitions
NFC currently but required as a prerequisite for using the Microsoft resource compiler in conjunction with CMake's ninja generator, which knows how to filter flags appropriately, but not definitions. Differential Revision: http://reviews.llvm.org/D8188 llvm-svn: 231924
This commit is contained in:
parent
23445cadb2
commit
8b0d3f1ea4
|
@ -243,7 +243,7 @@ if( MSVC )
|
||||||
if( MSVC11 )
|
if( MSVC11 )
|
||||||
add_llvm_definitions(-D_VARIADIC_MAX=10)
|
add_llvm_definitions(-D_VARIADIC_MAX=10)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add definitions that make MSVC much less annoying.
|
# Add definitions that make MSVC much less annoying.
|
||||||
add_llvm_definitions(
|
add_llvm_definitions(
|
||||||
# For some reason MS wants to deprecate a bunch of standard functions...
|
# For some reason MS wants to deprecate a bunch of standard functions...
|
||||||
|
@ -253,7 +253,9 @@ if( MSVC )
|
||||||
-D_CRT_NONSTDC_NO_WARNINGS
|
-D_CRT_NONSTDC_NO_WARNINGS
|
||||||
-D_SCL_SECURE_NO_DEPRECATE
|
-D_SCL_SECURE_NO_DEPRECATE
|
||||||
-D_SCL_SECURE_NO_WARNINGS
|
-D_SCL_SECURE_NO_WARNINGS
|
||||||
|
)
|
||||||
|
|
||||||
|
set(msvc_warning_flags
|
||||||
# Disabled warnings.
|
# Disabled warnings.
|
||||||
-wd4146 # Suppress 'unary minus operator applied to unsigned type, result still unsigned'
|
-wd4146 # Suppress 'unary minus operator applied to unsigned type, result still unsigned'
|
||||||
-wd4180 # Suppress 'qualifier applied to function type has no meaning; ignored'
|
-wd4180 # Suppress 'qualifier applied to function type has no meaning; ignored'
|
||||||
|
@ -272,7 +274,7 @@ if( MSVC )
|
||||||
-wd4624 # Suppress ''derived class' : destructor could not be generated because a base class destructor is inaccessible'
|
-wd4624 # Suppress ''derived class' : destructor could not be generated because a base class destructor is inaccessible'
|
||||||
-wd4722 # Suppress 'function' : destructor never returns, potential memory leak
|
-wd4722 # Suppress 'function' : destructor never returns, potential memory leak
|
||||||
-wd4800 # Suppress ''type' : forcing value to bool 'true' or 'false' (performance warning)'
|
-wd4800 # Suppress ''type' : forcing value to bool 'true' or 'false' (performance warning)'
|
||||||
|
|
||||||
# Promoted warnings.
|
# Promoted warnings.
|
||||||
-w14062 # Promote 'enumerator in switch of enum is not handled' to level 1 warning.
|
-w14062 # Promote 'enumerator in switch of enum is not handled' to level 1 warning.
|
||||||
|
|
||||||
|
@ -282,14 +284,19 @@ if( MSVC )
|
||||||
|
|
||||||
# Enable warnings
|
# Enable warnings
|
||||||
if (LLVM_ENABLE_WARNINGS)
|
if (LLVM_ENABLE_WARNINGS)
|
||||||
add_llvm_definitions( /W4 )
|
append("/W4" msvc_warning_flags)
|
||||||
if (LLVM_ENABLE_PEDANTIC)
|
if (LLVM_ENABLE_PEDANTIC)
|
||||||
# No MSVC equivalent available
|
# No MSVC equivalent available
|
||||||
endif (LLVM_ENABLE_PEDANTIC)
|
endif (LLVM_ENABLE_PEDANTIC)
|
||||||
endif (LLVM_ENABLE_WARNINGS)
|
endif (LLVM_ENABLE_WARNINGS)
|
||||||
if (LLVM_ENABLE_WERROR)
|
if (LLVM_ENABLE_WERROR)
|
||||||
add_llvm_definitions( /WX )
|
append("/WX" msvc_warning_flags)
|
||||||
endif (LLVM_ENABLE_WERROR)
|
endif (LLVM_ENABLE_WERROR)
|
||||||
|
|
||||||
|
foreach(flag ${msvc_warning_flags})
|
||||||
|
append("${flag}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||||
|
endforeach(flag)
|
||||||
|
|
||||||
elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
|
elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
|
||||||
if (LLVM_ENABLE_WARNINGS)
|
if (LLVM_ENABLE_WARNINGS)
|
||||||
append("-Wall -W -Wno-unused-parameter -Wwrite-strings" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
append("-Wall -W -Wno-unused-parameter -Wwrite-strings" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||||
|
|
Loading…
Reference in New Issue