forked from cginternals/globjects
-
Notifications
You must be signed in to change notification settings - Fork 0
/
globjects-config.cmake
94 lines (76 loc) · 2.93 KB
/
globjects-config.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
# GLOBJECTS_FOUND
# GLOBJECTS_LIBRARIES
# GLOBJECTS_INCLUDES
# GLOBJECTS_LIBRARY
# GLOBJECTS_LIBRARY_RELEASE
# GLOBJECTS_LIBRARY_DEBUG
# GLOBJECTS_INCLUDE_DIR
include(FindPackageHandleStandardArgs)
if(CMAKE_CURRENT_LIST_FILE)
get_filename_component(GLOBJECTS_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
endif()
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" ENVPROGRAMFILES)
file(TO_CMAKE_PATH "$ENV{GLOBJECTS_DIR}" ENVGLOBJECTS_DIR)
set(GLOBJECTS_INCLUDES "")
set(GLOBJECTS_LIBRARIES "")
set(LIB_PATHS
${GLOBJECTS_DIR}/build
${GLOBJECTS_DIR}/build/Release
${GLOBJECTS_DIR}/build/Debug
${GLOBJECTS_DIR}/build-release
${GLOBJECTS_DIR}/build-debug
${ENVGLOBJECTS_DIR}/lib
${GLOBJECTS_DIR}/lib
${ENVPROGRAMFILES}/globjects/lib
/usr/lib
/usr/local/lib
/sw/lib
/opt/local/lib
/usr/lib64
/usr/local/lib64
/sw/lib64
/opt/local/lib64
)
macro (find LIB_NAME HEADER)
set(HINT_PATHS ${ARGN})
string(TOUPPER ${LIB_NAME} LIB_NAME_UPPER)
find_path(${LIB_NAME_UPPER}_INCLUDE_DIR ${HEADER}
${ENVGLOBJECTS_DIR}/include
${ENVGLOBJECTS_DIR}/source/${LIB_NAME}/include
${GLOBJECTS_DIR}/include
${GLOBJECTS_DIR}/source/${LIB_NAME}/include
${ENVPROGRAMFILES}/globjects/include
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "The directory where ${header} resides")
find_library(${LIB_NAME_UPPER}_LIBRARY_RELEASE
NAMES ${LIB_NAME}
PATHS ${HINT_PATHS}
DOC "The ${LIB_NAME} library")
find_library(${LIB_NAME_UPPER}_LIBRARY_DEBUG
NAMES ${LIB_NAME}d
PATHS ${HINT_PATHS}
DOC "The ${LIB_NAME} debug library")
if(${LIB_NAME_UPPER}_LIBRARY_RELEASE AND ${LIB_NAME_UPPER}_LIBRARY_DEBUG)
set(${LIB_NAME_UPPER}_LIBRARY "optimized" ${${LIB_NAME_UPPER}_LIBRARY_RELEASE} "debug" ${${LIB_NAME_UPPER}_LIBRARY_DEBUG})
elseif(${LIB_NAME_UPPER}_LIBRARY_RELEASE)
set(${LIB_NAME_UPPER}_LIBRARY ${${LIB_NAME_UPPER}_LIBRARY_RELEASE})
elseif(${LIB_NAME_UPPER}_LIBRARY_DEBUG)
set(${LIB_NAME_UPPER}_LIBRARY ${${LIB_NAME_UPPER}_LIBRARY_DEBUG})
endif()
# DEBUG
# message("${LIB_NAME_UPPER}_INCLUDE_DIR = ${${LIB_NAME_UPPER}_INCLUDE_DIR}")
# message("${LIB_NAME_UPPER}_LIBRARY_RELEASE = ${${LIB_NAME_UPPER}_LIBRARY_RELEASE}")
# message("${LIB_NAME_UPPER}_LIBRARY_DEBUG = ${${LIB_NAME_UPPER}_LIBRARY_DEBUG}")
# message("${LIB_NAME_UPPER}_LIBRARY = ${${LIB_NAME_UPPER}_LIBRARY}")
list(APPEND GLOBJECTS_INCLUDES ${${LIB_NAME_UPPER}_INCLUDE_DIR})
list(APPEND GLOBJECTS_LIBRARIES ${${LIB_NAME_UPPER}_LIBRARY})
endmacro()
find(globjects globjects/globjects_api.h ${LIB_PATHS})
# DEBUG
# message("GLOBJECTS_INCLUDES = ${GLOBJECTS_INCLUDES}")
# message("GLOBJECTS_LIBRARIES = ${GLOBJECTS_LIBRARIES}")
find_package_handle_standard_args(GLOBJECTS DEFAULT_MSG GLOBJECTS_LIBRARIES GLOBJECTS_INCLUDES)
mark_as_advanced(GLOBJECTS_FOUND)