osquery

Форк
0
/
Findcppcheck.cmake 
71 строка · 1.8 Кб
1
# Copyright (c) 2014-present, The osquery authors
2
#
3
# This source code is licensed as defined by the LICENSE file found in the
4
# root directory of this source tree.
5
#
6
# SPDX-License-Identifier: (Apache-2.0 OR GPL-2.0-only)
7

8
function(FindCppcheck)
9
  # Look for the cppcheck executable
10
  if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
11
    set(executable_name "cppcheck")
12

13
    set(optional_path_suffix_list
14
      PATH_SUFFIXES bin usr/bin
15
    )
16

17
    if(NOT "${OSQUERY_TOOLCHAIN_SYSROOT}" STREQUAL "")
18
      set(optional_path_list
19
        PATHS "${OSQUERY_TOOLCHAIN_SYSROOT}"
20
      )
21
    endif()
22
  elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
23
    set(executable_name "cppcheck")
24
    
25
    set(optional_path_suffix_list 
26
      PATH_SUFFIXES usr/local/bin
27
    )
28
  else()
29
    set(executable_name "cppcheck.exe")
30
  endif()
31

32
  find_program("CPPCHECK_EXECUTABLE"
33
    NAMES "${executable_name}"
34
    DOC "Cppcheck executable path"
35

36
    ${optional_path_list}
37
    ${optional_path_suffix_list}
38
  )
39

40
  if("${CPPCHECK_EXECUTABLE}" STREQUAL "CPPCHECK_EXECUTABLE-NOTFOUND")
41
    return()
42
  endif()
43

44
  # Get the version string
45
  execute_process(
46
    COMMAND "${CPPCHECK_EXECUTABLE}" --version
47
    OUTPUT_VARIABLE version_output
48
    ERROR_QUIET
49
    OUTPUT_STRIP_TRAILING_WHITESPACE
50
  )
51

52
  string(REPLACE "Cppcheck " "" version_output "${version_output}")
53
  set(CPPCHECK_VERSION_STRING "${version_output}" PARENT_SCOPE)
54

55
  # Create an imported target
56
  add_executable(cppcheck::cppcheck IMPORTED)
57

58
  set_target_properties(
59
    cppcheck::cppcheck PROPERTIES
60
    IMPORTED_LOCATION "${CPPCHECK_EXECUTABLE}"
61
  )
62
endfunction()
63

64
FindCppcheck("CPPCHECK_EXECUTABLE")
65
mark_as_advanced("CPPCHECK_EXECUTABLE")
66

67
find_package(PackageHandleStandardArgs REQUIRED)
68
find_package_handle_standard_args(cppcheck
69
  REQUIRED_VARS "CPPCHECK_EXECUTABLE"
70
  VERSION_VAR "CPPCHECK_VERSION_STRING"
71
)
72

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.