# Copyright (c) 2025-2026, IB-Robot Group & openEuler Embedded SIG & openharmony-robot sig_RoboFrame.
# All rights reserved.
macro(add_werror target)
if(IBMW_BUILD_WITH_WERROR)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
target_compile_options(
${target}
PRIVATE -Wall
-Wextra
-Wno-unused-parameter
-Wno-missing-field-initializers
-Wno-implicit-fallthrough
-Wno-maybe-uninitialized
-Wno-stringop-overflow
-Werror)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(CMAKE_CROSSCOMPILING AND DEFINED OHOS_PLATFORM AND NOT "${OHOS_PLATFORM}" STREQUAL "")
target_compile_options(
${target}
PRIVATE -Wall
-Wextra
-Wno-unused-parameter
-Wno-missing-field-initializers
-Wno-implicit-fallthrough
-Wno-unused-command-line-argument
-Werror)
else()
target_compile_options(
${target}
PRIVATE -Wall
-Wextra
-Wno-unused-parameter
-Wno-missing-field-initializers
-Wno-implicit-fallthrough
-Werror)
endif()
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
# target_compile_options(${target} PRIVATE /W3 /WX)
endif()
endif()
endmacro()