-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathFindLibOVR.cmake
271 lines (235 loc) · 9.6 KB
/
FindLibOVR.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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
#.rst:
# FindLibOVR
# -----------
#
# Find the LibOVR library in Oculus Rift SDK.
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` targets if
# LibOVR has been found::
#
# LibOVR::OVRKernel
# LibOVR::OVR
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables::
#
# LibOVR_FOUND - System has LibOVR
# LibOVR_VERSION - LibOVR version
# LibOVR_VERSION_PRODUCT - LibOVR product version
# LibOVR_VERSION_MAJOR - LibOVR major version
# LibOVR_VERSION_MINOR - LibOVR minor version
# LibOVR_VERSION_PATCH - LibOVR patch version
# LibOVR_VERSION_BUILD - LibOVR build number
# LibOVR_VERSION_STRING - LibOVR version
# LibOVR_VERSION_DETAILED_STRING - LibOVR version (including build number)
# LibOVR_INCLUDE_DIRS - Include directories for LibOVR
# LibOVR_LIBRARIES - libraries to link against LibOVR
#=============================================================================
# Copyright 2015 Istituto Italiano di Tecnologia (IIT)
# Authors: Daniele E. Domenichelli <[email protected]>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of YCM, substitute the full
# License text for the above reference.)
set(OculusSDK_DIR "$ENV{OculusSDK_ROOT}")
unset(_os)
unset(_arch)
if(WIN32)
if("${CMAKE_GENERATOR}" MATCHES "^Visual Studio")
if(${CMAKE_GENERATOR_PLATFORM} MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64")
set(_os "Windows/x64")
else()
set(_os "Windows/Win32")
endif()
if(MSVC10)
set(_arch "VS2010")
elseif(MSVC11)
set(_arch "VS2012")
elseif(MSVC12)
set(_arch "VS2013")
elseif(MSVC14)
set(_arch "VS2015")
endif()
endif()
elseif(APPLE)
set(_os "Mac")
set(_arch "")
elseif(UNIX)
set(_os "Linux/${CMAKE_SYSTEM_PROCESSOR}")
set(_arch "")
endif()
if(NOT DEFINED _os OR NOT DEFINED _arch)
set(LibOVR_FOUND FALSE)
return()
endif()
find_path(LibOVR_LibOVRKernel_INCLUDE_DIR "Kernel/OVR_Types.h"
NO_DEFAULT_PATH
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "LibOVRKernel/Src")
find_path(LibOVR_LibOVRKernel_INCLUDE_DIR "Kernel/OVR_Types.h"
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "include")
mark_as_advanced(LibOVR_LibOVRKernel_INCLUDE_DIR)
find_path(LibOVR_LibOVR_INCLUDE_DIR "OVR_Version.h"
NO_DEFAULT_PATH
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "LibOVR/Include")
find_path(LibOVR_LibOVR_INCLUDE_DIR "OVR_Version.h"
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "include")
mark_as_advanced(LibOVR_LibOVR_INCLUDE_DIR)
find_path(LibOVR_LibOVR_Extras_INCLUDE_DIR "OVR_Math.h"
NO_DEFAULT_PATH
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "LibOVR/Include/Extras")
find_path(LibOVR_LibOVR_Extras_INCLUDE_DIR "OVR_Math.h"
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "include/Extras")
mark_as_advanced(LibOVR_LibOVR_Extras_INCLUDE_DIR)
find_library(LibOVR_LibOVRKernel_LIBRARY_RELEASE
NAMES OVRKernel LibOVRKernel
PATHS ENV OculusSDK_ROOT
NO_DEFAULT_PATH
PATH_SUFFIXES "LibOVRKernel/Lib/${_os}/Release (DLL CRT)/${_arch}")
find_library(LibOVR_LibOVRKernel_LIBRARY_RELEASE
NAMES OVRKernel LibOVRKernel
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "lib")
mark_as_advanced(LibOVR_LibOVRKernel_LIBRARY_RELEASE)
find_library(LibOVR_LibOVRKernel_LIBRARY_DEBUG
NAMES OVRKernel LibOVRKernel
PATHS ENV OculusSDK_ROOT
NO_DEFAULT_PATH
PATH_SUFFIXES "LibOVRKernel/Lib/${_os}/Debug (DLL CRT)/${_arch}")
mark_as_advanced(LibOVR_LibOVRKernel_LIBRARY_DEBUG)
find_library(LibOVR_LibOVR_LIBRARY_RELEASE
NAMES OVR LibOVR
PATHS ENV OculusSDK_ROOT
NO_DEFAULT_PATH
PATH_SUFFIXES "LibOVR/Lib/${_os}/Release/${_arch}")
find_library(LibOVR_LibOVR_LIBRARY_RELEASE
NAMES OVR LibOVR
PATHS ENV OculusSDK_ROOT
PATH_SUFFIXES "lib")
mark_as_advanced(LibOVR_LibOVR_LIBRARY_RELEASE)
find_library(LibOVR_LibOVR_LIBRARY_DEBUG
NAMES OVR LibOVR
PATHS ENV OculusSDK_ROOT
NO_DEFAULT_PATH
PATH_SUFFIXES "LibOVR/Lib/${_os}/Debug/${_arch}")
mark_as_advanced(LibOVR_LibOVR_LIBRARY_DEBUG)
include(SelectLibraryConfigurations)
select_library_configurations(LibOVR_LibOVRKernel)
select_library_configurations(LibOVR_LibOVR)
if(EXISTS "${LibOVR_LibOVR_INCLUDE_DIR}/OVR_Version.h")
file(STRINGS "${LibOVR_LibOVR_INCLUDE_DIR}/OVR_Version.h" _contents
REGEX "#[\t ]*define[ \t]+OVR_((PRODUCT|MAJOR|MINOR|PATCH)_VERSION)|BUILD_NUMBER[ \t]+[0-9]+")
foreach(_part PRODUCT MAJOR MINOR PATCH)
string(REGEX REPLACE ".*#[\t ]*define[ \t]+OVR_${_part}_VERSION[ \t]+([0-9]+).*" "\\1"
LibOVR_VERSION_${_part} "${_contents}")
endforeach()
string(REGEX REPLACE ".*#[\t ]*define[ \t]+OVR_BUILD_NUMBER[ \t]+([0-9]+).*" "\\1"
LibOVR_VERSION_BUILD "${_contents}")
set(LibOVR_VERSION "${LibOVR_VERSION_MAJOR}.${LibOVR_VERSION_MINOR}.${LibOVR_VERSION_PATCH}")
set(LibOVR_VERSION_STRING "${LibOVR_VERSION}")
set(LibOVR_VERSION_DETAILED_STRING "${LibOVR_VERSION_PRODUCT}.${LibOVR_VERSION}.${LibOVR_VERSION_BUILD}")
endif()
set(LibOVR_INCLUDE_DIRS "${LibOVR_LibOVR_INCLUDE_DIR}"
"${LibOVR_LibOVR_Extras_INCLUDE_DIR}"
"${LibOVR_LibOVRKernel_INCLUDE_DIR}"
"${LibOVR_LibOVRKernel_INCLUDE_DIR}}/Kernel")
set(LibOVR_LIBRARIES "${LibOVR_LibOVR_LIBRARY}"
"${LibOVR_LibOVRKernel_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibOVR
FOUND_VAR LibOVR_FOUND
REQUIRED_VARS LibOVR_LIBRARIES
LibOVR_INCLUDE_DIRS
VERSION_VAR LibOVR_VERSION_STRING)
# Set package properties if FeatureSummary was included
if(COMMAND set_package_properties)
set_package_properties(LibOVR PROPERTIES DESCRIPTION "Oculus Virtual Reality Library"
URL "https://developer.oculus.com/")
endif()
if(FindLibOVR_DEBUG)
include(CMakePrintHelpers)
cmake_print_variables(LibOVR_FOUND
LibOVR_VERSION
LibOVR_VERSION_PRODUCT
LibOVR_VERSION_MAJOR
LibOVR_VERSION_MINOR
LibOVR_VERSION_PATCH
LibOVR_VERSION_BUILD
LibOVR_VERSION_STRING
LibOVR_VERSION_DETAILED_STRING)
endif()
if(NOT LibOVR_FOUND)
return()
endif()
# Create imported target LibOVR::OVRKernel
add_library(LibOVR::OVRKernel STATIC IMPORTED)
set_target_properties(LibOVR::OVRKernel PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LibOVR_LibOVRKernel_INCLUDE_DIR};${LibOVR_LibOVRKernel_INCLUDE_DIR}/Kernel"
)
# Import target "LibOVR::OVRKernel" for configuration "Release"
if(EXISTS "${LibOVR_LibOVRKernel_LIBRARY_RELEASE}")
set_property(TARGET LibOVR::OVRKernel APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(LibOVR::OVRKernel PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
IMPORTED_LOCATION_RELEASE "${LibOVR_LibOVRKernel_LIBRARY_RELEASE}"
)
endif()
# Import target "LibOVR::OVRKernel" for configuration "Debug"
if(EXISTS "${LibOVR_LibOVRKernel_LIBRARY_DEBUG}")
set_property(TARGET LibOVR::OVRKernel APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(LibOVR::OVRKernel PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
IMPORTED_LOCATION_DEBUG "${LibOVR_LibOVRKernel_LIBRARY_DEBUG}"
)
endif()
# Create imported target LibOVR::OVR
add_library(LibOVR::OVR STATIC IMPORTED)
set_target_properties(LibOVR::OVR PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LibOVR_LibOVR_INCLUDE_DIR};${LibOVR_LibOVR_Extras_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "LibOVR::OVRKernel"
)
# Import target "LibOVR::OVR" for configuration "Debug"
if(EXISTS "${LibOVR_LibOVR_LIBRARY_DEBUG}")
set_property(TARGET LibOVR::OVR APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(LibOVR::OVR PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
IMPORTED_LOCATION_DEBUG "${LibOVR_LibOVR_LIBRARY_DEBUG}"
)
endif()
# Import target "LibOVR::OVR" for configuration "Release"
if(EXISTS "${LibOVR_LibOVR_LIBRARY_RELEASE}")
set_property(TARGET LibOVR::OVR APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(LibOVR::OVR PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${LibOVR_LibOVR_LIBRARY_RELEASE}"
)
endif()
if(FindLibOVR_DEBUG)
foreach(_t OVR OVRKernel)
if(TARGET LibOVR::${_t})
cmake_print_properties(TARGETS LibOVR::${_t}
PROPERTIES IMPORTED_CONFIGURATIONS
IMPORTED_LOCATION_RELEASE
IMPORTED_LOCATION_DEBUG)
else()
message(STATUS "LibOVR::${_t} not found")
endif()
endforeach()
endif()
set_target_properties(LibOVR::OVRKernel LibOVR::OVR PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)