Skip to content

Commit aa0a47a

Browse files
committedOct 1, 2015
Add symlink resolving to install name change bundle function on Mac
1 parent 1a22b14 commit aa0a47a

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
 

‎cmake/MacBundleMacros.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121

2222
# message only if verbose makefiles
2323

24+
CMAKE_POLICY (SET CMP0053 OLD)
25+
26+
2427
FUNCTION (MYMESSAGE MSG)
2528
IF (@CMAKE_VERBOSE_MAKEFILE@)
2629
MESSAGE (STATUS "${MSG}")
@@ -53,6 +56,11 @@ FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
5356
# ensure CHANGEBIN is writable by user, e.g. Homebrew binaries are installed non-writable
5457
EXECUTE_PROCESS (COMMAND chmod u+w "${CHANGEBIN}")
5558
EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
59+
# if that didn't work, try a symlink-resolved id
60+
# (some package systems, like Homebrew, heavily use symlinks; and, inter-package builds, like plugins,
61+
# may point to the resolved location instead of the 'public' symlink installed to prefixes like /usr/local)
62+
get_filename_component(_chgreal ${CHANGE} REALPATH)
63+
EXECUTE_PROCESS (COMMAND install_name_tool -change ${_chgreal} ${CHANGETO} "${CHANGEBIN}")
5664
ENDIF ()
5765
ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
5866

@@ -178,6 +186,20 @@ FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
178186
ENDIF (LIBFROM)
179187
ENDFUNCTION (UPDATEQGISPATHS)
180188

189+
190+
# Find directory path for a known Python module (or package) directory or file name
191+
# see: PYTHON_MODULE_PATHS in 0vars.cmake.in
192+
FUNCTION (PYTHONMODULEDIR MOD_NAME OUTVAR)
193+
FOREACH (MOD_PATH ${PYTHON_MODULE_PATHS})
194+
IF (EXISTS "${MOD_PATH}/${MOD_NAME}")
195+
SET (${OUTVAR} "${MOD_PATH}" PARENT_SCOPE)
196+
RETURN()
197+
ENDIF()
198+
ENDFOREACH (MOD_PATH)
199+
SET (${OUTVAR} "" PARENT_SCOPE)
200+
ENDFUNCTION (PYTHONMODULEDIR)
201+
202+
181203
SET (ATEXECUTABLE "@executable_path")
182204
SET (ATLOADER "@loader_path")
183205
SET (Q_FWVER ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR})

0 commit comments

Comments
 (0)
Please sign in to comment.