@@ -31,20 +31,26 @@ ENDFUNCTION (MYMESSAGE)
3131# regex stuff taken from GetPrerequisites
3232
3333FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
34- EXECUTE_PROCESS (COMMAND otool -L "${LIBFILE} " OUTPUT_VARIABLE iname_out)
35- # remove 1st line, it's just path to lib file
36- STRING (REGEX REPLACE ".*:\n " "" iname "${iname_out} " )
37- IF (iname)
38- # find libname
39- STRING (REGEX MATCH "[^\n\t ]*${LIBNAME} [^\n ]*" iname "${iname} " )
40- ENDIF (iname)
41- SET (${OUTVAR} ${iname} PARENT_SCOPE)
34+ IF (EXISTS "${LIBFILE} " )
35+ EXECUTE_PROCESS (COMMAND otool -L "${LIBFILE} " OUTPUT_VARIABLE iname_out)
36+ # remove 1st line, it's just path to lib file
37+ STRING (REGEX REPLACE ".*:\n " "" iname "${iname_out} " )
38+ IF (iname)
39+ # find libname
40+ STRING (REGEX MATCH "[^\n\t ]*${LIBNAME} [^\n ]*" iname "${iname} " )
41+ ENDIF (iname)
42+ SET (${OUTVAR} ${iname} PARENT_SCOPE)
43+ ELSE ()
44+ SET (${OUTVAR} "" PARENT_SCOPE)
45+ ENDIF ()
4246ENDFUNCTION (GET_INSTALL_NAME)
4347
4448# install_name_tool -change CHANGE CHANGETO CHANGEBIN
4549
4650FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
47- EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN} " )
51+ IF (EXISTS "${CHANGEBIN} " AND CHANGE AND CHANGETO)
52+ EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN} " )
53+ ENDIF ()
4854ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
4955
5056# copy a framework, only specified archs, current version, debug dep on CMAKE_BUILD_TYPE
@@ -59,22 +65,24 @@ FUNCTION (COPY_FRAMEWORK FWPREFIX FWNAME FWDEST)
5965 OUTPUT_VARIABLE FWDIRPHYS
6066 )
6167 STRING (STRIP "${FWDIRPHYS} " FWDIRPHYS)
62- STRING (REGEX MATCH "[^/\n ]+$" FWVER "${FWDIRPHYS} " )
63- EXECUTE_PROCESS (COMMAND mkdir -p "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} " )
64- EXECUTE_PROCESS (COMMAND ln -sfh ${FWVER} "${FWDEST} /${FWNAME} .framework/Versions/Current" )
65- EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /${FWNAME} " "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} /${FWNAME} " )
66- EXECUTE_PROCESS (COMMAND ln -sf Versions/Current/${FWNAME} "${FWDEST} /${FWNAME} .framework/${FWNAME} " )
67- IF (IS_DIRECTORY "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /Resources" )
68- EXECUTE_PROCESS (COMMAND cp -Rfp "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /Resources" "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} " )
69- EXECUTE_PROCESS (COMMAND ln -sfh Versions/Current/Resources "${FWDEST} /${FWNAME} .framework/Resources" )
70- ENDIF (IS_DIRECTORY "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /Resources" )
71- # debug variants
72- SET (FWD "${FWNAME} _debug" )
73- IF ("${FWDEBUG} " STREQUAL "Debug" AND EXISTS "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /${FWD} " )
74- EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /${FWD} " "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} /${FWD} " )
75- EXECUTE_PROCESS (COMMAND ln -sf Versions/Current/${FWD} "${FWDEST} /${FWNAME} .framework/${FWD} " )
76- IF (IS_DIRECTORY "${FWPREFIX} /${FWNAME} .framework/${FWD} .dSYM" )
77- EXECUTE_PROCESS (COMMAND ditto -X ${QARCHS} "${FWPREFIX} /${FWNAME} .framework/${FWD} .dSYM" "${FWDEST} /${FWNAME} .framework" )
68+ IF (IS_DIRECTORY "${FWDIRPHYS} " )
69+ STRING (REGEX MATCH "[^/\n ]+$" FWVER "${FWDIRPHYS} " )
70+ EXECUTE_PROCESS (COMMAND mkdir -p "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} " )
71+ EXECUTE_PROCESS (COMMAND ln -sfh ${FWVER} "${FWDEST} /${FWNAME} .framework/Versions/Current" )
72+ EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /${FWNAME} " "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} /${FWNAME} " )
73+ EXECUTE_PROCESS (COMMAND ln -sf Versions/Current/${FWNAME} "${FWDEST} /${FWNAME} .framework/${FWNAME} " )
74+ IF (IS_DIRECTORY "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /Resources" )
75+ EXECUTE_PROCESS (COMMAND cp -Rfp "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /Resources" "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} " )
76+ EXECUTE_PROCESS (COMMAND ln -sfh Versions/Current/Resources "${FWDEST} /${FWNAME} .framework/Resources" )
77+ ENDIF (IS_DIRECTORY "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /Resources" )
78+ # debug variants
79+ SET (FWD "${FWNAME} _debug" )
80+ IF ("${FWDEBUG} " STREQUAL "Debug" AND EXISTS "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /${FWD} " )
81+ EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${FWPREFIX} /${FWNAME} .framework/Versions/${FWVER} /${FWD} " "${FWDEST} /${FWNAME} .framework/Versions/${FWVER} /${FWD} " )
82+ EXECUTE_PROCESS (COMMAND ln -sf Versions/Current/${FWD} "${FWDEST} /${FWNAME} .framework/${FWD} " )
83+ IF (IS_DIRECTORY "${FWPREFIX} /${FWNAME} .framework/${FWD} .dSYM" )
84+ EXECUTE_PROCESS (COMMAND ditto -X ${QARCHS} "${FWPREFIX} /${FWNAME} .framework/${FWD} .dSYM" "${FWDEST} /${FWNAME} .framework" )
85+ ENDIF ()
7886 ENDIF ()
7987 ENDIF ()
8088ENDFUNCTION (COPY_FRAMEWORK)
@@ -95,16 +103,17 @@ FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
95103 ENDIF ()
96104 SET (LIB_CHG_TO "${ATEXECUTABLE} /${LIBMID} /${LIBPOST} " )
97105 # app - always @executable_path
98- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QAPPDIR} /${QGIS_APP_NAME} " )
99- # qgis_help, qbrowser - doesn't link anything else than Qt/Qgis
100- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QBINDIR} /qgis_help.app/Contents/MacOS/qgis_help" )
101- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QBINDIR} /qbrowser.app/Contents/MacOS/qbrowser" )
106+ INSTALLNAMETOOL_CHANGE ("${LIBFROM} " "${LIB_CHG_TO} " "${QAPPDIR} /${QGIS_APP_NAME} " )
107+ # qgis helper apps - don't link anything else than Qt/Qgis
108+ FOREACH (QA ${QGAPPLIST} )
109+ INSTALLNAMETOOL_CHANGE ("${LIBFROM} " "${LIB_CHG_TO} " "${QBINDIR} /${QA} .app/Contents/MacOS/${QA} " )
110+ ENDFOREACH (QA)
102111 # qgis-mapserver
103112 IF (${WITH_MAPSERVER} )
104113 IF (${OSX_HAVE_LOADERPATH} )
105114 SET (LIB_CHG_TO "${ATEXECUTABLE} /${QGIS_CGIBIN_SUBDIR_REV} /${LIBMID} /${LIBPOST} " )
106115 ENDIF ()
107- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QCGIDIR} /qgis_mapserv.fcgi" )
116+ INSTALLNAMETOOL_CHANGE (" ${LIBFROM} " " ${LIB_CHG_TO} " "${QCGIDIR} /qgis_mapserv.fcgi" )
108117 ENDIF ()
109118 # libs
110119 IF (${OSX_HAVE_LOADERPATH} )
@@ -116,40 +125,40 @@ FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
116125 ENDIF ()
117126 ENDIF ()
118127 FOREACH (QL ${QGFWLIST} )
119- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QFWDIR} /${QL} .framework/${QL} " )
128+ INSTALLNAMETOOL_CHANGE (" ${LIBFROM} " " ${LIB_CHG_TO} " "${QFWDIR} /${QL} .framework/${QL} " )
120129 ENDFOREACH (QL)
121130 # libqgispython is not a framework
122131 IF (${OSX_HAVE_LOADERPATH} )
123132 SET (LIB_CHG_TO "${ATLOADER} /${QGIS_LIB_SUBDIR_REV} /${LIBMID} /${LIBPOST} " )
124133 ENDIF ()
125- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QLIBDIR} /libqgispython.dylib" )
134+ INSTALLNAMETOOL_CHANGE (" ${LIBFROM} " " ${LIB_CHG_TO} " "${QLIBDIR} /libqgispython.dylib" )
126135 # GRASS libexec stuff
127136 IF (EXISTS "${QLIBXDIR} /grass/bin/qgis.g.browser" )
128137 IF (${OSX_HAVE_LOADERPATH} )
129138 SET (LIB_CHG_TO "${ATLOADER} /../../${QGIS_LIBEXEC_SUBDIR_REV} /${LIBMID} /${LIBPOST} " )
130139 ENDIF ()
131- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QLIBXDIR} /grass/bin/qgis.g.browser" )
140+ INSTALLNAMETOOL_CHANGE (" ${LIBFROM} " " ${LIB_CHG_TO} " "${QLIBXDIR} /grass/bin/qgis.g.browser" )
132141 ENDIF ()
133142 # plugins
134143 IF (${OSX_HAVE_LOADERPATH} )
135144 SET (LIB_CHG_TO "${ATLOADER} /${QGIS_PLUGIN_SUBDIR_REV} /${LIBMID} /${LIBPOST} " )
136145 ENDIF ()
137146 FOREACH (QP ${QGPLUGLIST} )
138- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QP} " )
147+ INSTALLNAMETOOL_CHANGE (" ${LIBFROM} " " ${LIB_CHG_TO} " "${QP} " )
139148 ENDFOREACH (QP)
140149 # qgis python
141150 IF (${OSX_HAVE_LOADERPATH} )
142151 SET (LIB_CHG_TO "${ATLOADER} /../../${QGIS_DATA_SUBDIR_REV} /${LIBMID} /${LIBPOST} " )
143152 ENDIF ()
144153 FOREACH (PG ${QGPYLIST} )
145- INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${PG} " )
154+ INSTALLNAMETOOL_CHANGE (" ${LIBFROM} " " ${LIB_CHG_TO} " "${PG} " )
146155 ENDFOREACH (PG)
147156 # bin - nothing yet
148157 #IF (${OSX_HAVE_LOADERPATH})
149158 # SET (LIB_CHG_TO "${ATLOADER}/${QGIS_BIN_SUBDIR_REV}/${LIBMID}/${LIBPOST}")
150159 #ENDIF ()
151160 #FOREACH (PB ...)
152- # INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QBINDIR}/${PB}")
161+ # INSTALLNAMETOOL_CHANGE (" ${LIBFROM}" " ${LIB_CHG_TO}" "${QBINDIR}/${PB}")
153162 #ENDFOREACH (PB)
154163 ENDIF (LIBFROM)
155164ENDFUNCTION (UPDATEQGISPATHS)
@@ -177,8 +186,10 @@ FOREACH (QARCH ${CMAKE_OSX_ARCHITECTURES})
177186ENDFOREACH (QARCH)
178187
179188# common file lists
180- FILE (GLOB QGFWLIST RELATIVE ${QFWDIR} ${QFWDIR} /qgis*.framework )
189+ FILE (GLOB QGFWLIST RELATIVE " ${QFWDIR} " " ${QFWDIR} /qgis*.framework" )
181190# for some reason, REPLACE is stripping list seps
182191STRING (REPLACE ".framework" ";" QGFWLIST ${QGFWLIST} )
183- FILE (GLOB QGPLUGLIST ${QPLUGDIR} /*.so)
184- FILE (GLOB QGPYLIST ${QGISPYDIR} /qgis/*.so)
192+ FILE (GLOB QGPLUGLIST "${QPLUGDIR} /*.so" )
193+ FILE (GLOB QGPYLIST "${QGISPYDIR} /qgis/*.so" )
194+ FILE (GLOB QGAPPLIST RELATIVE "${QBINDIR} " "${QBINDIR} /q*.app" )
195+ STRING (REPLACE ".app" ";" QGAPPLIST ${QGAPPLIST} )
0 commit comments