mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-11 17:00:18 +00:00
add tidy
This commit is contained in:
3
.clang-tidy
Normal file
3
.clang-tidy
Normal file
@@ -0,0 +1,3 @@
|
||||
CheckOptions:
|
||||
- key: bugprone-reserved-identifier.AllowedIdentifiers
|
||||
value: '__HIP_PLATFORM_HCC__;__HIP_ROCclr__'
|
||||
160
CMakeLists.txt
160
CMakeLists.txt
@@ -1,8 +1,10 @@
|
||||
cmake_minimum_required(VERSION 2.8.3)
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(composable_kernel)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
||||
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
## C++
|
||||
enable_language(CXX)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
@@ -36,4 +38,160 @@ link_libraries(${OpenMP_pthread_LIBRARY})
|
||||
find_package(HIP REQUIRED)
|
||||
message(STATUS "Build with HIP ${hip_VERSION}")
|
||||
|
||||
## tidy
|
||||
include(EnableCompilerWarnings)
|
||||
set(MIOPEN_TIDY_ERRORS ERRORS * -readability-inconsistent-declaration-parameter-name)
|
||||
if(CMAKE_CXX_COMPILER MATCHES ".*hcc" OR CMAKE_CXX_COMPILER MATCHES ".*clang\\+\\+")
|
||||
set(MIOPEN_TIDY_CHECKS -modernize-use-override -readability-non-const-parameter)
|
||||
# Enable tidy on hip
|
||||
elseif(MIOPEN_BACKEND STREQUAL "HIP" OR MIOPEN_BACKEND STREQUAL "HIPNOGPU")
|
||||
set(MIOPEN_TIDY_ERRORS ALL)
|
||||
|
||||
endif()
|
||||
|
||||
include(ClangTidy)
|
||||
enable_clang_tidy(
|
||||
CHECKS
|
||||
*
|
||||
-abseil-*
|
||||
-android-cloexec-fopen
|
||||
# Yea we shouldn't be using rand()
|
||||
-cert-msc30-c
|
||||
-bugprone-exception-escape
|
||||
-bugprone-macro-parentheses
|
||||
-cert-env33-c
|
||||
-cert-msc32-c
|
||||
-cert-msc50-cpp
|
||||
-cert-msc51-cpp
|
||||
-cert-dcl37-c
|
||||
-cert-dcl51-cpp
|
||||
-clang-analyzer-alpha.core.CastToStruct
|
||||
-clang-analyzer-optin.performance.Padding
|
||||
-clang-diagnostic-deprecated-declarations
|
||||
-clang-diagnostic-extern-c-compat
|
||||
-clang-diagnostic-unused-command-line-argument
|
||||
-cppcoreguidelines-avoid-c-arrays
|
||||
-cppcoreguidelines-avoid-magic-numbers
|
||||
-cppcoreguidelines-explicit-virtual-functions
|
||||
-cppcoreguidelines-init-variables
|
||||
-cppcoreguidelines-macro-usage
|
||||
-cppcoreguidelines-non-private-member-variables-in-classes
|
||||
-cppcoreguidelines-pro-bounds-array-to-pointer-decay
|
||||
-cppcoreguidelines-pro-bounds-constant-array-index
|
||||
-cppcoreguidelines-pro-bounds-pointer-arithmetic
|
||||
-cppcoreguidelines-pro-type-member-init
|
||||
-cppcoreguidelines-pro-type-reinterpret-cast
|
||||
-cppcoreguidelines-pro-type-union-access
|
||||
-cppcoreguidelines-pro-type-vararg
|
||||
-cppcoreguidelines-special-member-functions
|
||||
-fuchsia-*
|
||||
-google-explicit-constructor
|
||||
-google-readability-braces-around-statements
|
||||
-google-readability-todo
|
||||
-google-runtime-int
|
||||
-google-runtime-references
|
||||
-hicpp-vararg
|
||||
-hicpp-braces-around-statements
|
||||
-hicpp-explicit-conversions
|
||||
-hicpp-named-parameter
|
||||
-hicpp-no-array-decay
|
||||
# We really shouldn't use bitwise operators with signed integers, but
|
||||
# opencl leaves us no choice
|
||||
-hicpp-avoid-c-arrays
|
||||
-hicpp-signed-bitwise
|
||||
-hicpp-special-member-functions
|
||||
-hicpp-uppercase-literal-suffix
|
||||
-hicpp-use-auto
|
||||
-hicpp-use-equals-default
|
||||
-hicpp-use-override
|
||||
-llvm-header-guard
|
||||
-llvm-include-order
|
||||
#-llvmlibc-*
|
||||
-llvmlibc-restrict-system-libc-headers
|
||||
-llvmlibc-callee-namespace
|
||||
-llvmlibc-implementation-in-namespace
|
||||
-llvm-else-after-return
|
||||
-llvm-qualified-auto
|
||||
-misc-misplaced-const
|
||||
-misc-non-private-member-variables-in-classes
|
||||
-misc-no-recursion
|
||||
-modernize-avoid-bind
|
||||
-modernize-avoid-c-arrays
|
||||
-modernize-pass-by-value
|
||||
-modernize-use-auto
|
||||
-modernize-use-default-member-init
|
||||
-modernize-use-equals-default
|
||||
-modernize-use-trailing-return-type
|
||||
-modernize-use-transparent-functors
|
||||
-performance-unnecessary-value-param
|
||||
-readability-braces-around-statements
|
||||
-readability-else-after-return
|
||||
# we are not ready to use it, but very useful
|
||||
-readability-function-cognitive-complexity
|
||||
-readability-isolate-declaration
|
||||
-readability-magic-numbers
|
||||
-readability-named-parameter
|
||||
-readability-uppercase-literal-suffix
|
||||
-readability-convert-member-functions-to-static
|
||||
-readability-qualified-auto
|
||||
-readability-redundant-string-init
|
||||
# too many narrowing conversions in our code
|
||||
-bugprone-narrowing-conversions
|
||||
-cppcoreguidelines-narrowing-conversions
|
||||
-altera-struct-pack-align
|
||||
-cppcoreguidelines-prefer-member-initializer
|
||||
|
||||
${MIOPEN_TIDY_CHECKS}
|
||||
${MIOPEN_TIDY_ERRORS}
|
||||
HEADER_FILTER
|
||||
"\.hpp$"
|
||||
EXTRA_ARGS
|
||||
-DMIOPEN_USE_CLANG_TIDY
|
||||
|
||||
)
|
||||
|
||||
include(CppCheck)
|
||||
enable_cppcheck(
|
||||
CHECKS
|
||||
warning
|
||||
style
|
||||
performance
|
||||
portability
|
||||
SUPPRESS
|
||||
ConfigurationNotChecked
|
||||
constStatement
|
||||
duplicateCondition
|
||||
noExplicitConstructor
|
||||
passedByValue
|
||||
# preprocessorErrorDirective
|
||||
shadowVariable
|
||||
unusedFunction
|
||||
unusedPrivateFunction
|
||||
unusedStructMember
|
||||
# Ignore initializer lists in the tests
|
||||
useInitializationList:*test/*.cpp
|
||||
*:*src/sqlite/*.cpp
|
||||
*:*.cl
|
||||
*:*src/kernels/*.h
|
||||
knownConditionTrueFalse:*src/kernels/composable_kernel/*/*
|
||||
redundantAssignment:*src/kernels/composable_kernel/*/*
|
||||
unreadVariable:*src/kernels/composable_kernel/*/*
|
||||
unusedScopedObject:*src/kernels/composable_kernel/*/*
|
||||
wrongPrintfScanfArgNum:*src/kernels/composable_kernel/*/*
|
||||
unmatchedSuppression
|
||||
FORCE
|
||||
SOURCES
|
||||
host/host_tensor/src
|
||||
host/driver_offline
|
||||
composable_kernel/src
|
||||
INCLUDE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_BINARY_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/include
|
||||
DEFINE
|
||||
CPPCHECK=1
|
||||
MIOPEN_USE_MIOPENGEMM=1
|
||||
__linux__=1
|
||||
)
|
||||
|
||||
add_subdirectory(host)
|
||||
|
||||
34
cmake/Analyzers.cmake
Normal file
34
cmake/Analyzers.cmake
Normal file
@@ -0,0 +1,34 @@
|
||||
################################################################################
|
||||
#
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2017 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
if(NOT TARGET analyze)
|
||||
add_custom_target(analyze)
|
||||
endif()
|
||||
|
||||
function(mark_as_analyzer)
|
||||
add_dependencies(analyze ${ARGN})
|
||||
endfunction()
|
||||
|
||||
162
cmake/ClangTidy.cmake
Normal file
162
cmake/ClangTidy.cmake
Normal file
@@ -0,0 +1,162 @@
|
||||
################################################################################
|
||||
#
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2017 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
################################################################################
|
||||
include(CMakeParseArguments)
|
||||
include(Analyzers)
|
||||
|
||||
get_filename_component(CLANG_TIDY_EXE_HINT "${CMAKE_CXX_COMPILER}" PATH)
|
||||
|
||||
find_program(CLANG_TIDY_EXE
|
||||
NAMES
|
||||
clang-tidy
|
||||
clang-tidy-5.0
|
||||
clang-tidy-4.0
|
||||
clang-tidy-3.9
|
||||
clang-tidy-3.8
|
||||
clang-tidy-3.7
|
||||
clang-tidy-3.6
|
||||
clang-tidy-3.5
|
||||
HINTS
|
||||
${CLANG_TIDY_EXE_HINT}
|
||||
PATH_SUFFIXES
|
||||
compiler/bin
|
||||
PATHS
|
||||
/opt/rocm/llvm/bin
|
||||
/opt/rocm/hcc
|
||||
/usr/local/opt/llvm/bin
|
||||
)
|
||||
|
||||
function(find_clang_tidy_version VAR)
|
||||
execute_process(COMMAND ${CLANG_TIDY_EXE} -version OUTPUT_VARIABLE VERSION_OUTPUT)
|
||||
separate_arguments(VERSION_OUTPUT_LIST UNIX_COMMAND "${VERSION_OUTPUT}")
|
||||
list(FIND VERSION_OUTPUT_LIST "version" VERSION_INDEX)
|
||||
if(VERSION_INDEX GREATER 0)
|
||||
math(EXPR VERSION_INDEX "${VERSION_INDEX} + 1")
|
||||
list(GET VERSION_OUTPUT_LIST ${VERSION_INDEX} VERSION)
|
||||
set(${VAR} ${VERSION} PARENT_SCOPE)
|
||||
else()
|
||||
set(${VAR} "0.0" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
if( NOT CLANG_TIDY_EXE )
|
||||
message( STATUS "Clang tidy not found" )
|
||||
set(CLANG_TIDY_VERSION "0.0")
|
||||
else()
|
||||
find_clang_tidy_version(CLANG_TIDY_VERSION)
|
||||
message( STATUS "Clang tidy found: ${CLANG_TIDY_VERSION}")
|
||||
endif()
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
set(CLANG_TIDY_FIXIT_DIR ${CMAKE_BINARY_DIR}/fixits)
|
||||
file(MAKE_DIRECTORY ${CLANG_TIDY_FIXIT_DIR})
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CLANG_TIDY_FIXIT_DIR})
|
||||
|
||||
macro(enable_clang_tidy)
|
||||
set(options ANALYZE_TEMPORARY_DTORS ALL)
|
||||
set(oneValueArgs HEADER_FILTER)
|
||||
set(multiValueArgs CHECKS ERRORS EXTRA_ARGS)
|
||||
|
||||
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
string(REPLACE ";" "," CLANG_TIDY_CHECKS "${PARSE_CHECKS}")
|
||||
string(REPLACE ";" "," CLANG_TIDY_ERRORS "${PARSE_ERRORS}")
|
||||
set(CLANG_TIDY_EXTRA_ARGS)
|
||||
foreach(ARG ${PARSE_EXTRA_ARGS})
|
||||
list(APPEND CLANG_TIDY_EXTRA_ARGS "-extra-arg=${ARG}")
|
||||
endforeach()
|
||||
|
||||
set(CLANG_TIDY_ALL)
|
||||
if(PARSE_ALL)
|
||||
set(CLANG_TIDY_ALL ALL)
|
||||
endif()
|
||||
|
||||
message(STATUS "Clang tidy checks: ${CLANG_TIDY_CHECKS}")
|
||||
|
||||
if (${PARSE_ANALYZE_TEMPORARY_DTORS})
|
||||
set(CLANG_TIDY_ANALYZE_TEMPORARY_DTORS "-analyze-temporary-dtors")
|
||||
endif()
|
||||
|
||||
if (${CLANG_TIDY_VERSION} VERSION_LESS "3.9.0")
|
||||
set(CLANG_TIDY_ERRORS_ARG "")
|
||||
else()
|
||||
set(CLANG_TIDY_ERRORS_ARG "-warnings-as-errors='${CLANG_TIDY_ERRORS}'")
|
||||
endif()
|
||||
|
||||
if (${CLANG_TIDY_VERSION} VERSION_LESS "3.9.0")
|
||||
set(CLANG_TIDY_QUIET_ARG "")
|
||||
else()
|
||||
set(CLANG_TIDY_QUIET_ARG "-quiet")
|
||||
endif()
|
||||
|
||||
if(PARSE_HEADER_FILTER)
|
||||
string(REPLACE "$" "$$" CLANG_TIDY_HEADER_FILTER "${PARSE_HEADER_FILTER}")
|
||||
else()
|
||||
set(CLANG_TIDY_HEADER_FILTER ".*")
|
||||
endif()
|
||||
|
||||
set(CLANG_TIDY_COMMAND
|
||||
${CLANG_TIDY_EXE}
|
||||
${CLANG_TIDY_QUIET_ARG}
|
||||
-p ${CMAKE_BINARY_DIR}
|
||||
-checks='${CLANG_TIDY_CHECKS}'
|
||||
${CLANG_TIDY_ERRORS_ARG}
|
||||
${CLANG_TIDY_EXTRA_ARGS}
|
||||
${CLANG_TIDY_ANALYZE_TEMPORARY_DTORS}
|
||||
-header-filter='${CLANG_TIDY_HEADER_FILTER}'
|
||||
)
|
||||
add_custom_target(tidy ${CLANG_TIDY_ALL})
|
||||
mark_as_analyzer(tidy)
|
||||
add_custom_target(tidy-base)
|
||||
add_custom_target(tidy-make-fixit-dir COMMAND ${CMAKE_COMMAND} -E make_directory ${CLANG_TIDY_FIXIT_DIR})
|
||||
add_custom_target(tidy-rm-fixit-dir COMMAND ${CMAKE_COMMAND} -E remove_directory ${CLANG_TIDY_FIXIT_DIR})
|
||||
add_dependencies(tidy-make-fixit-dir tidy-rm-fixit-dir)
|
||||
add_dependencies(tidy-base tidy-make-fixit-dir)
|
||||
endmacro()
|
||||
|
||||
function(clang_tidy_check TARGET)
|
||||
get_target_property(SOURCES ${TARGET} SOURCES)
|
||||
# TODO: Use generator expressions instead
|
||||
# COMMAND ${CLANG_TIDY_COMMAND} $<TARGET_PROPERTY:${TARGET},SOURCES>
|
||||
# COMMAND ${CLANG_TIDY_COMMAND} $<JOIN:$<TARGET_PROPERTY:${TARGET},SOURCES>, >
|
||||
foreach(SOURCE ${SOURCES})
|
||||
if((NOT "${SOURCE}" MATCHES "(h|hpp|hxx)$") AND (NOT "${SOURCE}" MATCHES "TARGET_OBJECTS"))
|
||||
string(MAKE_C_IDENTIFIER "${SOURCE}" tidy_file)
|
||||
set(tidy_target tidy-target-${TARGET}-${tidy_file})
|
||||
add_custom_target(${tidy_target}
|
||||
# for some targets clang-tidy not able to get information from .clang-tidy
|
||||
DEPENDS ${SOURCE}
|
||||
COMMAND ${CLANG_TIDY_COMMAND} "-config=\{CheckOptions: \[\{key: bugprone-reserved-identifier.AllowedIdentifiers,value: __HIP_PLATFORM_HCC__\; __HIP_ROCclr__\}\]\}" ${SOURCE} "-export-fixes=${CLANG_TIDY_FIXIT_DIR}/${TARGET}-${tidy_file}.yaml"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "clang-tidy: Running clang-tidy on target ${SOURCE}..."
|
||||
)
|
||||
add_dependencies(${tidy_target} ${TARGET})
|
||||
add_dependencies(${tidy_target} tidy-base)
|
||||
add_dependencies(tidy ${tidy_target})
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
130
cmake/CppCheck.cmake
Normal file
130
cmake/CppCheck.cmake
Normal file
@@ -0,0 +1,130 @@
|
||||
################################################################################
|
||||
#
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2017 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
include(CMakeParseArguments)
|
||||
include(ProcessorCount)
|
||||
include(Analyzers)
|
||||
|
||||
find_program(CPPCHECK_EXE
|
||||
NAMES
|
||||
cppcheck
|
||||
PATHS
|
||||
/opt/rocm/bin
|
||||
)
|
||||
|
||||
ProcessorCount(CPPCHECK_JOBS)
|
||||
|
||||
set(CPPCHECK_BUILD_DIR ${CMAKE_BINARY_DIR}/cppcheck-build)
|
||||
file(MAKE_DIRECTORY ${CPPCHECK_BUILD_DIR})
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CPPCHECK_BUILD_DIR})
|
||||
|
||||
macro(enable_cppcheck)
|
||||
set(options FORCE)
|
||||
set(oneValueArgs)
|
||||
set(multiValueArgs CHECKS SUPPRESS DEFINE UNDEFINE INCLUDE SOURCES)
|
||||
|
||||
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
string(REPLACE ";" "," CPPCHECK_CHECKS "${PARSE_CHECKS}")
|
||||
string(REPLACE ";" "\n" CPPCHECK_SUPPRESS "${PARSE_SUPPRESS};*:/usr/*")
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/cppcheck-supressions "${CPPCHECK_SUPPRESS}")
|
||||
set(CPPCHECK_DEFINES)
|
||||
foreach(DEF ${PARSE_DEFINE})
|
||||
set(CPPCHECK_DEFINES "${CPPCHECK_DEFINES} -D${DEF}")
|
||||
endforeach()
|
||||
|
||||
set(CPPCHECK_UNDEFINES)
|
||||
foreach(DEF ${PARSE_UNDEFINE})
|
||||
set(CPPCHECK_UNDEFINES "${CPPCHECK_UNDEFINES} -U${DEF}")
|
||||
endforeach()
|
||||
|
||||
set(CPPCHECK_INCLUDES)
|
||||
foreach(INC ${PARSE_INCLUDE})
|
||||
set(CPPCHECK_INCLUDES "${CPPCHECK_INCLUDES} -I${INC}")
|
||||
endforeach()
|
||||
|
||||
# set(CPPCHECK_FORCE)
|
||||
set(CPPCHECK_FORCE "--project=${CMAKE_BINARY_DIR}/compile_commands.json")
|
||||
if(PARSE_FORCE)
|
||||
set(CPPCHECK_FORCE --force)
|
||||
endif()
|
||||
|
||||
set(SOURCES)
|
||||
set(GLOBS)
|
||||
foreach(SOURCE ${PARSE_SOURCES})
|
||||
get_filename_component(ABS_SOURCE ${SOURCE} ABSOLUTE)
|
||||
if(EXISTS ${ABS_SOURCE})
|
||||
if(IS_DIRECTORY ${ABS_SOURCE})
|
||||
set(GLOBS "${GLOBS} ${ABS_SOURCE}/*.cpp ${ABS_SOURCE}/*.hpp ${ABS_SOURCE}/*.cxx ${ABS_SOURCE}/*.c ${ABS_SOURCE}/*.h")
|
||||
else()
|
||||
set(SOURCES "${SOURCES} ${ABS_SOURCE}")
|
||||
endif()
|
||||
else()
|
||||
set(GLOBS "${GLOBS} ${ABS_SOURCE}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/cppcheck.cmake "
|
||||
file(GLOB_RECURSE GSRCS ${GLOBS})
|
||||
set(CPPCHECK_COMMAND
|
||||
${CPPCHECK_EXE}
|
||||
-q
|
||||
# -v
|
||||
# --report-progress
|
||||
${CPPCHECK_FORCE}
|
||||
--cppcheck-build-dir=${CPPCHECK_BUILD_DIR}
|
||||
--platform=native
|
||||
--template=gcc
|
||||
--error-exitcode=1
|
||||
-j ${CPPCHECK_JOBS}
|
||||
${CPPCHECK_DEFINES}
|
||||
${CPPCHECK_UNDEFINES}
|
||||
${CPPCHECK_INCLUDES}
|
||||
--enable=${CPPCHECK_CHECKS}
|
||||
--inline-suppr
|
||||
--suppressions-list=${CMAKE_BINARY_DIR}/cppcheck-supressions
|
||||
${SOURCES} \${GSRCS}
|
||||
)
|
||||
string(REPLACE \";\" \" \" CPPCHECK_SHOW_COMMAND \"\${CPPCHECK_COMMAND}\")
|
||||
message(\"\${CPPCHECK_SHOW_COMMAND}\")
|
||||
execute_process(
|
||||
COMMAND \${CPPCHECK_COMMAND}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
if(NOT RESULT EQUAL 0)
|
||||
message(FATAL_ERROR \"Cppcheck failed\")
|
||||
endif()
|
||||
")
|
||||
|
||||
add_custom_target(cppcheck
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cppcheck.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "cppcheck: Running cppcheck..."
|
||||
)
|
||||
mark_as_analyzer(cppcheck)
|
||||
endmacro()
|
||||
|
||||
|
||||
355
cmake/DoxygenDoc.cmake
Normal file
355
cmake/DoxygenDoc.cmake
Normal file
@@ -0,0 +1,355 @@
|
||||
################################################################################
|
||||
#
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2017 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
################################################################################
|
||||
include(CMakeParseArguments)
|
||||
include(MainDoc)
|
||||
|
||||
find_program(DOXYGEN_EXECUTABLE NAMES doxygen
|
||||
PATH_SUFFIXES bin
|
||||
DOC "Doxygen documentation generator"
|
||||
)
|
||||
mark_as_advanced(DOXYGEN_EXECUTABLE)
|
||||
|
||||
find_path(DOT_EXECUTABLE NAMES dot
|
||||
PATH_SUFFIXES bin
|
||||
DOC "Graphviz"
|
||||
)
|
||||
mark_as_advanced(DOT_EXECUTABLE)
|
||||
|
||||
set(DOXYGEN_ARGS
|
||||
ABBREVIATE_BRIEF
|
||||
ALIASES
|
||||
ALLEXTERNALS
|
||||
ALLOW_UNICODE_NAMES
|
||||
ALPHABETICAL_INDEX
|
||||
ALWAYS_DETAILED_SEC
|
||||
AUTOLINK_SUPPORT
|
||||
BINARY_TOC
|
||||
BRIEF_MEMBER_DESC
|
||||
BUILTIN_STL_SUPPORT
|
||||
CALLER_GRAPH
|
||||
CALL_GRAPH
|
||||
CASE_SENSE_NAMES
|
||||
CHM_FILE
|
||||
CHM_INDEX_ENCODING
|
||||
CITE_BIB_FILES
|
||||
CLANG_ASSISTED_PARSING
|
||||
CLANG_OPTIONS
|
||||
CLASS_DIAGRAMS
|
||||
CLASS_GRAPH
|
||||
COLLABORATION_GRAPH
|
||||
COLS_IN_ALPHA_INDEX
|
||||
COMPACT_LATEX
|
||||
COMPACT_RTF
|
||||
CPP_CLI_SUPPORT
|
||||
CREATE_SUBDIRS
|
||||
DIAFILE_DIRS
|
||||
DIA_PATH
|
||||
DIRECTORY_GRAPH
|
||||
DISABLE_INDEX
|
||||
DISTRIBUTE_GROUP_DOC
|
||||
DOCBOOK_OUTPUT
|
||||
DOCBOOK_PROGRAMLISTING
|
||||
DOCSET_BUNDLE_ID
|
||||
DOCSET_FEEDNAME
|
||||
DOCSET_PUBLISHER_ID
|
||||
DOCSET_PUBLISHER_NAME
|
||||
DOTFILE_DIRS
|
||||
DOT_CLEANUP
|
||||
DOT_FONTNAME
|
||||
DOT_FONTPATH
|
||||
DOT_FONTSIZE
|
||||
DOT_GRAPH_MAX_NODES
|
||||
DOT_IMAGE_FORMAT
|
||||
DOT_MULTI_TARGETS
|
||||
DOT_NUM_THREADS
|
||||
# DOT_PATH
|
||||
DOT_TRANSPARENT
|
||||
DOXYFILE_ENCODING
|
||||
ECLIPSE_DOC_ID
|
||||
ENABLED_SECTIONS
|
||||
ENABLE_PREPROCESSING
|
||||
ENUM_VALUES_PER_LINE
|
||||
EXAMPLE_PATH
|
||||
EXAMPLE_PATTERNS
|
||||
EXAMPLE_RECURSIVE
|
||||
EXCLUDE
|
||||
EXCLUDE_PATTERNS
|
||||
EXCLUDE_SYMBOLS
|
||||
EXCLUDE_SYMLINKS
|
||||
EXPAND_AS_DEFINED
|
||||
EXPAND_ONLY_PREDEF
|
||||
EXTENSION_MAPPING
|
||||
EXTERNAL_GROUPS
|
||||
EXTERNAL_PAGES
|
||||
EXTERNAL_SEARCH
|
||||
EXTERNAL_SEARCH_ID
|
||||
EXTRACT_ALL
|
||||
EXTRACT_ANON_NSPACES
|
||||
EXTRACT_LOCAL_CLASSES
|
||||
EXTRACT_LOCAL_METHODS
|
||||
EXTRACT_PACKAGE
|
||||
EXTRACT_PRIVATE
|
||||
EXTRACT_STATIC
|
||||
EXTRA_PACKAGES
|
||||
EXTRA_SEARCH_MAPPINGS
|
||||
EXT_LINKS_IN_WINDOW
|
||||
FILE_PATTERNS
|
||||
FILE_VERSION_FILTER
|
||||
FILTER_PATTERNS
|
||||
FILTER_SOURCE_FILES
|
||||
FILTER_SOURCE_PATTERNS
|
||||
FORCE_LOCAL_INCLUDES
|
||||
FORMULA_FONTSIZE
|
||||
FORMULA_TRANSPARENT
|
||||
FULL_PATH_NAMES
|
||||
GENERATE_AUTOGEN_DEF
|
||||
GENERATE_BUGLIST
|
||||
GENERATE_CHI
|
||||
GENERATE_DEPRECATEDLIST
|
||||
GENERATE_DOCBOOK
|
||||
GENERATE_DOCSET
|
||||
GENERATE_ECLIPSEHELP
|
||||
GENERATE_HTML
|
||||
GENERATE_HTMLHELP
|
||||
GENERATE_LATEX
|
||||
GENERATE_LEGEND
|
||||
GENERATE_MAN
|
||||
GENERATE_PERLMOD
|
||||
GENERATE_QHP
|
||||
GENERATE_RTF
|
||||
GENERATE_TAGFILE
|
||||
GENERATE_TESTLIST
|
||||
GENERATE_TODOLIST
|
||||
GENERATE_TREEVIEW
|
||||
GENERATE_XML
|
||||
GRAPHICAL_HIERARCHY
|
||||
GROUP_GRAPHS
|
||||
GROUP_NESTED_COMPOUNDS
|
||||
# HAVE_DOT
|
||||
HHC_LOCATION
|
||||
HIDE_COMPOUND_REFERENCE
|
||||
HIDE_FRIEND_COMPOUNDS
|
||||
HIDE_IN_BODY_DOCS
|
||||
HIDE_SCOPE_NAMES
|
||||
HIDE_UNDOC_CLASSES
|
||||
HIDE_UNDOC_MEMBERS
|
||||
HIDE_UNDOC_RELATIONS
|
||||
HTML_COLORSTYLE_GAMMA
|
||||
HTML_COLORSTYLE_HUE
|
||||
HTML_COLORSTYLE_SAT
|
||||
HTML_DYNAMIC_SECTIONS
|
||||
HTML_EXTRA_FILES
|
||||
HTML_EXTRA_STYLESHEET
|
||||
HTML_FILE_EXTENSION
|
||||
HTML_FOOTER
|
||||
HTML_HEADER
|
||||
HTML_INDEX_NUM_ENTRIES
|
||||
HTML_OUTPUT
|
||||
HTML_STYLESHEET
|
||||
HTML_TIMESTAMP
|
||||
IDL_PROPERTY_SUPPORT
|
||||
IGNORE_PREFIX
|
||||
IMAGE_PATH
|
||||
INCLUDED_BY_GRAPH
|
||||
INCLUDE_FILE_PATTERNS
|
||||
INCLUDE_GRAPH
|
||||
INCLUDE_PATH
|
||||
INHERIT_DOCS
|
||||
INLINE_GROUPED_CLASSES
|
||||
INLINE_INFO
|
||||
INLINE_INHERITED_MEMB
|
||||
INLINE_SIMPLE_STRUCTS
|
||||
INLINE_SOURCES
|
||||
INPUT
|
||||
INPUT_ENCODING
|
||||
INPUT_FILTER
|
||||
INTERACTIVE_SVG
|
||||
INTERNAL_DOCS
|
||||
JAVADOC_AUTOBRIEF
|
||||
LATEX_BATCHMODE
|
||||
LATEX_BIB_STYLE
|
||||
LATEX_CMD_NAME
|
||||
LATEX_EXTRA_FILES
|
||||
LATEX_EXTRA_STYLESHEET
|
||||
LATEX_FOOTER
|
||||
LATEX_HEADER
|
||||
LATEX_HIDE_INDICES
|
||||
LATEX_OUTPUT
|
||||
LATEX_SOURCE_CODE
|
||||
LATEX_TIMESTAMP
|
||||
LAYOUT_FILE
|
||||
LOOKUP_CACHE_SIZE
|
||||
MACRO_EXPANSION
|
||||
MAKEINDEX_CMD_NAME
|
||||
MAN_EXTENSION
|
||||
MAN_LINKS
|
||||
MAN_OUTPUT
|
||||
MAN_SUBDIR
|
||||
MARKDOWN_SUPPORT
|
||||
MATHJAX_CODEFILE
|
||||
MATHJAX_EXTENSIONS
|
||||
MATHJAX_FORMAT
|
||||
MATHJAX_RELPATH
|
||||
MAX_DOT_GRAPH_DEPTH
|
||||
MAX_INITIALIZER_LINES
|
||||
MSCFILE_DIRS
|
||||
MSCGEN_PATH
|
||||
MULTILINE_CPP_IS_BRIEF
|
||||
OPTIMIZE_FOR_FORTRAN
|
||||
OPTIMIZE_OUTPUT_FOR_C
|
||||
OPTIMIZE_OUTPUT_JAVA
|
||||
OPTIMIZE_OUTPUT_VHDL
|
||||
OUTPUT_DIRECTORY
|
||||
OUTPUT_LANGUAGE
|
||||
PAPER_TYPE
|
||||
PDF_HYPERLINKS
|
||||
PERLMOD_LATEX
|
||||
PERLMOD_MAKEVAR_PREFIX
|
||||
PERLMOD_PRETTY
|
||||
PERL_PATH
|
||||
PLANTUML_CFG_FILE
|
||||
PLANTUML_INCLUDE_PATH
|
||||
PLANTUML_JAR_PATH
|
||||
PREDEFINED
|
||||
PROJECT_BRIEF
|
||||
PROJECT_LOGO
|
||||
PROJECT_NAME
|
||||
PROJECT_NUMBER
|
||||
QCH_FILE
|
||||
QHG_LOCATION
|
||||
QHP_CUST_FILTER_ATTRS
|
||||
QHP_CUST_FILTER_NAME
|
||||
QHP_NAMESPACE
|
||||
QHP_SECT_FILTER_ATTRS
|
||||
QHP_VIRTUAL_FOLDER
|
||||
QT_AUTOBRIEF
|
||||
QUIET
|
||||
RECURSIVE
|
||||
REFERENCED_BY_RELATION
|
||||
REFERENCES_LINK_SOURCE
|
||||
REFERENCES_RELATION
|
||||
REPEAT_BRIEF
|
||||
RTF_EXTENSIONS_FILE
|
||||
RTF_HYPERLINKS
|
||||
RTF_OUTPUT
|
||||
RTF_SOURCE_CODE
|
||||
RTF_STYLESHEET_FILE
|
||||
SEARCHDATA_FILE
|
||||
SEARCHENGINE
|
||||
SEARCHENGINE_URL
|
||||
SEARCH_INCLUDES
|
||||
SEPARATE_MEMBER_PAGES
|
||||
SERVER_BASED_SEARCH
|
||||
SHORT_NAMES
|
||||
SHOW_FILES
|
||||
SHOW_GROUPED_MEMB_INC
|
||||
SHOW_INCLUDE_FILES
|
||||
SHOW_NAMESPACES
|
||||
SHOW_USED_FILES
|
||||
SIP_SUPPORT
|
||||
SKIP_FUNCTION_MACROS
|
||||
SORT_BRIEF_DOCS
|
||||
SORT_BY_SCOPE_NAME
|
||||
SORT_GROUP_NAMES
|
||||
SORT_MEMBERS_CTORS_1ST
|
||||
SORT_MEMBER_DOCS
|
||||
SOURCE_BROWSER
|
||||
SOURCE_TOOLTIPS
|
||||
STRICT_PROTO_MATCHING
|
||||
STRIP_CODE_COMMENTS
|
||||
STRIP_FROM_INC_PATH
|
||||
STRIP_FROM_PATH
|
||||
SUBGROUPING
|
||||
TAB_SIZE
|
||||
TAGFILES
|
||||
TCL_SUBST
|
||||
TEMPLATE_RELATIONS
|
||||
TOC_EXPAND
|
||||
TOC_INCLUDE_HEADINGS
|
||||
TREEVIEW_WIDTH
|
||||
TYPEDEF_HIDES_STRUCT
|
||||
UML_LIMIT_NUM_FIELDS
|
||||
UML_LOOK
|
||||
USE_HTAGS
|
||||
USE_MATHJAX
|
||||
USE_MDFILE_AS_MAINPAGE
|
||||
USE_PDFLATEX
|
||||
VERBATIM_HEADERS
|
||||
WARNINGS
|
||||
WARN_AS_ERROR
|
||||
WARN_FORMAT
|
||||
WARN_IF_DOC_ERROR
|
||||
WARN_IF_UNDOCUMENTED
|
||||
WARN_LOGFILE
|
||||
WARN_NO_PARAMDOC
|
||||
XML_OUTPUT
|
||||
XML_PROGRAMLISTING
|
||||
)
|
||||
|
||||
set(DOXYGEN_CONFIG_FILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen/doxygen.conf" CACHE PATH "Path to generated doxygen configuration file")
|
||||
|
||||
function(add_doxygen_doc)
|
||||
set(options)
|
||||
set(oneValueArgs)
|
||||
set(multiValueArgs DEPENDS ${DOXYGEN_ARGS})
|
||||
|
||||
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
file(WRITE ${DOXYGEN_CONFIG_FILE} "# Auto-generated doxygen configuration file\n")
|
||||
|
||||
foreach(ARG ${DOXYGEN_ARGS})
|
||||
if(PARSE_${ARG})
|
||||
string(REPLACE ";" " " ARG_VALUE ${PARSE_${ARG}})
|
||||
file(APPEND ${DOXYGEN_CONFIG_FILE} "\n${ARG} = ${ARG_VALUE}\n")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(PARSE_OUTPUT_DIRECTORY)
|
||||
if(NOT EXISTS ${PARSE_OUTPUT_DIRECTORY})
|
||||
file(MAKE_DIRECTORY ${PARSE_OUTPUT_DIRECTORY})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(DOT_EXECUTABLE)
|
||||
file(APPEND ${DOXYGEN_CONFIG_FILE} "\nDOT_PATH = \"${DOT_EXECUTABLE}\"\n")
|
||||
file(APPEND ${DOXYGEN_CONFIG_FILE} "\nHAVE_DOT = YES\n")
|
||||
else()
|
||||
file(APPEND ${DOXYGEN_CONFIG_FILE} "\nHAVE_DOT = NO\n")
|
||||
endif()
|
||||
|
||||
add_custom_target(doxygen
|
||||
${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG_FILE}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Building documentation with doxygen"
|
||||
)
|
||||
if(PARSE_OUTPUT_DIRECTORY)
|
||||
clean_doc_output(${PARSE_OUTPUT_DIRECTORY})
|
||||
endif()
|
||||
mark_as_doc(doxygen)
|
||||
if(PARSE_DEPENDS)
|
||||
add_dependencies(doxygen ${PARSE_DEPENDS})
|
||||
endif()
|
||||
endfunction()
|
||||
110
cmake/EnableCompilerWarnings.cmake
Normal file
110
cmake/EnableCompilerWarnings.cmake
Normal file
@@ -0,0 +1,110 @@
|
||||
################################################################################
|
||||
#
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2017 Advanced Micro Devices, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
################################################################################
|
||||
# - 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-sign-compare
|
||||
-Wno-extra-semi-stmt
|
||||
)
|
||||
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
|
||||
)
|
||||
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-deprecated-declarations
|
||||
)
|
||||
endif()
|
||||
add_definitions(${CMAKE_COMPILER_WARNINGS})
|
||||
endforeach()
|
||||
endif ()
|
||||
@@ -4,8 +4,7 @@
|
||||
namespace ck {
|
||||
|
||||
// this enumerate should be synchronized with include/miopen.h
|
||||
typedef enum
|
||||
{
|
||||
using DataTypeEnum_t = enum {
|
||||
Half = 0,
|
||||
Float = 1,
|
||||
Int32 = 2,
|
||||
@@ -14,7 +13,7 @@ typedef enum
|
||||
BFloat16 = 5,
|
||||
Double = 6,
|
||||
Unknown = 100,
|
||||
} DataTypeEnum_t;
|
||||
};
|
||||
|
||||
} // namespace ck
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user