mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-03-27 18:47:39 +00:00
99 lines
3.4 KiB
CMake
99 lines
3.4 KiB
CMake
# Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
# - Enable warning all for gcc/clang or use /W4 for visual studio
|
|
|
|
## Strict warning level
|
|
if (MSVC)
|
|
# Use the highest warning level for visual studio.
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w")
|
|
# set(CMAKE_CXX_WARNING_LEVEL 4)
|
|
# if (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
|
# string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
# else ()
|
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
|
# endif ()
|
|
|
|
# set(CMAKE_C_WARNING_LEVEL 4)
|
|
# if (CMAKE_C_FLAGS MATCHES "/W[0-4]")
|
|
# string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
|
# else ()
|
|
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
|
|
# endif ()
|
|
|
|
else()
|
|
foreach(COMPILER C CXX)
|
|
set(CMAKE_COMPILER_WARNINGS)
|
|
# use -Wall for gcc and clang
|
|
list(APPEND CMAKE_COMPILER_WARNINGS
|
|
-Wall
|
|
-Wextra
|
|
-Wcomment
|
|
-Wendif-labels
|
|
-Wformat
|
|
-Winit-self
|
|
-Wreturn-type
|
|
-Wsequence-point
|
|
# Shadow is broken on gcc when using lambdas
|
|
# -Wshadow
|
|
-Wswitch
|
|
-Wtrigraphs
|
|
-Wundef
|
|
-Wuninitialized
|
|
-Wunreachable-code
|
|
-Wunused
|
|
-Wno-reserved-identifier
|
|
# Werror set outside by BUILD_DEV
|
|
# -Werror
|
|
-Wno-option-ignored
|
|
-Wsign-compare
|
|
-Wno-extra-semi-stmt
|
|
-Wno-unused-template
|
|
)
|
|
if (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang")
|
|
list(APPEND CMAKE_COMPILER_WARNINGS
|
|
-Weverything
|
|
-Wno-c++98-compat
|
|
-Wno-c++98-compat-pedantic
|
|
-Wno-conversion
|
|
-Wno-double-promotion
|
|
-Wno-exit-time-destructors
|
|
-Wno-extra-semi
|
|
-Wno-float-conversion
|
|
-Wno-gnu-anonymous-struct
|
|
-Wno-gnu-zero-variadic-macro-arguments
|
|
-Wno-missing-prototypes
|
|
-Wno-nested-anon-types
|
|
-Wno-padded
|
|
-Wno-return-std-move-in-c++11
|
|
-Wno-shorten-64-to-32
|
|
-Wno-sign-conversion
|
|
-Wno-unknown-warning-option
|
|
-Wno-unused-command-line-argument
|
|
-Wno-weak-vtables
|
|
-Wno-covered-switch-default
|
|
-Wno-unsafe-buffer-usage
|
|
-Wno-unused-lambda-capture
|
|
-Wno-nvcc-compat
|
|
)
|
|
if(CK_CXX_STANDARD GREATER_EQUAL 20)
|
|
list(APPEND CMAKE_COMPILER_WARNINGS -Wno-c++20-compat)
|
|
endif()
|
|
else()
|
|
if (CMAKE_${COMPILER}_COMPILER_ID MATCHES "GNU" AND ${COMPILER} MATCHES "CXX")
|
|
# cmake 3.5.2 does not support >=.
|
|
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1")
|
|
list(APPEND CMAKE_COMPILER_WARNINGS
|
|
-Wno-ignored-attributes)
|
|
endif()
|
|
endif()
|
|
list(APPEND CMAKE_COMPILER_WARNINGS
|
|
-Wno-missing-field-initializers
|
|
-Wno-error=deprecated-declarations
|
|
)
|
|
endif()
|
|
add_definitions(${CMAKE_COMPILER_WARNINGS})
|
|
endforeach()
|
|
endif ()
|