-
Notifications
You must be signed in to change notification settings - Fork 5
/
FindGLIB2.cmake
126 lines (111 loc) · 2.83 KB
/
FindGLIB2.cmake
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
117
118
119
120
121
122
123
124
125
126
#
# - Try to find the GLIB2 libraries
# Once done this will define
#
# GLIB2_FOUND - system has glib2
# GLIB2_INCLUDE_DIRS - the glib2 include directory
# GLIB2_LIBRARIES - glib2 library
# GLIB2_DLL_DIR - (Windows) Path to required GLib2 DLLs.
# GLIB2_DLLS - (Windows) List of required GLib2 DLLs.
# Copyright (c) 2008 Laurent Montel, <[email protected]>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if( GLIB2_MAIN_INCLUDE_DIR AND GLIB2_LIBRARIES )
# Already in cache, be silent
set( GLIB2_FIND_QUIETLY TRUE )
endif()
include( FindWSWinLibs )
if( ENABLE_GTK3 )
FindWSWinLibs( "gtk3" "GLIB2_HINTS" )
else()
FindWSWinLibs( "gtk2" "GLIB2_HINTS" )
endif()
find_package( PkgConfig )
if( GLIB2_MIN_VERSION )
pkg_search_module( GLIB2 glib-2.0>=${GLIB2_MIN_VERSION} )
else()
pkg_search_module( GLIB2 glib-2.0 )
endif()
find_path( GLIB2_MAIN_INCLUDE_DIR
NAMES
glib.h
HINTS
"${GLIB2_INCLUDEDIR}"
"${GLIB2_HINTS}/include"
PATH_SUFFIXES
glib-2.0
glib-2.0/include
PATHS
/opt/gnome/include
/opt/local/include
/sw/include
/usr/include
/usr/local/include
)
find_library( GLIB2_LIBRARY
NAMES
glib-2.0
libglib-2.0
HINTS
"${GLIB2_LIBDIR}"
"${GLIB2_HINTS}/lib"
PATHS
/opt/gnome/lib64
/opt/gnome/lib
/opt/lib/
/opt/local/lib
/sw/lib/
/usr/lib64
/usr/lib
)
# search the glibconfig.h include dir under the same root where the library is found
get_filename_component( glib2LibDir "${GLIB2_LIBRARY}" PATH)
find_path( GLIB2_INTERNAL_INCLUDE_DIR
NAMES
glibconfig.h
HINTS
"${GLIB2_INCLUDEDIR}"
"${glib2LibDir}"
${CMAKE_SYSTEM_LIBRARY_PATH}
PATH_SUFFIXES
glib-2.0/include
PATHS
${GLIB2_LIBRARY}
)
include( FindPackageHandleStandardArgs )
find_package_handle_standard_args( GLIB2
DEFAULT_MSG
GLIB2_LIBRARY
GLIB2_MAIN_INCLUDE_DIR
)
if( GLIB2_FOUND )
set( GLIB2_LIBRARIES ${GLIB2_LIBRARY} )
set( GLIB2_INCLUDE_DIRS ${GLIB2_MAIN_INCLUDE_DIR} ${GLIB2_INTERNAL_INCLUDE_DIR} )
if ( WIN32 AND GLIB2_FOUND )
set ( GLIB2_DLL_DIR "${GLIB2_HINTS}/bin"
CACHE PATH "Path to GLib 2 DLLs"
)
file( GLOB _glib2_dlls RELATIVE "${GLIB2_DLL_DIR}"
"${GLIB2_DLL_DIR}/libglib-*.dll"
"${GLIB2_DLL_DIR}/libgio-*.dll"
"${GLIB2_DLL_DIR}/libgmodule-*.dll"
"${GLIB2_DLL_DIR}/libgobject-*.dll"
"${GLIB2_DLL_DIR}/libintl-*.dll"
"${GLIB2_DLL_DIR}/libgcc_s_*.dll"
)
set ( GLIB2_DLLS ${_glib2_dlls}
# We're storing filenames only. Should we use STRING instead?
CACHE FILEPATH "GLib 2 DLL list"
)
mark_as_advanced( GLIB2_DLL_DIR GLIB2_DLLS )
endif()
elseif( GLIB2_FIND_REQUIRED )
message( SEND_ERROR "Package required but not found" )
else()
set( GLIB2_LIBRARIES )
set( GLIB2_MAIN_INCLUDE_DIRS )
set( GLIB2_DLL_DIR )
set( GLIB2_DLLS )
endif()
mark_as_advanced( GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES )