Select Git revision
cppcheck.cmake
cppcheck.cmake 2.24 KiB
#------------------------------------------------------------------------------
# Project Phoenix
#
# Copyright (c) 2017-2018 RWTH Aachen University, Germany,
# Virtual Reality & Immersive Visualization Group.
#------------------------------------------------------------------------------
# License
#
# Licensed under the 3-Clause BSD License (the "License");
# you may not use this file except in compliance with the License.
# See the file LICENSE for the full text.
# You may obtain a copy of the License at
#
# https://opensource.org/licenses/BSD-3-Clause
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#------------------------------------------------------------------------------
set(CPPCHECK_COMMAND NOTFOUND)
find_program(CPPCHECK_COMMAND NAMES cppcheck cppcheck.exe
PATHS ${CONAN_BIN_DIRS_CPPCHECK} ${CONAN_BIN_DIRS_CPPCHECK_RELEASE}
$ENV{PATH} $ENV{CPPCHECK_DIR})
if(NOT CPPCHECK_COMMAND)
message(SEND_ERROR
" ERROR: Could not find cppcheck.
Having cppcheck is a mandatory requirement.
CMake will not generate the project without it.
Add its location to the environments variables PATH or CPPCHECK_DIR.
However, this should normally be supplied by conan!")
else()
message(STATUS "Use cppcheck from: ${CPPCHECK_COMMAND}")
endif()
set(CPPCHECK_ARGUMENTS --enable=warning,performance,portability,missingInclude,style --suppress=unusedFunction --error-exitcode=1 --quiet --verbose)
if(MSVC)
list(APPEND CPPCHECK_ARGUMENTS --template=vs)
elseif(CLANG)
list(APPEND CPPCHECK_ARGUMENTS --template=clang)
elseif(GCC)
list(APPEND CPPCHECK_ARGUMENTS --template=gcc)
endif()
function(ADD_TEST_CPPCHECK)
set(options)
set(oneValueArgs NAME)
set(multiValueArgs)
cmake_parse_arguments(ARGS
"${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
add_test(NAME ${ARGS_NAME}
COMMAND "${CPPCHECK_COMMAND}" ${CPPCHECK_ARGUMENTS} ${ARGS_UNPARSED_ARGUMENTS})
set_tests_properties(${ARGS_NAME} PROPERTIES TIMEOUT 20.0)
endfunction()