# # 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 )