FindLibHaru.cmake
Go to the documentation of this file.
1 find_path(LibHaru_INCLUDE_DIR
2  NAMES hpdf.h
3  DOC "libharu include directory")
4 mark_as_advanced(LibHaru_INCLUDE_DIR)
5 
6 find_library(LibHaru_LIBRARY_RELEASE
7  NAMES hpdf hpdfs libhpdf libhpdfs
8  DOC "libharu release library")
9 mark_as_advanced(LibHaru_LIBRARY_RELEASE)
10 find_library(LibHaru_LIBRARY_DEBUG
11  NAMES hpdfd hpdfsd libhpdfd libhpdfsd
12  DOC "libharu debug library")
13 mark_as_advanced(LibHaru_LIBRARY_DEBUG)
14 
15 if (LibHaru_INCLUDE_DIR)
16  file(STRINGS "${LibHaru_INCLUDE_DIR}/hpdf_version.h" _libharu_version_lines
17  REGEX "#define HPDF_(MAJOR|MINOR|BUGFIX|EXTRA)_VERSION")
18  string(REGEX REPLACE ".*HPDF_MAJOR_VERSION *\([0-9]*\).*" "\\1" _libharu_version_major "${_libharu_version_lines}")
19  string(REGEX REPLACE ".*HPDF_MINOR_VERSION *\([0-9]*\).*" "\\1" _libharu_version_minor "${_libharu_version_lines}")
20  string(REGEX REPLACE ".*HPDF_BUGFIX_VERSION *\([0-9]*\).*" "\\1" _libharu_version_bugfix "${_libharu_version_lines}")
21  string(REGEX REPLACE ".*HPDF_EXTRA_VERSION *\"\([^\"]*\)\".*" "\\1" _libharu_version_extra "${_libharu_version_lines}")
22  set(LibHaru_VERSION "${_libharu_version_major}.${_libharu_version_minor}.${_libharu_version_bugfix}")
23  if (_libharu_version_extra)
24  string(APPEND LibHaru_VERSION
25  "-${_libharu_version_extra}")
26  endif ()
27  unset(_libharu_version_major)
28  unset(_libharu_version_minor)
29  unset(_libharu_version_bugfix)
30  unset(_libharu_version_extra)
31  unset(_libharu_version_lines)
32 endif ()
33 
34 include(SelectLibraryConfigurations)
35 select_library_configurations(LibHaru)
36 
37 include(FindPackageHandleStandardArgs)
38 find_package_handle_standard_args(LibHaru
39  REQUIRED_VARS LibHaru_LIBRARY LibHaru_INCLUDE_DIR
40  VERSION_VAR LibHaru_VERSION)
41 
42 if (LibHaru_FOUND)
43  set(LibHaru_INCLUDE_DIRS "${LibHaru_INCLUDE_DIR}")
44  set(LibHaru_LIBRARIES "${LibHaru_LIBRARY}")
45 
46  if (NOT TARGET LibHaru::LibHaru)
47  include(vtkDetectLibraryType)
48  set(libharu_library_type UNKNOWN)
49  if (LibHaru_LIBRARY_RELEASE)
50  vtk_detect_library_type(libharu_release_library_type
51  PATH "${LibHaru_LIBRARY_RELEASE}")
52  endif ()
53  if (LibHaru_LIBRARY_DEBUG)
54  vtk_detect_library_type(libharu_debug_library_type
55  PATH "${LibHaru_LIBRARY_DEBUG}")
56  endif ()
57  if (libharu_release_library_type AND libharu_debug_library_type)
58  if (libharu_release_library_type STREQUAL libharu_debug_library_type)
59  set(libharu_library_type "${libharu_release_library_type}")
60  endif ()
61  elseif (libharu_release_library_type)
62  set(libharu_library_type "${libharu_release_library_type}")
63  elseif (libharu_debug_library_type)
64  set(libharu_library_type "${libharu_debug_library_type}")
65  endif ()
66  add_library(LibHaru::LibHaru "${libharu_library_type}" IMPORTED)
67  unset(libharu_release_library_type)
68  unset(libharu_debug_library_type)
69  unset(libharu_library_type)
70  set_target_properties(LibHaru::LibHaru PROPERTIES
71  INTERFACE_INCLUDE_DIRECTORIES "${LibHaru_INCLUDE_DIR}")
72  if (LibHaru_LIBRARY_RELEASE)
73  set_property(TARGET LibHaru::LibHaru APPEND PROPERTY
74  IMPORTED_CONFIGURATIONS RELEASE)
75  set_target_properties(LibHaru::LibHaru PROPERTIES
76  IMPORTED_LOCATION_RELEASE "${LibHaru_LIBRARY_RELEASE}"
77  IMPORTED_IMPLIB_RELEASE "${LibHaru_LIBRARY_RELEASE}")
78  endif ()
79  if (LibHaru_LIBRARY_DEBUG)
80  set_property(TARGET LibHaru::LibHaru APPEND PROPERTY
81  IMPORTED_CONFIGURATIONS DEBUG)
82  set_target_properties(LibHaru::LibHaru PROPERTIES
83  IMPORTED_LOCATION_DEBUG "${LibHaru_LIBRARY_DEBUG}"
84  IMPORTED_IMPLIB_DEBUG "${LibHaru_LIBRARY_DEBUG}")
85  endif ()
86  endif ()
87 endif ()
string