Changeset View
Changeset View
Standalone View
Standalone View
find-modules/FindEGL.cmake
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Line(s) | |||||
56 | # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 56 | # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
57 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 57 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
58 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 58 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
59 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 59 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
60 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 60 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
61 | #============================================================================= | 61 | #============================================================================= | ||
62 | 62 | | |||
63 | include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) | 63 | include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) | ||
64 | include(CheckCXXSourceCompiles) | ||||
65 | include(CMakePushCheckState) | ||||
64 | 66 | | |||
65 | ecm_find_package_version_check(EGL) | 67 | ecm_find_package_version_check(EGL) | ||
66 | 68 | | |||
67 | # Use pkg-config to get the directories and then use these values | 69 | # Use pkg-config to get the directories and then use these values | ||
68 | # in the FIND_PATH() and FIND_LIBRARY() calls | 70 | # in the FIND_PATH() and FIND_LIBRARY() calls | ||
69 | find_package(PkgConfig) | 71 | find_package(PkgConfig) | ||
70 | pkg_check_modules(PKG_EGL QUIET egl) | 72 | pkg_check_modules(PKG_EGL QUIET egl) | ||
71 | 73 | | |||
Show All 38 Lines | 105 | foreach(_EGL_version_line ${_EGL_version_lines}) | |||
110 | string(REPLACE "_" "." _version_candidate "${_version_candidate}") | 112 | string(REPLACE "_" "." _version_candidate "${_version_candidate}") | ||
111 | if(NOT DEFINED EGL_VERSION OR EGL_VERSION VERSION_LESS _version_candidate) | 113 | if(NOT DEFINED EGL_VERSION OR EGL_VERSION VERSION_LESS _version_candidate) | ||
112 | set(EGL_VERSION "${_version_candidate}") | 114 | set(EGL_VERSION "${_version_candidate}") | ||
113 | endif() | 115 | endif() | ||
114 | endforeach() | 116 | endforeach() | ||
115 | unset(_EGL_version_lines) | 117 | unset(_EGL_version_lines) | ||
116 | endif() | 118 | endif() | ||
117 | 119 | | |||
120 | cmake_push_check_state(RESET) | ||||
121 | list(APPEND CMAKE_REQUIRED_LIBRARIES "${EGL_LIBRARY}") | ||||
122 | list(APPEND CMAKE_REQUIRED_INCLUDES "${EGL_INCLUDE_DIR}") | ||||
123 | | ||||
124 | check_cxx_source_compiles(" | ||||
125 | #include <EGL/egl.h> | ||||
126 | | ||||
127 | int main(int argc, char *argv[]) { | ||||
128 | EGLint x = 0; EGLDisplay dpy = 0; EGLContext ctx = 0; | ||||
129 | eglDestroyContext(dpy, ctx); | ||||
130 | }" HAVE_EGL) | ||||
131 | | ||||
132 | cmake_pop_check_state() | ||||
133 | | ||||
118 | include(FindPackageHandleStandardArgs) | 134 | include(FindPackageHandleStandardArgs) | ||
119 | find_package_handle_standard_args(EGL | 135 | find_package_handle_standard_args(EGL | ||
120 | FOUND_VAR | 136 | FOUND_VAR | ||
121 | EGL_FOUND | 137 | EGL_FOUND | ||
122 | REQUIRED_VARS | 138 | REQUIRED_VARS | ||
123 | EGL_LIBRARY | 139 | EGL_LIBRARY | ||
124 | EGL_INCLUDE_DIR | 140 | EGL_INCLUDE_DIR | ||
141 | HAVE_EGL | ||||
125 | VERSION_VAR | 142 | VERSION_VAR | ||
126 | EGL_VERSION | 143 | EGL_VERSION | ||
127 | ) | 144 | ) | ||
128 | 145 | | |||
129 | if(EGL_FOUND AND NOT TARGET EGL::EGL) | 146 | if(EGL_FOUND AND NOT TARGET EGL::EGL) | ||
130 | add_library(EGL::EGL UNKNOWN IMPORTED) | 147 | add_library(EGL::EGL UNKNOWN IMPORTED) | ||
131 | set_target_properties(EGL::EGL PROPERTIES | 148 | set_target_properties(EGL::EGL PROPERTIES | ||
132 | IMPORTED_LOCATION "${EGL_LIBRARY}" | 149 | IMPORTED_LOCATION "${EGL_LIBRARY}" | ||
133 | INTERFACE_COMPILE_OPTIONS "${EGL_DEFINITIONS}" | 150 | INTERFACE_COMPILE_OPTIONS "${EGL_DEFINITIONS}" | ||
134 | INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}" | 151 | INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}" | ||
135 | ) | 152 | ) | ||
136 | endif() | 153 | endif() | ||
137 | 154 | | |||
138 | mark_as_advanced(EGL_LIBRARY EGL_INCLUDE_DIR) | 155 | mark_as_advanced(EGL_LIBRARY EGL_INCLUDE_DIR HAVE_EGL) | ||
139 | 156 | | |||
140 | # compatibility variables | 157 | # compatibility variables | ||
141 | set(EGL_LIBRARIES ${EGL_LIBRARY}) | 158 | set(EGL_LIBRARIES ${EGL_LIBRARY}) | ||
142 | set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR}) | 159 | set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR}) | ||
143 | set(EGL_VERSION_STRING ${EGL_VERSION}) | 160 | set(EGL_VERSION_STRING ${EGL_VERSION}) | ||
144 | 161 | | |||
145 | include(FeatureSummary) | 162 | include(FeatureSummary) | ||
146 | set_package_properties(EGL PROPERTIES | 163 | set_package_properties(EGL PROPERTIES | ||
147 | URL "https://www.khronos.org/egl/" | 164 | URL "https://www.khronos.org/egl/" | ||
148 | DESCRIPTION "A platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES and OpenVG." | 165 | DESCRIPTION "A platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES and OpenVG." | ||
149 | ) | 166 | ) |