Skip to content

Commit ad5362e

Browse files
author
kyngchaos
committed
fix bundling for latest cmake
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@14612 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent d702bfc commit ad5362e

File tree

5 files changed

+39
-93
lines changed

5 files changed

+39
-93
lines changed

cmake/MacBundleMacros.cmake

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Mac Bundle Macros
2+
3+
# BundleUtilities has functions to bundle and fixup libraries into an
4+
# application package, but it's all-or-nothing and is missing some features:
5+
#
6+
# - @loader_path
7+
# - helper functions can't get install_name, just dependencies
8+
9+
# get the install_name of a library or framework
10+
# regex stuff taken from GetPrerequisites
11+
12+
FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
13+
EXECUTE_PROCESS (COMMAND otool -D "${LIBFILE}" OUTPUT_VARIABLE iname_out)
14+
STRING (REGEX REPLACE ".*:\n" "" iname "${iname_out}")
15+
IF (iname)
16+
# trim it
17+
STRING (REGEX MATCH "[^\n ].*[^\n ]" iname "${iname}")
18+
SET (${OUTVAR} ${iname} PARENT_SCOPE)
19+
ENDIF (iname)
20+
ENDFUNCTION (GET_INSTALL_NAME)
21+
22+
# message only if verbose makefiles
23+
24+
FUNCTION (MYMESSAGE MSG)
25+
IF (@CMAKE_VERBOSE_MAKEFILE@)
26+
MESSAGE (STATUS "${MSG}")
27+
ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
28+
ENDFUNCTION (MYMESSAGE)
29+
30+
# install_name_tool -change CHANGE CHANGETO CHANGEBIN
31+
32+
FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
33+
MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
34+
EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
35+
ENDFUNCTION (INSTALLNAMETOOL_CHANGE)

mac/cmake/0qgis.cmake.in

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,7 @@ SET (QT_FWVER @QT_VERSION_MAJOR@)
2323
SET (ATEXECUTABLE "@executable_path")
2424
SET (ATLOADER "@loader_path")
2525

26-
# message only if verbose makefiles (use for install_name_tool echos)
27-
FUNCTION (MYMESSAGE MSG)
28-
IF (@CMAKE_VERBOSE_MAKEFILE@)
29-
MESSAGE (STATUS "${MSG}")
30-
ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
31-
ENDFUNCTION (MYMESSAGE)
32-
33-
# isntall_name_tool -change CHANGE CHANGETO CHANGEBIN
34-
FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
35-
MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
36-
EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
37-
ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
26+
INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
3827

3928
FILE (GLOB QGLIBLIST RELATIVE ${QLIBDIR} ${QLIBDIR}/libqgis*.dylib)
4029
FILE (GLOB QGPLUGLIST ${QPLUGDIR}/*.so)

mac/cmake/1qt.cmake.in

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
# so we configure it first to do substitutions
44
# make sure to use @varname@
55

6-
# need part of BundleUtilities
7-
INCLUDE (GetPrerequisites)
8-
96
# kill boolean warnings
107
CMAKE_POLICY (SET CMP0012 NEW)
118

@@ -26,30 +23,7 @@ SET (QT_FWVER @QT_VERSION_MAJOR@)
2623
SET (ATEXECUTABLE "@executable_path")
2724
SET (ATLOADER "@loader_path")
2825

29-
# helper functions
30-
31-
FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
32-
get_prerequisites ("${LIBFILE}" LIBLIST 1 0 "" "")
33-
FOREACH (L ${LIBLIST})
34-
STRING (REGEX MATCH ".*${LIBNAME}.+" LL ${L})
35-
IF (LL)
36-
SET (${OUTVAR} ${LL} PARENT_SCOPE)
37-
ENDIF (LL)
38-
ENDFOREACH ()
39-
ENDFUNCTION (GET_INSTALL_NAME)
40-
41-
# message only if verbose makefiles
42-
FUNCTION (MYMESSAGE MSG)
43-
IF (@CMAKE_VERBOSE_MAKEFILE@)
44-
MESSAGE (STATUS "${MSG}")
45-
ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
46-
ENDFUNCTION (MYMESSAGE)
47-
48-
# install_name_tool -change CHANGE CHANGETO CHANGEBIN
49-
FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
50-
MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
51-
EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
52-
ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
26+
INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
5327

5428
# build list of Qt frameworks to bundle
5529

mac/cmake/2lib.cmake.in

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
# libpq
88
# libfcgi (non-system)
99

10-
# need part of BundleUtilities
11-
INCLUDE (GetPrerequisites)
12-
1310
# kill boolean warnings
1411
CMAKE_POLICY (SET CMP0012 NEW)
1512

@@ -30,30 +27,7 @@ SET (QT_FWVER @QT_VERSION_MAJOR@)
3027
SET (ATEXECUTABLE "@executable_path")
3128
SET (ATLOADER "@loader_path")
3229

33-
# helper functions
34-
35-
FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
36-
get_prerequisites ("${LIBFILE}" LIBLIST 1 0 "" "")
37-
FOREACH (L ${LIBLIST})
38-
STRING (REGEX MATCH ".*${LIBNAME}.+" LL ${L})
39-
IF (LL)
40-
SET (${OUTVAR} ${LL} PARENT_SCOPE)
41-
ENDIF (LL)
42-
ENDFOREACH ()
43-
ENDFUNCTION (GET_INSTALL_NAME)
44-
45-
# message only if verbose makefiles (use for install_name_tool echos)
46-
FUNCTION (MYMESSAGE MSG)
47-
IF (@CMAKE_VERBOSE_MAKEFILE@)
48-
MESSAGE (STATUS "${MSG}")
49-
ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
50-
ENDFUNCTION (MYMESSAGE)
51-
52-
# install_name_tool -change CHANGE CHANGETO CHANGEBIN
53-
FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
54-
MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
55-
EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
56-
ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
30+
INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
5731

5832
FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
5933
IF (LIBFROM)

mac/cmake/3fw.cmake.in

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55

66
MESSAGE (STATUS "Bundling frameworks is not functional yet, skipping...")
77

8-
# need part of BundleUtilities
9-
INCLUDE (GetPrerequisites)
10-
118
# kill boolean warnings
129
CMAKE_POLICY (SET CMP0012 NEW)
1310

@@ -28,30 +25,7 @@ SET (QT_FWVER @QT_VERSION_MAJOR@)
2825
SET (ATEXECUTABLE "@executable_path")
2926
SET (ATLOADER "@loader_path")
3027

31-
# helper functions
32-
33-
FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
34-
get_prerequisites ("${LIBFILE}" LIBLIST 1 0 "" "")
35-
FOREACH (L ${LIBLIST})
36-
STRING (REGEX MATCH ".*${LIBNAME}.+" LL ${L})
37-
IF (LL)
38-
SET (${OUTVAR} ${LL} PARENT_SCOPE)
39-
ENDIF (LL)
40-
ENDFOREACH ()
41-
ENDFUNCTION (GET_INSTALL_NAME)
42-
43-
# message only if verbose makefiles (use for install_name_tool echos)
44-
FUNCTION (MYMESSAGE MSG)
45-
IF (@CMAKE_VERBOSE_MAKEFILE@)
46-
MESSAGE (STATUS "${MSG}")
47-
ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
48-
ENDFUNCTION (MYMESSAGE)
49-
50-
# install_name_tool -change CHANGE CHANGETO CHANGEBIN
51-
FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
52-
MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
53-
EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
54-
ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
28+
INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
5529

5630
FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
5731
IF (LIBFROM)

0 commit comments

Comments
 (0)