File: FindJsonCpp.cmake

package info (click to toggle)
paraview 5.11.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 497,236 kB
  • sloc: cpp: 3,171,290; ansic: 1,315,072; python: 134,290; xml: 103,324; sql: 65,887; sh: 5,286; javascript: 4,901; yacc: 4,383; java: 3,977; perl: 2,363; lex: 1,909; f90: 1,255; objc: 143; makefile: 119; tcl: 59; pascal: 50; fortran: 29
file content (44 lines) | stat: -rw-r--r-- 1,830 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
find_path(JsonCpp_INCLUDE_DIR "json/json.h"
  PATH_SUFFIXES "jsoncpp"
  DOC "jsoncpp include directory")
mark_as_advanced(JsonCpp_INCLUDE_DIR)

find_library(JsonCpp_LIBRARY
  NAMES jsoncpp
  DOC "jsoncpp library")
mark_as_advanced(JsonCpp_LIBRARY)

if (JsonCpp_INCLUDE_DIR AND EXISTS "${JsonCpp_INCLUDE_DIR}/json/version.h")
  file(STRINGS "${JsonCpp_INCLUDE_DIR}/json/version.h" _JsonCpp_version_lines
    REGEX "JSONCPP_VERSION_[A-Z]+")
  string(REGEX REPLACE ".*# *define +JSONCPP_VERSION_MAJOR +([0-9]+).*" "\\1" _JsonCpp_version_major "${_JsonCpp_version_lines}")
  string(REGEX REPLACE ".*# *define +JSONCPP_VERSION_MINOR +([0-9]+).*" "\\1" _JsonCpp_version_minor "${_JsonCpp_version_lines}")
  string(REGEX REPLACE ".*# *define +JSONCPP_VERSION_PATCH +([0-9]+).*" "\\1" _JsonCpp_version_patch "${_JsonCpp_version_lines}")
  set(JsonCpp_VERSION "${_JsonCpp_version_major}.${_JsonCpp_version_minor}.${_JsonCpp_version_patch}")
  unset(_JsonCpp_version_major)
  unset(_JsonCpp_version_minor)
  unset(_JsonCpp_version_patch)
  unset(_JsonCpp_version_lines)
endif ()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(JsonCpp
  REQUIRED_VARS JsonCpp_LIBRARY JsonCpp_INCLUDE_DIR
  VERSION_VAR JsonCpp_VERSION)

if (JsonCpp_FOUND)
  set(JsonCpp_INCLUDE_DIRS "${JsonCpp_INCLUDE_DIR}")
  set(JsonCpp_LIBRARIES "${JsonCpp_LIBRARY}")

  if (NOT TARGET JsonCpp::JsonCpp)
    include(vtkDetectLibraryType)
    vtk_detect_library_type(jsoncpp_library_type
      PATH "${JsonCpp_LIBRARY}")
    add_library(JsonCpp::JsonCpp "${jsoncpp_library_type}" IMPORTED)
    unset(jsoncpp_library_type)
    set_target_properties(JsonCpp::JsonCpp PROPERTIES
      IMPORTED_LOCATION "${JsonCpp_LIBRARY}"
      IMPORTED_IMPLIB "${JsonCpp_LIBRARY}"
      INTERFACE_INCLUDE_DIRECTORIES "${JsonCpp_INCLUDE_DIR}")
  endif ()
endif ()