[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