blob: bee950074edfc8a1ec3bcf9f66f4da7524755461 [file] [log] [blame]
#
# SPDX-License-Identifier: BSD-3-Clause
# SPDX-FileCopyrightText: Copyright TF-RMM Contributors.
#
arm_config_option(
NAME RMM_STATIC_ANALYSIS
HELP "Enable static analysis checkers.")
add_subdirectory("cbmc")
#
# Additional static checks build targets
#
#
# Rules for checkpatch
#
add_custom_target(checkcodebase
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCHECKCODEBASE_RUN=1 -P ${CMAKE_SOURCE_DIR}/tools/checkpatch/CheckPatch.cmake
)
add_custom_target(checkpatch
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCHECKPATCH_RUN=1 -P ${CMAKE_SOURCE_DIR}/tools/checkpatch/CheckPatch.cmake
)
#
# Rules for checking license and copyright headers
#
add_custom_target(checkspdx-codebase
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCHECKSPDX_CODEBASE=1 -P ${CMAKE_SOURCE_DIR}/tools/checkspdx/CheckSPDX.cmake
)
add_custom_target(checkspdx-patch
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCHECKSPDX_PATCH=1 -P ${CMAKE_SOURCE_DIR}/tools/checkspdx/CheckSPDX.cmake
)
#
# Rules for checking header files include order
#
add_custom_target(checkincludes-codebase
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCHECKINCLUDES_CODEBASE=1 -P ${CMAKE_SOURCE_DIR}/tools/checkincludes/CheckIncludes.cmake
)
add_custom_target(checkincludes-patch
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCHECKINCLUDES_PATCH=1 -P ${CMAKE_SOURCE_DIR}/tools/checkincludes/CheckIncludes.cmake
)
#
# Rules for running clang-tidy checks
#
# Pass through the value of RMM_TOOLCHAIN as this must be verified before
# clang-tidy can be run.
#
# Also pass through the build directory as this cannot be accessed when the
# clang-tidy target is built.
#
add_custom_target(clang-tidy-codebase
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCLANG-TIDY_CODEBASE=1
-DRMM_TOOLCHAIN=${RMM_TOOLCHAIN}
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-P ${CMAKE_SOURCE_DIR}/tools/clang-tidy/clang-tidy.cmake
)
add_custom_target(clang-tidy-patch
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND} -DCLANG-TIDY_PATCH=1
-DRMM_TOOLCHAIN=${RMM_TOOLCHAIN}
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-P ${CMAKE_SOURCE_DIR}/tools/clang-tidy/clang-tidy.cmake
)
#
# Rules for running CPPCheck
#
add_custom_target(cppcheck
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND}
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-P ${CMAKE_SOURCE_DIR}/tools/cppcheck/CPPCheck.cmake
)
add_custom_target(cppcheck-misra
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${CMAKE_COMMAND}
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
-DBUILD_DIR=${CMAKE_BINARY_DIR}
-DCPPCHECK_MISRA=1
-P ${CMAKE_SOURCE_DIR}/tools/cppcheck/CPPCheck.cmake
)