@@ -195,12 +195,13 @@ if( LLVM_ENABLE_PIC )
195195 # Xcode has -mdynamic-no-pic on by default, which overrides -fPIC. I don't
196196 # know how to disable this, so just force ENABLE_PIC off for now.
197197 message (WARNING "-fPIC not supported with Xcode." )
198- elseif ( WIN32 OR CYGWIN )
199- # On Windows all code is PIC. MinGW warns if -fPIC is used.
200198 else ()
201- add_flag_or_print_warning("-fPIC" FPIC)
199+ if ( NOT WIN32 AND NOT CYGWIN )
200+ # On Windows all code is PIC. MinGW warns if -fPIC is used.
201+ add_flag_or_print_warning("-fPIC" FPIC)
202+ endif ()
202203
203- if ( WIN32 OR CYGWIN )
204+ if ( (MINGW AND NOT CLANG) OR CYGWIN )
204205 # MinGW warns if -fvisibility-inlines-hidden is used.
205206 else ()
206207 check_cxx_compiler_flag("-fvisibility-inlines-hidden" SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG)
@@ -407,6 +408,15 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
407408 # Disable unknown pragma warnings because the output is just too long with them.
408409 append ("-Wno-unknown-pragmas" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
409410
411+ if (MINGW)
412+ append ("-Wno-implicit-fallthrough" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
413+ append ("-Wno-missing-exception-spec" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
414+ append ("-Wno-reorder-ctor" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
415+ append ("-Wno-sign-compare" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
416+ append ("-Wno-unused-const-variable" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
417+ append ("-Wno-unused-function" CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
418+ endif ()
419+
410420 add_flag_if_supported("-Wno-unused-but-set-variable" UNUSED_BUT_SET_VARIABLE)
411421 add_flag_if_supported("-Wno-deprecated-copy" DEPRECATED_COPY)
412422
@@ -614,6 +624,15 @@ if(LLVM_ENABLE_EH AND NOT LLVM_ENABLE_RTTI)
614624 message (FATAL_ERROR "Exception handling requires RTTI. You must set LLVM_ENABLE_RTTI to ON" )
615625endif ()
616626
627+ if (MINGW)
628+ if (LLVM_ENABLE_EH)
629+ append ("-fexceptions" CMAKE_CXX_FLAGS )
630+ endif ()
631+ if (LLVM_ENABLE_RTTI)
632+ append ("-frtti" CMAKE_CXX_FLAGS )
633+ endif ()
634+ endif ()
635+
617636# HLSL Change Begin
618637option (LLVM_ENABLE_LTO "Enable building with LTO" ${HLSL_OFFICIAL_BUILD} )
619638if (LLVM_ENABLE_LTO)
@@ -624,7 +643,7 @@ if (LLVM_ENABLE_LTO)
624643 append ("/GL" CMAKE_C_FLAGS${_SUFFIX} CMAKE_CXX_FLAGS ${_SUFFIX} )
625644 append ("/LTCG" CMAKE_MODULE_LINKER_FLAGS${_SUFFIX} CMAKE_MODULE_LINKER_FLAGS${_SUFFIX} CMAKE_EXE_LINKER_FLAGS ${_SUFFIX} )
626645 else ()
627- add_flag_if_supported("-flto" SUPPORST_FLTO )
646+ add_flag_if_supported("-flto" SUPPORTS_FLTO )
628647 endif ()
629648endif ()
630649# HLSL Change End
0 commit comments