@@ -38,98 +38,112 @@ ELSE(WIN32)
38
38
IF (UNIX )
39
39
40
40
# try to use framework on mac
41
+ # want clean framework path, not unix compatibility path
41
42
IF (APPLE )
42
- SET (GDAL_MAC_PATH /Library/Frameworks/GDAL.framework/Programs )
43
+ IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
44
+ OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
45
+ OR NOT CMAKE_FIND_FRAMEWORK )
46
+ SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE )
47
+ SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE )
48
+ FIND_LIBRARY (GDAL_LIBRARY GDAL )
49
+ IF (GDAL_LIBRARY )
50
+ # they're all the same in a framework
51
+ SET (GDAL_INCLUDE_DIR ${GDAL_LIBRARY} /Headers CACHE PATH "Path to a file." )
52
+ SET (GDAL_CONFIG ${GDAL_LIBRARY} /Programs/geos-config CACHE FILEPATH "Path to a program." )
53
+ ENDIF (GDAL_LIBRARY )
54
+ SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE )
55
+ ENDIF ()
43
56
ENDIF (APPLE )
44
57
45
- SET (GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME} /bin" CACHE STRING "preferred path to GDAL (gdal-config)" )
46
- SET (GDAL_CONFIG_PREFER_FWTOOLS_PATH "$ENV{FWTOOLS_HOME} /bin_safe" CACHE STRING "preferred path to GDAL (gdal-config) from FWTools" )
47
- FIND_PROGRAM (GDAL_CONFIG gdal-config
48
- ${GDAL_CONFIG_PREFER_PATH}
49
- ${GDAL_CONFIG_PREFER_FWTOOLS_PATH}
50
- ${GDAL_MAC_PATH}
51
- /usr/local/bin/
52
- /usr/bin/
53
- )
54
- # MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
58
+ IF (NOT GDAL_INCLUDE_DIR AND NOT GDAL_LIBRARY AND NOT GDAL_CONFIG )
59
+ # didn't find OS X framework, and was not set by user
60
+ SET (GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME} /bin" CACHE STRING "preferred path to GDAL (gdal-config)" )
61
+ SET (GDAL_CONFIG_PREFER_FWTOOLS_PATH "$ENV{FWTOOLS_HOME} /bin_safe" CACHE STRING "preferred path to GDAL (gdal-config) from FWTools" )
62
+ FIND_PROGRAM (GDAL_CONFIG gdal-config
63
+ ${GDAL_CONFIG_PREFER_PATH}
64
+ ${GDAL_CONFIG_PREFER_FWTOOLS_PATH}
65
+ /usr/local/bin/
66
+ /usr/bin/
67
+ )
68
+ # MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
55
69
56
- IF (GDAL_CONFIG )
57
-
58
- ## extract gdal version
59
- EXEC_PROGRAM (${GDAL_CONFIG}
60
- ARGS --version
61
- OUTPUT_VARIABLE GDAL_VERSION )
62
- STRING (REGEX REPLACE "([0-9]+)\\ .([0-9]+)\\ .([0-9]+)" "\\ 1" GDAL_VERSION_MAJOR "${GDAL_VERSION} " )
63
- STRING (REGEX REPLACE "([0-9]+)\\ .([0-9]+)\\ .([0-9]+)" "\\ 2" GDAL_VERSION_MINOR "${GDAL_VERSION} " )
70
+ IF (GDAL_CONFIG )
71
+
72
+ ## extract gdal version
73
+ EXEC_PROGRAM (${GDAL_CONFIG}
74
+ ARGS --version
75
+ OUTPUT_VARIABLE GDAL_VERSION )
76
+ STRING (REGEX REPLACE "([0-9]+)\\ .([0-9]+)\\ .([0-9]+)" "\\ 1" GDAL_VERSION_MAJOR "${GDAL_VERSION} " )
77
+ STRING (REGEX REPLACE "([0-9]+)\\ .([0-9]+)\\ .([0-9]+)" "\\ 2" GDAL_VERSION_MINOR "${GDAL_VERSION} " )
64
78
65
- # MESSAGE("DBG GDAL_VERSION ${GDAL_VERSION}")
66
- # MESSAGE("DBG GDAL_VERSION_MAJOR ${GDAL_VERSION_MAJOR}")
67
- # MESSAGE("DBG GDAL_VERSION_MINOR ${GDAL_VERSION_MINOR}")
79
+ # MESSAGE("DBG GDAL_VERSION ${GDAL_VERSION}")
80
+ # MESSAGE("DBG GDAL_VERSION_MAJOR ${GDAL_VERSION_MAJOR}")
81
+ # MESSAGE("DBG GDAL_VERSION_MINOR ${GDAL_VERSION_MINOR}")
68
82
69
- # check for gdal version
70
- # version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
71
- # According to INSTALL, 1.4.0+ is required
72
- IF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4 )
83
+ # check for gdal version
84
+ # version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
85
+ # According to INSTALL, 1.4.0+ is required
86
+ IF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4 )
73
87
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION} ). Use 1.4.0 or higher." )
74
- ENDIF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4 )
75
-
76
- # set INCLUDE_DIR to prefix+include
77
- EXEC_PROGRAM (${GDAL_CONFIG}
78
- ARGS --prefix
79
- OUTPUT_VARIABLE GDAL_PREFIX )
80
- #SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
81
- FIND_PATH (GDAL_INCLUDE_DIR
82
- gdal.h
83
- ${GDAL_PREFIX} /include/gdal
84
- ${GDAL_PREFIX} /include
85
- /usr/local/include
86
- /usr/include
87
- )
88
-
89
- ## extract link dirs for rpath
90
- EXEC_PROGRAM (${GDAL_CONFIG}
91
- ARGS --libs
92
- OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
93
-
94
- ## split off the link dirs (for rpath)
95
- ## use regular expression to match wildcard equivalent "-L*<endchar>"
96
- ## with <endchar> is a space or a semicolon
97
- STRING (REGEX MATCHALL "[-][L]([^ ;])+"
98
- GDAL_LINK_DIRECTORIES_WITH_PREFIX
99
- "${GDAL_CONFIG_LIBS} " )
88
+ ENDIF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4 )
89
+
90
+ # set INCLUDE_DIR to prefix+include
91
+ EXEC_PROGRAM (${GDAL_CONFIG}
92
+ ARGS --prefix
93
+ OUTPUT_VARIABLE GDAL_PREFIX )
94
+ #SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
95
+ FIND_PATH (GDAL_INCLUDE_DIR
96
+ gdal.h
97
+ ${GDAL_PREFIX} /include/gdal
98
+ ${GDAL_PREFIX} /include
99
+ /usr/local/include
100
+ /usr/include
101
+ )
102
+
103
+ ## extract link dirs for rpath
104
+ EXEC_PROGRAM (${GDAL_CONFIG}
105
+ ARGS --libs
106
+ OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
107
+
108
+ ## split off the link dirs (for rpath)
109
+ ## use regular expression to match wildcard equivalent "-L*<endchar>"
110
+ ## with <endchar> is a space or a semicolon
111
+ STRING (REGEX MATCHALL "[-][L]([^ ;])+"
112
+ GDAL_LINK_DIRECTORIES_WITH_PREFIX
113
+ "${GDAL_CONFIG_LIBS} " )
100
114
# MESSAGE("DBG GDAL_LINK_DIRECTORIES_WITH_PREFIX=${GDAL_LINK_DIRECTORIES_WITH_PREFIX}")
101
115
102
- ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
116
+ ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
103
117
104
- IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX )
105
- STRING (REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
106
- ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX )
107
-
108
- ## split off the name
109
- ## use regular expression to match wildcard equivalent "-l*<endchar>"
110
- ## with <endchar> is a space or a semicolon
111
- STRING (REGEX MATCHALL "[-][l]([^ ;])+"
112
- GDAL_LIB_NAME_WITH_PREFIX
113
- "${GDAL_CONFIG_LIBS} " )
118
+ IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX )
119
+ STRING (REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
120
+ ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX )
121
+
122
+ ## split off the name
123
+ ## use regular expression to match wildcard equivalent "-l*<endchar>"
124
+ ## with <endchar> is a space or a semicolon
125
+ STRING (REGEX MATCHALL "[-][l]([^ ;])+"
126
+ GDAL_LIB_NAME_WITH_PREFIX
127
+ "${GDAL_CONFIG_LIBS} " )
114
128
# MESSAGE("DBG GDAL_LIB_NAME_WITH_PREFIX=${GDAL_LIB_NAME_WITH_PREFIX}")
115
129
116
130
117
- ## remove prefix -l because we need the pure name
131
+ ## remove prefix -l because we need the pure name
118
132
119
- IF (GDAL_LIB_NAME_WITH_PREFIX )
120
- STRING (REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
121
- ENDIF (GDAL_LIB_NAME_WITH_PREFIX )
122
-
123
- IF (APPLE )
124
- SET (GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES} /lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL )
125
- ELSE (APPLE )
126
- SET (GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES} /lib${GDAL_LIB_NAME}.so CACHE STRING INTERNAL )
127
- ENDIF (APPLE )
133
+ IF (GDAL_LIB_NAME_WITH_PREFIX )
134
+ STRING (REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
135
+ ENDIF (GDAL_LIB_NAME_WITH_PREFIX )
136
+
137
+ IF (APPLE )
138
+ SET (GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES} /lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL )
139
+ ELSE (APPLE )
140
+ SET (GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES} /lib${GDAL_LIB_NAME}.so CACHE STRING INTERNAL )
141
+ ENDIF (APPLE )
128
142
129
- ELSE (GDAL_CONFIG )
130
- MESSAGE ("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG} " )
131
- ENDIF (GDAL_CONFIG )
132
-
143
+ ELSE (GDAL_CONFIG )
144
+ MESSAGE ("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG} " )
145
+ ENDIF (GDAL_CONFIG )
146
+ ENDIF ( NOT GDAL_INCLUDE_DIR AND NOT GDAL_LIBRARY AND NOT GDAL_CONFIG )
133
147
ENDIF (UNIX )
134
148
ENDIF (WIN32 )
135
149
0 commit comments