diff options
author | Brad King <brad.king@kitware.com> | 2019-05-30 13:55:22 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-05-30 13:58:37 (GMT) |
commit | a6a04cc446e67017e74e294a4aef84e9e8da4323 (patch) | |
tree | 0b7da98857351e8133cc83ff973c443e12b10445 | |
parent | 6e8acc51a57e60aff307e4730c8a2314e5cf737a (diff) | |
parent | 4fe34b2d29ca67ea91b2545b223dad8abbcad282 (diff) | |
download | CMake-a6a04cc446e67017e74e294a4aef84e9e8da4323.zip CMake-a6a04cc446e67017e74e294a4aef84e9e8da4323.tar.gz CMake-a6a04cc446e67017e74e294a4aef84e9e8da4323.tar.bz2 |
Merge topic 'fix-clang-warnings'
4fe34b2d29 Fixing warnings generated by clang 8.0 on Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3396
-rw-r--r-- | CompileFlags.cmake | 11 | ||||
-rw-r--r-- | Source/cmCallVisualStudioMacro.cxx | 12 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 15 | ||||
-rw-r--r-- | Utilities/cmjsoncpp/include/json/config.h | 10 |
4 files changed, 32 insertions, 16 deletions
diff --git a/CompileFlags.cmake b/CompileFlags.cmake index c231ede..91f2adf 100644 --- a/CompileFlags.cmake +++ b/CompileFlags.cmake @@ -8,11 +8,16 @@ if(WIN32 AND CMAKE_C_COMPILER_ID STREQUAL "Intel") set(_INTEL_WINDOWS 1) endif() +if(WIN32 AND CMAKE_C_COMPILER_ID STREQUAL "Clang" + AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") + set(_CLANG_MSVC_WINDOWS 1) +endif() + # Disable deprecation warnings for standard C functions. # really only needed for newer versions of VS, but should # not hurt other versions, and this will work into the # future -if(MSVC OR _INTEL_WINDOWS) +if(MSVC OR _INTEL_WINDOWS OR _CLANG_MSVC_WINDOWS) add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) else() endif() @@ -21,9 +26,7 @@ if(MSVC) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stack:10000000") endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL Clang - AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC" - AND "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU") +if(_CLANG_MSVC_WINDOWS AND "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Xlinker -stack:20000000") endif() diff --git a/Source/cmCallVisualStudioMacro.cxx b/Source/cmCallVisualStudioMacro.cxx index 2f6cf64..f7a2244 100644 --- a/Source/cmCallVisualStudioMacro.cxx +++ b/Source/cmCallVisualStudioMacro.cxx @@ -61,7 +61,8 @@ HRESULT InstanceCallMacro(IDispatch* vsIDE, const std::string& macro, if (0 != vsIDE) { DISPID dispid = (DISPID)-1; - OLECHAR* name = L"ExecuteCommand"; + wchar_t execute_command[] = L"ExecuteCommand"; + OLECHAR* name = execute_command; hr = vsIDE->GetIDsOfNames(IID_NULL, &name, 1, LOCALE_USER_DEFAULT, &dispid); @@ -119,7 +120,8 @@ HRESULT InstanceCallMacro(IDispatch* vsIDE, const std::string& macro, } oss << " dwHelpContext: " << excep.dwHelpContext << std::endl; oss << " pvReserved: " << excep.pvReserved << std::endl; - oss << " pfnDeferredFillIn: " << excep.pfnDeferredFillIn << std::endl; + oss << " pfnDeferredFillIn: " + << reinterpret_cast<void*>(excep.pfnDeferredFillIn) << std::endl; oss << " scode: " << excep.scode << std::endl; } @@ -140,7 +142,8 @@ HRESULT GetSolutionObject(IDispatch* vsIDE, IDispatchPtr& vsSolution) if (0 != vsIDE) { DISPID dispid = (DISPID)-1; - OLECHAR* name = L"Solution"; + wchar_t solution[] = L"Solution"; + OLECHAR* name = solution; hr = vsIDE->GetIDsOfNames(IID_NULL, &name, 1, LOCALE_USER_DEFAULT, &dispid); @@ -183,7 +186,8 @@ HRESULT GetSolutionFullName(IDispatch* vsSolution, std::string& fullName) if (0 != vsSolution) { DISPID dispid = (DISPID)-1; - OLECHAR* name = L"FullName"; + wchar_t full_name[] = L"FullName"; + OLECHAR* name = full_name; hr = vsSolution->GetIDsOfNames(IID_NULL, &name, 1, LOCALE_USER_DEFAULT, &dispid); diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 3495f2a..26886f5 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -535,11 +535,22 @@ void cmGlobalGenerator::EnableLanguage( # ifdef KWSYS_WINDOWS_DEPRECATED_GetVersionEx # pragma warning(push) -# pragma warning(disable : 4996) +# ifdef __INTEL_COMPILER +# pragma warning(disable : 1478) +# elif defined __clang__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# else +# pragma warning(disable : 4996) +# endif # endif GetVersionExW((OSVERSIONINFOW*)&osviex); # ifdef KWSYS_WINDOWS_DEPRECATED_GetVersionEx -# pragma warning(pop) +# ifdef __clang__ +# pragma clang diagnostic pop +# else +# pragma warning(pop) +# endif # endif std::ostringstream windowsVersionString; windowsVersionString << osviex.dwMajorVersion << "." diff --git a/Utilities/cmjsoncpp/include/json/config.h b/Utilities/cmjsoncpp/include/json/config.h index 34f7314..2cc8462 100644 --- a/Utilities/cmjsoncpp/include/json/config.h +++ b/Utilities/cmjsoncpp/include/json/config.h @@ -79,11 +79,6 @@ # pragma warning(disable : 4786) # endif // MSVC 6 -# if _MSC_VER >= 1500 // MSVC 2008 - /// Indicates that the following function is deprecated. -# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) -# endif - #endif // defined(_MSC_VER) // In c++11 the override keyword allows you to explicity define that a function @@ -137,7 +132,10 @@ # elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) # define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) # endif // GNUC version -#endif // __clang__ || __GNUC__ +#elif defined(_MSC_VER) && _MSC_VER >= 1500 // MSVC 2008 + /// Indicates that the following function is deprecated. +# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) +#endif // __clang__ || __GNUC__ || _MSC_VER #undef JSONCPP_DEPRECATED // no deprecations in CMake copy #if !defined(JSONCPP_DEPRECATED) |