[QGIS Commit] r14612 - in trunk/qgis: cmake mac/cmake
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sat Nov 13 12:56:09 EST 2010
Author: kyngchaos
Date: 2010-11-13 09:56:09 -0800 (Sat, 13 Nov 2010)
New Revision: 14612
Added:
trunk/qgis/cmake/MacBundleMacros.cmake
Modified:
trunk/qgis/mac/cmake/0qgis.cmake.in
trunk/qgis/mac/cmake/1qt.cmake.in
trunk/qgis/mac/cmake/2lib.cmake.in
trunk/qgis/mac/cmake/3fw.cmake.in
Log:
fix bundling for latest cmake
Added: trunk/qgis/cmake/MacBundleMacros.cmake
===================================================================
--- trunk/qgis/cmake/MacBundleMacros.cmake (rev 0)
+++ trunk/qgis/cmake/MacBundleMacros.cmake 2010-11-13 17:56:09 UTC (rev 14612)
@@ -0,0 +1,35 @@
+# Mac Bundle Macros
+
+# BundleUtilities has functions to bundle and fixup libraries into an
+# application package, but it's all-or-nothing and is missing some features:
+#
+# - @loader_path
+# - helper functions can't get install_name, just dependencies
+
+# get the install_name of a library or framework
+# regex stuff taken from GetPrerequisites
+
+FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
+ EXECUTE_PROCESS (COMMAND otool -D "${LIBFILE}" OUTPUT_VARIABLE iname_out)
+ STRING (REGEX REPLACE ".*:\n" "" iname "${iname_out}")
+ IF (iname)
+ # trim it
+ STRING (REGEX MATCH "[^\n ].*[^\n ]" iname "${iname}")
+ SET (${OUTVAR} ${iname} PARENT_SCOPE)
+ ENDIF (iname)
+ENDFUNCTION (GET_INSTALL_NAME)
+
+# message only if verbose makefiles
+
+FUNCTION (MYMESSAGE MSG)
+ IF (@CMAKE_VERBOSE_MAKEFILE@)
+ MESSAGE (STATUS "${MSG}")
+ ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
+ENDFUNCTION (MYMESSAGE)
+
+# install_name_tool -change CHANGE CHANGETO CHANGEBIN
+
+FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
+ MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
+ EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
+ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
Modified: trunk/qgis/mac/cmake/0qgis.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/0qgis.cmake.in 2010-11-13 17:50:16 UTC (rev 14611)
+++ trunk/qgis/mac/cmake/0qgis.cmake.in 2010-11-13 17:56:09 UTC (rev 14612)
@@ -23,19 +23,8 @@
SET (ATEXECUTABLE "@executable_path")
SET (ATLOADER "@loader_path")
-# message only if verbose makefiles (use for install_name_tool echos)
-FUNCTION (MYMESSAGE MSG)
- IF (@CMAKE_VERBOSE_MAKEFILE@)
- MESSAGE (STATUS "${MSG}")
- ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
-ENDFUNCTION (MYMESSAGE)
+INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
-# isntall_name_tool -change CHANGE CHANGETO CHANGEBIN
-FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
- MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
- EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
-ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
-
FILE (GLOB QGLIBLIST RELATIVE ${QLIBDIR} ${QLIBDIR}/libqgis*.dylib)
FILE (GLOB QGPLUGLIST ${QPLUGDIR}/*.so)
FILE (GLOB QGPYLIST ${QGISPYDIR}/qgis/*.so)
Modified: trunk/qgis/mac/cmake/1qt.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/1qt.cmake.in 2010-11-13 17:50:16 UTC (rev 14611)
+++ trunk/qgis/mac/cmake/1qt.cmake.in 2010-11-13 17:56:09 UTC (rev 14612)
@@ -3,9 +3,6 @@
# so we configure it first to do substitutions
# make sure to use @varname@
-# need part of BundleUtilities
-INCLUDE (GetPrerequisites)
-
# kill boolean warnings
CMAKE_POLICY (SET CMP0012 NEW)
@@ -26,31 +23,8 @@
SET (ATEXECUTABLE "@executable_path")
SET (ATLOADER "@loader_path")
-# helper functions
+INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
-FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
- get_prerequisites ("${LIBFILE}" LIBLIST 1 0 "" "")
- FOREACH (L ${LIBLIST})
- STRING (REGEX MATCH ".*${LIBNAME}.+" LL ${L})
- IF (LL)
- SET (${OUTVAR} ${LL} PARENT_SCOPE)
- ENDIF (LL)
- ENDFOREACH ()
-ENDFUNCTION (GET_INSTALL_NAME)
-
-# message only if verbose makefiles
-FUNCTION (MYMESSAGE MSG)
- IF (@CMAKE_VERBOSE_MAKEFILE@)
- MESSAGE (STATUS "${MSG}")
- ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
-ENDFUNCTION (MYMESSAGE)
-
-# install_name_tool -change CHANGE CHANGETO CHANGEBIN
-FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
- MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
- EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
-ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
-
# build list of Qt frameworks to bundle
SET (QTLISTQG QtCore QtGui phonon)
Modified: trunk/qgis/mac/cmake/2lib.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/2lib.cmake.in 2010-11-13 17:50:16 UTC (rev 14611)
+++ trunk/qgis/mac/cmake/2lib.cmake.in 2010-11-13 17:56:09 UTC (rev 14612)
@@ -7,9 +7,6 @@
# libpq
# libfcgi (non-system)
-# need part of BundleUtilities
-INCLUDE (GetPrerequisites)
-
# kill boolean warnings
CMAKE_POLICY (SET CMP0012 NEW)
@@ -30,31 +27,8 @@
SET (ATEXECUTABLE "@executable_path")
SET (ATLOADER "@loader_path")
-# helper functions
+INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
-FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
- get_prerequisites ("${LIBFILE}" LIBLIST 1 0 "" "")
- FOREACH (L ${LIBLIST})
- STRING (REGEX MATCH ".*${LIBNAME}.+" LL ${L})
- IF (LL)
- SET (${OUTVAR} ${LL} PARENT_SCOPE)
- ENDIF (LL)
- ENDFOREACH ()
-ENDFUNCTION (GET_INSTALL_NAME)
-
-# message only if verbose makefiles (use for install_name_tool echos)
-FUNCTION (MYMESSAGE MSG)
- IF (@CMAKE_VERBOSE_MAKEFILE@)
- MESSAGE (STATUS "${MSG}")
- ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
-ENDFUNCTION (MYMESSAGE)
-
-# install_name_tool -change CHANGE CHANGETO CHANGEBIN
-FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
- MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
- EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
-ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
-
FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
IF (LIBFROM)
SET (LIB_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/${LIBTO}")
Modified: trunk/qgis/mac/cmake/3fw.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/3fw.cmake.in 2010-11-13 17:50:16 UTC (rev 14611)
+++ trunk/qgis/mac/cmake/3fw.cmake.in 2010-11-13 17:56:09 UTC (rev 14612)
@@ -5,9 +5,6 @@
MESSAGE (STATUS "Bundling frameworks is not functional yet, skipping...")
-# need part of BundleUtilities
-INCLUDE (GetPrerequisites)
-
# kill boolean warnings
CMAKE_POLICY (SET CMP0012 NEW)
@@ -28,31 +25,8 @@
SET (ATEXECUTABLE "@executable_path")
SET (ATLOADER "@loader_path")
-# helper functions
+INCLUDE (@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake)
-FUNCTION (GET_INSTALL_NAME LIBFILE LIBNAME OUTVAR)
- get_prerequisites ("${LIBFILE}" LIBLIST 1 0 "" "")
- FOREACH (L ${LIBLIST})
- STRING (REGEX MATCH ".*${LIBNAME}.+" LL ${L})
- IF (LL)
- SET (${OUTVAR} ${LL} PARENT_SCOPE)
- ENDIF (LL)
- ENDFOREACH ()
-ENDFUNCTION (GET_INSTALL_NAME)
-
-# message only if verbose makefiles (use for install_name_tool echos)
-FUNCTION (MYMESSAGE MSG)
- IF (@CMAKE_VERBOSE_MAKEFILE@)
- MESSAGE (STATUS "${MSG}")
- ENDIF (@CMAKE_VERBOSE_MAKEFILE@)
-ENDFUNCTION (MYMESSAGE)
-
-# install_name_tool -change CHANGE CHANGETO CHANGEBIN
-FUNCTION (INSTALLNAMETOOL_CHANGE CHANGE CHANGETO CHANGEBIN)
- MYMESSAGE ("install_name_tool -change ${CHANGE} ${CHANGETO} \"${CHANGEBIN}\"")
- EXECUTE_PROCESS (COMMAND install_name_tool -change ${CHANGE} ${CHANGETO} "${CHANGEBIN}")
-ENDFUNCTION (INSTALLNAMETOOL_CHANGE)
-
FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
IF (LIBFROM)
SET (LIB_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/${LIBTO}")
More information about the QGIS-commit
mailing list