Changeset View
Changeset View
Standalone View
Standalone View
cmake/modules/Findgbm.cmake
- This file was added.
1 | #.rst: | ||||
---|---|---|---|---|---|
2 | # Findgbm | ||||
3 | # ------- | ||||
4 | # | ||||
5 | # Try to find gbm on a Unix system. | ||||
6 | # | ||||
7 | # This will define the following variables: | ||||
8 | # | ||||
9 | # ``gbm_FOUND`` | ||||
10 | # True if (the requested version of) gbm is available | ||||
11 | # ``gbm_VERSION`` | ||||
12 | # The version of gbm | ||||
13 | # ``gbm_LIBRARIES`` | ||||
14 | # This can be passed to target_link_libraries() instead of the ``gbm::gbm`` | ||||
15 | # target | ||||
16 | # ``gbm_INCLUDE_DIRS`` | ||||
17 | # This should be passed to target_include_directories() if the target is not | ||||
18 | # used for linking | ||||
19 | # ``gbm_DEFINITIONS`` | ||||
20 | # This should be passed to target_compile_options() if the target is not | ||||
21 | # used for linking | ||||
22 | # | ||||
23 | # If ``gbm_FOUND`` is TRUE, it will also define the following imported target: | ||||
24 | # | ||||
25 | # ``gbm::gbm`` | ||||
26 | # The gbm library | ||||
27 | # | ||||
28 | # In general we recommend using the imported target, as it is easier to use. | ||||
29 | # Bear in mind, however, that if the target is in the link interface of an | ||||
30 | # exported library, it must be made available by the package config file. | ||||
31 | | ||||
32 | #============================================================================= | ||||
33 | # Copyright 2014 Alex Merry <alex.merry@kde.org> | ||||
34 | # Copyright 2014 Martin Gräßlin <mgraesslin@kde.org> | ||||
35 | # | ||||
36 | # Redistribution and use in source and binary forms, with or without | ||||
37 | # modification, are permitted provided that the following conditions | ||||
38 | # are met: | ||||
39 | # | ||||
40 | # 1. Redistributions of source code must retain the copyright | ||||
41 | # notice, this list of conditions and the following disclaimer. | ||||
42 | # 2. Redistributions in binary form must reproduce the copyright | ||||
43 | # notice, this list of conditions and the following disclaimer in the | ||||
44 | # documentation and/or other materials provided with the distribution. | ||||
45 | # 3. The name of the author may not be used to endorse or promote products | ||||
46 | # derived from this software without specific prior written permission. | ||||
47 | # | ||||
48 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||||
49 | # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||||
50 | # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||||
51 | # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||
52 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||
53 | # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
54 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
55 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
56 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
57 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
58 | #============================================================================= | ||||
59 | | ||||
60 | if(CMAKE_VERSION VERSION_LESS 2.8.12) | ||||
61 | message(FATAL_ERROR "CMake 2.8.12 is required by Findgbm.cmake") | ||||
62 | endif() | ||||
63 | if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12) | ||||
64 | message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use Findgbm.cmake") | ||||
65 | endif() | ||||
66 | | ||||
67 | if(NOT WIN32) | ||||
68 | # Use pkg-config to get the directories and then use these values | ||||
69 | # in the FIND_PATH() and FIND_LIBRARY() calls | ||||
70 | find_package(PkgConfig) | ||||
71 | pkg_check_modules(PKG_gbm QUIET gbm) | ||||
72 | | ||||
73 | set(gbm_DEFINITIONS ${PKG_gbm_CFLAGS_OTHER}) | ||||
74 | set(gbm_VERSION ${PKG_gbm_VERSION}) | ||||
75 | | ||||
76 | find_path(gbm_INCLUDE_DIR | ||||
77 | NAMES | ||||
78 | gbm.h | ||||
79 | HINTS | ||||
80 | ${PKG_gbm_INCLUDE_DIRS} | ||||
81 | ) | ||||
82 | find_library(gbm_LIBRARY | ||||
83 | NAMES | ||||
84 | gbm | ||||
85 | HINTS | ||||
86 | ${PKG_gbm_LIBRARY_DIRS} | ||||
87 | ) | ||||
88 | | ||||
89 | include(FindPackageHandleStandardArgs) | ||||
90 | find_package_handle_standard_args(gbm | ||||
91 | FOUND_VAR | ||||
92 | gbm_FOUND | ||||
93 | REQUIRED_VARS | ||||
94 | gbm_LIBRARY | ||||
95 | gbm_INCLUDE_DIR | ||||
96 | VERSION_VAR | ||||
97 | gbm_VERSION | ||||
98 | ) | ||||
99 | | ||||
100 | if(gbm_FOUND AND NOT TARGET gbm::gbm) | ||||
101 | add_library(gbm::gbm UNKNOWN IMPORTED) | ||||
102 | set_target_properties(gbm::gbm PROPERTIES | ||||
103 | IMPORTED_LOCATION "${gbm_LIBRARY}" | ||||
104 | INTERFACE_COMPILE_OPTIONS "${gbm_DEFINITIONS}" | ||||
105 | INTERFACE_INCLUDE_DIRECTORIES "${gbm_INCLUDE_DIR}" | ||||
106 | ) | ||||
107 | endif() | ||||
108 | | ||||
109 | mark_as_advanced(gbm_LIBRARY gbm_INCLUDE_DIR) | ||||
110 | | ||||
111 | # compatibility variables | ||||
112 | set(gbm_LIBRARIES ${gbm_LIBRARY}) | ||||
113 | set(gbm_INCLUDE_DIRS ${gbm_INCLUDE_DIR}) | ||||
114 | set(gbm_VERSION_STRING ${gbm_VERSION}) | ||||
115 | | ||||
116 | else() | ||||
117 | message(STATUS "Findgbm.cmake cannot find gbm on Windows systems.") | ||||
118 | set(gbm_FOUND FALSE) | ||||
119 | endif() | ||||
120 | | ||||
121 | include(FeatureSummary) | ||||
122 | set_package_properties(gbm PROPERTIES | ||||
123 | URL "http://www.mesa3d.org" | ||||
124 | DESCRIPTION "Mesa gbm library." | ||||
125 | ) |