blob: ef6a57654e4dfd2828991ac056b3107608498e1f (
plain)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindDeflate
--------
Find the native Deflate includes and library.
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines :prop_tgt:`IMPORTED` target ``Deflate::Deflate``, if
Deflate has been found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
::
Deflate_INCLUDE_DIRS - where to find deflate.h, etc.
Deflate_LIBRARIES - List of libraries when using deflate.
Deflate_FOUND - True if deflate found.
::
Deflate_VERSION_STRING - The version of deflate found (x.y.z)
Deflate_VERSION_MAJOR - The major version of deflate
Deflate_VERSION_MINOR - The minor version of deflate
Debug and Release variants are found separately.
#]=======================================================================]
# Standard names to search for
set(Deflate_NAMES deflate deflatestatic)
set(Deflate_NAMES_DEBUG deflated deflatestaticd)
find_path(Deflate_INCLUDE_DIR
NAMES libdeflate.h
PATH_SUFFIXES include)
set(Deflate_OLD_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
# Library has a "lib" prefix even on Windows.
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
# Allow Deflate_LIBRARY to be set manually, as the location of the deflate library
if(NOT Deflate_LIBRARY)
find_library(Deflate_LIBRARY_RELEASE
NAMES ${Deflate_NAMES}
PATH_SUFFIXES lib)
find_library(Deflate_LIBRARY_DEBUG
NAMES ${Deflate_NAMES_DEBUG}
PATH_SUFFIXES lib)
include(SelectLibraryConfigurations)
select_library_configurations(Deflate)
endif()
set(CMAKE_FIND_LIBRARY_PREFIXES "${Deflate_OLD_FIND_LIBRARY_PREFIXES}")
unset(Deflate_NAMES)
unset(Deflate_NAMES_DEBUG)
unset(Deflate_OLD_FIND_LIBRARY_PREFIXES)
mark_as_advanced(Deflate_INCLUDE_DIR)
if(Deflate_INCLUDE_DIR AND EXISTS "${Deflate_INCLUDE_DIR}/deflate.h")
file(STRINGS "${Deflate_INCLUDE_DIR}/libdeflate.h" Deflate_H REGEX "^#define LIBDEFLATE_VERSION_STRING\s+\"[^\"]*\"$")
string(REGEX REPLACE "^.*Deflate_VERSION \"([0-9]+).*$" "\\1" Deflate_MAJOR_VERSION "${Deflate_H}")
string(REGEX REPLACE "^.*Deflate_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" Deflate_MINOR_VERSION "${Deflate_H}")
set(Deflate_VERSION_STRING "${Deflate_MAJOR_VERSION}.${Deflate_MINOR_VERSION}")
set(Deflate_MAJOR_VERSION "${Deflate_VERSION_MAJOR}")
set(Deflate_MINOR_VERSION "${Deflate_VERSION_MINOR}")
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Deflate
REQUIRED_VARS Deflate_LIBRARY Deflate_INCLUDE_DIR
VERSION_VAR Deflate_VERSION_STRING)
if(Deflate_FOUND)
set(Deflate_INCLUDE_DIRS ${Deflate_INCLUDE_DIR})
if(NOT Deflate_LIBRARIES)
set(Deflate_LIBRARIES ${Deflate_LIBRARY})
endif()
if(NOT TARGET Deflate::Deflate)
add_library(Deflate::Deflate UNKNOWN IMPORTED)
set_target_properties(Deflate::Deflate PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${Deflate_INCLUDE_DIRS}")
if(Deflate_LIBRARY_RELEASE)
set_property(TARGET Deflate::Deflate APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(Deflate::Deflate PROPERTIES
IMPORTED_LOCATION_RELEASE "${Deflate_LIBRARY_RELEASE}")
endif()
if(Deflate_LIBRARY_DEBUG)
set_property(TARGET Deflate::Deflate APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(Deflate::Deflate PROPERTIES
IMPORTED_LOCATION_DEBUG "${Deflate_LIBRARY_DEBUG}")
endif()
if(NOT Deflate_LIBRARY_RELEASE AND NOT Deflate_LIBRARY_DEBUG)
set_target_properties(Deflate::Deflate PROPERTIES
IMPORTED_LOCATION_RELEASE "${Deflate_LIBRARY}")
endif()
endif()
endif()
|