Skip to content

Commit 8026c98

Browse files
committed
FindQGIS.cmake fix macOS search paths; add support for bundles
- Setting QGIS_MAC_PATH to any QGIS.app/Contents allows for building against any bundled install - Prioritizes QGIS_MAC_PATH bundles over Homebrew default in /usr/local - Remove hardcoded QGIS_MAC_PATH for specific distribution
1 parent 1e34f86 commit 8026c98

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

cmake/FindQGIS.cmake

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
## QGIS_INCLUDE_DIR = where to find headers
1010
## QGIS_UI_INCLUDE_DIR = where to find ui_* generated headers
1111
##
12+
## Definitions or ENV variables affecting search locations
13+
##
14+
## QGIS_MAC_PATH = /path/to/any/QGIS.app/Contents
15+
##
1216
## Tim Sutton
1317
## Larry Shaffer (2017-01-31)
1418

@@ -93,34 +97,33 @@ IF(WIN32)
9397
ENDIF (MSVC)
9498
ELSE(WIN32)
9599
IF(UNIX)
96-
# try to use bundle on mac
97-
SET (QGIS_MAC_PATH /Applications/QGIS.app/Contents)
98100
#MESSAGE("Searching for QGIS in /usr/bin; /usr/local/bin")
99101
FIND_PATH(QGIS_PLUGIN_DIR
100102
NAMES libspatialqueryplugin.so
101103
PATHS
104+
${QGIS_MAC_PATH}/PlugIns/qgis
102105
${QGIS_PREFIX_PATH}/lib/qgis/plugins/
103106
/usr/lib64/qgis/plugins
104107
/usr/lib/qgis
105108
/usr/lib/qgis/plugins
106109
/usr/local/lib/qgis/plugins
107-
${QGIS_MAC_PATH}/PlugIns/qgis
108110
"$ENV{LIB_DIR}/lib/qgis/plugins"
109111
"$ENV{LIB_DIR}/lib/qgis"
110112
)
111113
FIND_PATH(QGIS_INCLUDE_DIR
112114
NAMES qgis.h
113115
PATHS
116+
${QGIS_MAC_PATH}/Frameworks/qgis_core.framework/Headers
114117
{QGIS_PREFIX_PATH}/include/qgis
115118
/usr/include/qgis
116119
/usr/local/include/qgis
117120
/Library/Frameworks/qgis_core.framework/Headers
118-
${QGIS_MAC_PATH}/Frameworks/qgis_core.framework/Headers
119121
"$ENV{LIB_DIR}/include/qgis"
120122
)
121123
FIND_PATH(QGIS_UI_INCLUDE_DIR
122124
NAMES ui_qgscredentialdialog.h
123125
PATHS
126+
${QGIS_MAC_PATH}/Frameworks/qgis_gui.framework/Headers
124127
{QGIS_PREFIX_PATH}/include/qgis
125128
/usr/include/qgis
126129
/usr/local/include/qgis
@@ -132,14 +135,16 @@ ELSE(WIN32)
132135
FIND_PATH(QGIS_GUI_INCLUDE_DIR
133136
NAMES qgisgui.h
134137
PATHS
135-
/Library/Frameworks/qgis_core.framework/Headers
136-
${QGIS_MAC_PATH}/Frameworks/qgis_gui.framework/Headers
138+
${QGIS_MAC_PATH}/Frameworks
139+
/Library/Frameworks
140+
PATH_SUFFIXES qgis_gui.framework/Headers
137141
)
138142
FIND_PATH(QGIS_ANALYSIS_INCLUDE_DIR
139143
NAMES qgsinterpolator.h
140144
PATHS
141-
/Library/Frameworks/qgis_analysis.framework/Headers
142-
${QGIS_MAC_PATH}/Frameworks/qgis_analysis.framework/Headers
145+
${QGIS_MAC_PATH}/Frameworks
146+
/Library/Frameworks
147+
PATH_SUFFIXES qgis_analysis.framework/Headers
143148
)
144149
SET(QGIS_INCLUDE_DIR
145150
${QGIS_INCLUDE_DIR}
@@ -152,34 +157,37 @@ ELSE(WIN32)
152157
FIND_LIBRARY(QGIS_CORE_LIBRARY
153158
NAMES qgis_core
154159
PATHS
160+
${QGIS_MAC_PATH}/Frameworks
161+
${QGIS_MAC_PATH}/lib
155162
${QGIS_PREFIX_PATH}/lib/
156163
/usr/lib64
157164
/usr/lib
158165
/usr/local/lib
159166
/Library/Frameworks
160-
${QGIS_MAC_PATH}/Frameworks
161167
"$ENV{LIB_DIR}/lib/"
162168
)
163169
FIND_LIBRARY(QGIS_GUI_LIBRARY
164170
NAMES qgis_gui
165171
PATHS
172+
${QGIS_MAC_PATH}/Frameworks
173+
${QGIS_MAC_PATH}/lib
166174
${QGIS_PREFIX_PATH}/lib/
167175
/usr/lib64
168176
/usr/lib
169177
/usr/local/lib
170178
/Library/Frameworks
171-
${QGIS_MAC_PATH}/Frameworks
172179
"$ENV{LIB_DIR}/lib/"
173180
)
174181
FIND_LIBRARY(QGIS_ANALYSIS_LIBRARY
175182
NAMES qgis_analysis
176183
PATHS
184+
${QGIS_MAC_PATH}/Frameworks
185+
${QGIS_MAC_PATH}/lib
177186
${QGIS_PREFIX_PATH}/lib/
178187
/usr/lib64
179188
/usr/lib
180189
/usr/local/lib
181190
/Library/Frameworks
182-
${QGIS_MAC_PATH}/Frameworks
183191
"$ENV{LIB_DIR}/lib/"
184192
)
185193
ENDIF(UNIX)

0 commit comments

Comments
 (0)