-
Notifications
You must be signed in to change notification settings - Fork 73
/
Copy pathFindGLFW.cmake
153 lines (120 loc) · 3.04 KB
/
FindGLFW.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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# GLFW_FOUND
# GLFW_INCLUDE_DIR
# GLFW_LIBRARY_RELEASE
# GLFW_LIBRARY_DEBUG
# GLFW_LIBRARIES
# GLFW_BINARY (win32 only)
include(FindPackageHandleStandardArgs)
find_path(GLFW_INCLUDE_DIR GLFW/glfw3.h
PATHS
$ENV{GLFW_DIR}
/usr
/usr/local
/usr/include/GL
/sw
/opt/local
/opt/graphics/OpenGL
/opt/graphics/OpenGL/contrib/libglfw
PATH_SUFFIXES
/include
DOC "The directory where GLFW/glfw.h resides")
set(GLFW_LIB_SUFFIX "")
if(MSVC14)
set(GLFW_LIB_SUFFIX "vc2015")
elseif(MSVS12)
set(GLFW_LIB_SUFFIX "vc2013")
elseif(MSVC11)
set(GLFW_LIB_SUFFIX "vc2012")
elseif(MSVC10)
set(GLFW_LIB_SUFFIX "vc2010")
elseif(MINGW)
if(X64)
set(GLFW_LIB_SUFFIX "mingw-w64")
else()
set(GLFW_LIB_SUFFIX "mingw")
endif()
endif()
set(GLFW_NAMES glfw3 glfw)
set(GLFW_DEBUG_NAMES glfw3d glfwd)
if(WIN32)
option(GLFW_SHARED "Use shared GLFW library (DLL)" ON)
if(GLFW_SHARED)
set(GLFW_NAMES glfw3dll glfwdll)
set(GLFW_DEBUG_NAMES glfw3ddll glfwddll)
endif()
endif()
find_library(GLFW_LIBRARY_RELEASE NAMES ${GLFW_NAMES}
HINTS
${GLFW_INCLUDE_DIR}/..
PATHS
$ENV{GLFW_DIR}
/lib/x64
/lib/cocoa
/usr
/usr/local
/sw
/opt/local
# authors prefered choice for development
/build
/build-release
$ENV{GLFW_DIR}/build
$ENV{GLFW_DIR}/build-release
PATH_SUFFIXES
/lib
/lib64
/lib-${GLFW_LIB_SUFFIX}
/src # for from-source builds
DOC "The GLFW library")
find_library(GLFW_LIBRARY_DEBUG NAMES ${GLFW_DEBUG_NAMES}
HINTS
${GLFW_INCLUDE_DIR}/..
PATHS
$ENV{GLFW_DIR}
/lib/x64
/lib/cocoa
/usr
/usr/local
/sw
/opt/local
# authors prefered choice for development
/build
/build-debug
$ENV{GLFW_DIR}/build
$ENV{GLFW_DIR}/build-debug
PATH_SUFFIXES
/lib
/lib64
/src # for from-source builds
DOC "The GLFW library")
set(GLFW_LIBRARIES "")
if(GLFW_LIBRARY_RELEASE AND GLFW_LIBRARY_DEBUG)
set(GLFW_LIBRARIES
optimized ${GLFW_LIBRARY_RELEASE}
debug ${GLFW_LIBRARY_DEBUG})
elseif(GLFW_LIBRARY_RELEASE)
set(GLFW_LIBRARIES ${GLFW_LIBRARY_RELEASE})
elseif(GLFW_LIBRARY_DEBUG)
set(GLFW_LIBRARIES ${GLFW_LIBRARY_DEBUG})
endif()
if(WIN32 AND GLFW_SHARED)
find_file(GLFW_BINARY glfw3.dll
HINTS
${GLFW_INCLUDE_DIR}/..
PATHS
$ENV{GLFW_DIR}
/lib/x64
/lib/cocoa
PATH_SUFFIXES
/lib
/bin
/lib-${GLFW_LIB_SUFFIX}
DOC "The GLFW binary")
endif()
if(APPLE)
set(GLFW_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX")
set(GLFW_iokit_LIBRARY "-framework IOKit" CACHE STRING "IOKit framework for OSX")
set(GLFW_corevideo_LIBRARY "-framework CoreVideo" CACHE STRING "CoreVideo framework for OSX")
endif()
# GLFW is required to link statically for now (no deploy specified)
find_package_handle_standard_args(GLFW DEFAULT_MSG GLFW_LIBRARIES GLFW_INCLUDE_DIR)
mark_as_advanced(GLFW_FOUND GLFW_INCLUDE_DIR GLFW_LIBRARIES)