1
# Copyright (c) 2014-present, The osquery authors
3
# This source code is licensed as defined by the LICENSE file found in the
4
# root directory of this source tree.
6
# SPDX-License-Identifier: (Apache-2.0 OR GPL-2.0-only)
9
# Look for the cppcheck executable
10
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
11
set(executable_name "cppcheck")
13
set(optional_path_suffix_list
14
PATH_SUFFIXES bin usr/bin
17
if(NOT "${OSQUERY_TOOLCHAIN_SYSROOT}" STREQUAL "")
18
set(optional_path_list
19
PATHS "${OSQUERY_TOOLCHAIN_SYSROOT}"
22
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
23
set(executable_name "cppcheck")
25
set(optional_path_suffix_list
26
PATH_SUFFIXES usr/local/bin
29
set(executable_name "cppcheck.exe")
32
find_program("CPPCHECK_EXECUTABLE"
33
NAMES "${executable_name}"
34
DOC "Cppcheck executable path"
37
${optional_path_suffix_list}
40
if("${CPPCHECK_EXECUTABLE}" STREQUAL "CPPCHECK_EXECUTABLE-NOTFOUND")
44
# Get the version string
46
COMMAND "${CPPCHECK_EXECUTABLE}" --version
47
OUTPUT_VARIABLE version_output
49
OUTPUT_STRIP_TRAILING_WHITESPACE
52
string(REPLACE "Cppcheck " "" version_output "${version_output}")
53
set(CPPCHECK_VERSION_STRING "${version_output}" PARENT_SCOPE)
55
# Create an imported target
56
add_executable(cppcheck::cppcheck IMPORTED)
58
set_target_properties(
59
cppcheck::cppcheck PROPERTIES
60
IMPORTED_LOCATION "${CPPCHECK_EXECUTABLE}"
64
FindCppcheck("CPPCHECK_EXECUTABLE")
65
mark_as_advanced("CPPCHECK_EXECUTABLE")
67
find_package(PackageHandleStandardArgs REQUIRED)
68
find_package_handle_standard_args(cppcheck
69
REQUIRED_VARS "CPPCHECK_EXECUTABLE"
70
VERSION_VAR "CPPCHECK_VERSION_STRING"