From 3a4d1ff4dd018d4e98ebcfe153ed8d2bd1568914 Mon Sep 17 00:00:00 2001 From: Fang Xu Date: Fri, 15 Mar 2024 13:34:54 +0800 Subject: [PATCH] enable CMAKE_COMPILE_WARNING_AS_ERROR on windows (#23267) ### Details: - *enable CMAKE_COMPILE_WARNING_AS_ERROR on windows* ### Tickets: - *CVS-120604* --- .github/workflows/windows.yml | 2 +- .../developer_package/compile_flags/os_flags.cmake | 11 +++++++++++ cmake/developer_package/features.cmake | 2 +- src/plugins/intel_gpu/thirdparty/CMakeLists.txt | 6 ++++++ .../behavior/ov_plugin/auto_batching_tests.hpp | 4 ++-- thirdparty/dependencies.cmake | 13 +++++++++++++ 6 files changed, 34 insertions(+), 4 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index a1301bbc66e..ebc89832f85 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -152,7 +152,7 @@ jobs: -DBUILD_nvidia_plugin=OFF ` -DBUILD_SHARED_LIBS=ON ` -DENABLE_TESTS=ON ` - -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF ` + -DCMAKE_COMPILE_WARNING_AS_ERROR=ON ` -DENABLE_STRICT_DEPENDENCIES=OFF ` -DENABLE_PYTHON=ON ` -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON ` diff --git a/cmake/developer_package/compile_flags/os_flags.cmake b/cmake/developer_package/compile_flags/os_flags.cmake index e8c057f4d76..3f5c2b6afc7 100644 --- a/cmake/developer_package/compile_flags/os_flags.cmake +++ b/cmake/developer_package/compile_flags/os_flags.cmake @@ -75,6 +75,17 @@ macro(ov_dev_package_no_errors) endif() endif() + if (CMAKE_COMPILE_WARNING_AS_ERROR AND WIN32) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + if(CMAKE_VERSION VERSION_LESS 3.24) + string(REPLACE "/WX" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REPLACE "/WX" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + endif() + string(REPLACE "/WX" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + endif() + set(CMAKE_COMPILE_WARNING_AS_ERROR OFF) + endif() + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${ov_c_cxx_dev_no_errors} ${ov_cxx_dev_no_errors}") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${ov_c_cxx_dev_no_errors}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ov_c_cxx_dev_no_errors} ${ov_cxx_dev_no_errors}") diff --git a/cmake/developer_package/features.cmake b/cmake/developer_package/features.cmake index b6862a88a2f..43b4a0acd82 100644 --- a/cmake/developer_package/features.cmake +++ b/cmake/developer_package/features.cmake @@ -18,7 +18,7 @@ else() ov_option(USE_BUILD_TYPE_SUBFOLDER "Create dedicated sub-folder per build type for output binaries" ON) endif() -if(DEFINED ENV{CI_BUILD_NUMBER} AND NOT (WIN32 OR CMAKE_CROSSCOMPILING)) +if(DEFINED ENV{CI_BUILD_NUMBER} AND NOT CMAKE_CROSSCOMPILING) set(CMAKE_COMPILE_WARNING_AS_ERROR_DEFAULT ON) else() set(CMAKE_COMPILE_WARNING_AS_ERROR_DEFAULT OFF) diff --git a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt index 36992902fa5..b7929efacd5 100644 --- a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt +++ b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt @@ -83,6 +83,12 @@ if(ENABLE_ONEDNN_FOR_GPU) set(onednn_gpu_lib "${CMAKE_STATIC_LIBRARY_PREFIX}${DNNL_GPU_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(ONEDNN_GPU_LIB_PATH ${ONEDNN_INSTALL_DIR}/lib/${onednn_gpu_lib} CACHE FILEPATH "Path to oneDNN GPU library") + # remove CMAKE_COMPILE_WARNING_AS_ERROR for onednn_gpu + if(WIN32 AND CMAKE_COMPILE_WARNING_AS_ERROR AND CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND CMAKE_VERSION VERSION_LESS 3.24) + string(REPLACE "/WX" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REPLACE "/WX" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + endif() + ExternalProject_Add(onednn_gpu_build # Directory Options: PREFIX "${ONEDNN_PREFIX_DIR}" diff --git a/src/tests/functional/plugin/shared/include/behavior/ov_plugin/auto_batching_tests.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_plugin/auto_batching_tests.hpp index 1d15a5f238d..04d953a01e9 100644 --- a/src/tests/functional/plugin/shared/include/behavior/ov_plugin/auto_batching_tests.hpp +++ b/src/tests/functional/plugin/shared/include/behavior/ov_plugin/auto_batching_tests.hpp @@ -65,12 +65,12 @@ protected: } ov::AnyMap config; if (target_device.find("GPU") != std::string::npos) { - config.insert(ov::num_streams(num_streams)); + config.insert(ov::num_streams(static_cast(num_streams))); config.insert(ov::hint::inference_precision(ov::element::f32)); } if (target_device.find("CPU") != std::string::npos) { - config.insert(ov::num_streams(num_streams)); + config.insert(ov::num_streams(static_cast(num_streams))); } // minimize timeout to reduce test time config.insert(ov::auto_batch_timeout(1)); diff --git a/thirdparty/dependencies.cmake b/thirdparty/dependencies.cmake index 8d734200140..075fc6641c7 100644 --- a/thirdparty/dependencies.cmake +++ b/thirdparty/dependencies.cmake @@ -9,7 +9,9 @@ elseif(CMAKE_TOOLCHAIN_FILE MATCHES "conan_toolchain" OR DEFINED CONAN_EXPORTED) endif() set(_old_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +set(_old_CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) set(_old_CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ${CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE}) +set(_old_CMAKE_COMPILE_WARNING_AS_ERROR ${CMAKE_COMPILE_WARNING_AS_ERROR}) find_package(PkgConfig QUIET) # see https://cmake.org/cmake/help/latest/command/add_library.html#alias-libraries @@ -23,6 +25,15 @@ if(SUGGEST_OVERRIDE_SUPPORTED) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override") endif() +# temporarily remove CMAKE_COMPILE_WARNING_AS_ERROR for thirdparty +if(CMAKE_COMPILE_WARNING_AS_ERROR AND WIN32) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND CMAKE_VERSION VERSION_LESS 3.24) + string(REPLACE "/WX" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REPLACE "/WX" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + endif() + set(CMAKE_COMPILE_WARNING_AS_ERROR OFF) +endif() + if(ENABLE_LTO) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) endif() @@ -581,4 +592,6 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/cnpy # restore state set(CMAKE_CXX_FLAGS "${_old_CMAKE_CXX_FLAGS}") +set(CMAKE_C_FLAGS "${_old_CMAKE_C_FLAGS}") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ${_old_CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE}) +set(CMAKE_COMPILE_WARNING_AS_ERROR ${_old_CMAKE_COMPILE_WARNING_AS_ERROR})