[QGIS Commit] r14458 - in trunk/qgis: . cmake mac mac/cmake src/app src/helpviewer src/mac/Contents

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sat Oct 30 15:37:00 EDT 2010


Author: kyngchaos
Date: 2010-10-30 12:37:00 -0700 (Sat, 30 Oct 2010)
New Revision: 14458

Added:
   trunk/qgis/mac/CMakeLists.txt
   trunk/qgis/mac/cmake/
   trunk/qgis/mac/cmake/0qgis.cmake.in
   trunk/qgis/mac/cmake/1qt.cmake.in
   trunk/qgis/mac/cmake/2lib.cmake.in
Modified:
   trunk/qgis/CMakeLists.txt
   trunk/qgis/cmake/FindGDAL.cmake
   trunk/qgis/cmake/FindGEOS.cmake
   trunk/qgis/cmake/FindGSL.cmake
   trunk/qgis/cmake/FindProj.cmake
   trunk/qgis/cmake/FindPyQt.py
   trunk/qgis/cmake/FindPyQt4.cmake
   trunk/qgis/cmake/FindSIP.cmake
   trunk/qgis/cmake/FindSIP.py
   trunk/qgis/cmake/FindSPATIALITE.cmake
   trunk/qgis/cmake/FindSqlite3.cmake
   trunk/qgis/src/app/CMakeLists.txt
   trunk/qgis/src/helpviewer/CMakeLists.txt
   trunk/qgis/src/mac/Contents/CMakeLists.txt
   trunk/qgis/src/mac/Contents/Info.plist.in
Log:
Mac cmake update:
cleaner framework detection;
optional bundle Qt/PyQt and libraries, and fixup paths

Modified: trunk/qgis/CMakeLists.txt
===================================================================
--- trunk/qgis/CMakeLists.txt	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/CMakeLists.txt	2010-10-30 19:37:00 UTC (rev 14458)
@@ -5,6 +5,11 @@
 SET(RELEASE_NAME "Trunk")
 SET(PROJECT_VERSION ${COMPLETE_VERSION})
 PROJECT(qgis${PROJECT_VERSION})
+IF (APPLE)
+  SET(QGIS_APP_NAME "QGIS")
+ELSE (APPLE)
+  SET(QGIS_APP_NAME "qgis")
+ENDIF (APPLE)
 
 # Note the version no is Mmmpp for Major/minor/patch, 0-padded, thus '10100' for 1.1.0
 MATH(EXPR QGIS_VERSION_INT "${CPACK_PACKAGE_VERSION_MAJOR}*10000+${CPACK_PACKAGE_VERSION_MINOR}*100+${CPACK_PACKAGE_VERSION_PATCH}")
@@ -268,14 +273,43 @@
 
   IF (APPLE)
     # for Mac OS X, everything is put inside an application bundle
-    SET (CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}.app/Contents/MacOS)
+    SET (QGIS_MACAPP_PREFIX ${CMAKE_INSTALL_PREFIX}/${QGIS_APP_NAME}.app/Contents)
+    SET (CMAKE_INSTALL_PREFIX ${QGIS_MACAPP_PREFIX}/MacOS)
     # path for library references
     SET (CMAKE_INSTALL_NAME_DIR @executable_path/lib)
+    # 4 bundling levels, each includes previous
+    #   0  nothing
+    #   1  Qt frameworks
+    #   2  non-system libraries, "standard"
+    #   3  non-system frameworks, "standalone"
+    SET (QGIS_MACAPP_BUNDLE 0 CACHE STRING "What to bundle into app package")
+    # if we have @loader_path, >=OSX 10.5 (darwin 9+)
+    IF (CMAKE_SYSTEM_VERSION VERSION_GREATER 9.0.0 OR CMAKE_SYSTEM_VERSION VERSION_EQUAL 9.0.0)
+        SET (OSX_HAVE_LOADERPATH 1)
+    ELSE ()
+        SET (OSX_HAVE_LOADERPATH 0)
+    ENDIF ()
     #this will define ${APP_SERVICES_LIBRARY}
     FIND_LIBRARY(APP_SERVICES_LIBRARY ApplicationServices )
-  ENDIF (APPLE)
 
-  # common for MAC and UNIX
+    SET (DEFAULT_BIN_SUBDIR      bin)
+    SET (QGIS_BIN_SUBDIR_REV     ..)
+    SET (DEFAULT_CGIBIN_SUBDIR   fcgi-bin)
+    SET (QGIS_CGIBIN_SUBDIR_REV  ..)
+    SET (DEFAULT_LIB_SUBDIR      lib)
+    SET (QGIS_LIB_SUBDIR_REV     ..)
+    SET (QGIS_FW_SUBDIR          ../Frameworks)
+    SET (QGIS_FW_SUBDIR_REV      ../MacOS)
+    SET (DEFAULT_DATA_SUBDIR     ../Resources)
+    SET (QGIS_DATA_SUBDIR_REV    ../MacOS)
+    SET (DEFAULT_LIBEXEC_SUBDIR  lib/qgis)
+    SET (QGIS_LIBEXEC_SUBDIR_REV ../..)
+    SET (DEFAULT_PLUGIN_SUBDIR   ../PlugIns/qgis)
+    SET (QGIS_PLUGIN_SUBDIR_REV  ../../MacOS)
+    SET (DEFAULT_INCLUDE_SUBDIR  include/qgis)
+
+  ELSE (APPLE)
+    # UNIX
   SET (DEFAULT_BIN_SUBDIR     bin)
   SET (DEFAULT_CGIBIN_SUBDIR  bin)
   SET (DEFAULT_LIB_SUBDIR     lib${LIB_SUFFIX})
@@ -283,6 +317,7 @@
   SET (DEFAULT_LIBEXEC_SUBDIR lib${LIB_SUFFIX}/qgis)
   SET (DEFAULT_PLUGIN_SUBDIR  lib${LIB_SUFFIX}/qgis/plugins)
   SET (DEFAULT_INCLUDE_SUBDIR include/qgis)
+  ENDIF (APPLE)
 
 ENDIF (WIN32)
 
@@ -334,7 +369,7 @@
 
 # mark *_SUBDIR variables as advanced as this is not something
 # that an average user would use
-MARK_AS_ADVANCED (QGIS_BIN_SUBDIR QGIS_LIB_SUBDIR QGIS_LIBEXEC_SUBDIR QGIS_DATA_SUBDIR QGIS_PLUGIN_SUBDIR QGIS_INCLUDE_SUBDIR)
+MARK_AS_ADVANCED (QGIS_BIN_SUBDIR QGIS_CGIBIN_SUBDIR QGIS_LIB_SUBDIR QGIS_LIBEXEC_SUBDIR QGIS_DATA_SUBDIR QGIS_PLUGIN_SUBDIR QGIS_INCLUDE_SUBDIR)
 
 # full paths for the installation
 SET (QGIS_BIN_DIR     ${QGIS_BIN_SUBDIR})
@@ -442,6 +477,11 @@
   SUBDIRS(tests)
 ENDIF (ENABLE_TESTS)
 
+IF (APPLE)
+  # must be last for install, so install_name_tool can do its work
+  SUBDIRS (mac)
+ENDIF (APPLE)
+
 #############################################################
 # install stuff
 
@@ -449,12 +489,11 @@
          DESTINATION ${QGIS_DATA_DIR}/doc)
 
 # manual page - makes sense only on unix systems
-IF (UNIX)
+IF (UNIX AND NOT APPLE)
   INSTALL (FILES qgis.1 qgis_help.1
            DESTINATION ${QGIS_MANUAL_DIR}/man1)
-ENDIF (UNIX)
+ENDIF (UNIX AND NOT APPLE)
 
-
 #############################################################
 # Uninstall stuff see: http://www.vtk.org/Wiki/CMake_FAQ
 CONFIGURE_FILE(

Modified: trunk/qgis/cmake/FindGDAL.cmake
===================================================================
--- trunk/qgis/cmake/FindGDAL.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindGDAL.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -38,98 +38,112 @@
   IF(UNIX) 
 
     # try to use framework on mac
+    # want clean framework path, not unix compatibility path
     IF (APPLE)
-      SET (GDAL_MAC_PATH /Library/Frameworks/GDAL.framework/Programs)
+      IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
+          OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
+          OR NOT CMAKE_FIND_FRAMEWORK)
+        SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
+        SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
+        FIND_LIBRARY(GDAL_LIBRARY GDAL)
+        IF (GDAL_LIBRARY)
+          # they're all the same in a framework
+          SET (GDAL_INCLUDE_DIR ${GDAL_LIBRARY}/Headers CACHE PATH "Path to a file.")
+          SET (GDAL_CONFIG ${GDAL_LIBRARY}/Programs/geos-config CACHE FILEPATH "Path to a program.")
+        ENDIF (GDAL_LIBRARY)
+        SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
+      ENDIF ()
     ENDIF (APPLE)
 
-    SET(GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME}/bin" CACHE STRING "preferred path to GDAL (gdal-config)")
-    SET(GDAL_CONFIG_PREFER_FWTOOLS_PATH "$ENV{FWTOOLS_HOME}/bin_safe" CACHE STRING "preferred path to GDAL (gdal-config) from FWTools")
-    FIND_PROGRAM(GDAL_CONFIG gdal-config
-      ${GDAL_CONFIG_PREFER_PATH}
-      ${GDAL_CONFIG_PREFER_FWTOOLS_PATH}
-      ${GDAL_MAC_PATH}
-      /usr/local/bin/
-      /usr/bin/
-      )
-    # MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
+    IF (NOT GDAL_INCLUDE_DIR AND NOT GDAL_LIBRARY AND NOT GDAL_CONFIG)
+      # didn't find OS X framework, and was not set by user
+      SET(GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME}/bin" CACHE STRING "preferred path to GDAL (gdal-config)")
+      SET(GDAL_CONFIG_PREFER_FWTOOLS_PATH "$ENV{FWTOOLS_HOME}/bin_safe" CACHE STRING "preferred path to GDAL (gdal-config) from FWTools")
+      FIND_PROGRAM(GDAL_CONFIG gdal-config
+          ${GDAL_CONFIG_PREFER_PATH}
+          ${GDAL_CONFIG_PREFER_FWTOOLS_PATH}
+          /usr/local/bin/
+          /usr/bin/
+          )
+      # MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
     
-    IF (GDAL_CONFIG) 
+      IF (GDAL_CONFIG) 
 
-      ## extract gdal version 
-      EXEC_PROGRAM(${GDAL_CONFIG}
-        ARGS --version
-        OUTPUT_VARIABLE GDAL_VERSION )
-      STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GDAL_VERSION_MAJOR "${GDAL_VERSION}")
-      STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
+        ## extract gdal version 
+        EXEC_PROGRAM(${GDAL_CONFIG}
+            ARGS --version
+            OUTPUT_VARIABLE GDAL_VERSION )
+        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GDAL_VERSION_MAJOR "${GDAL_VERSION}")
+        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
   
-      # MESSAGE("DBG GDAL_VERSION ${GDAL_VERSION}")
-      # MESSAGE("DBG GDAL_VERSION_MAJOR ${GDAL_VERSION_MAJOR}")
-      # MESSAGE("DBG GDAL_VERSION_MINOR ${GDAL_VERSION_MINOR}")
+        # MESSAGE("DBG GDAL_VERSION ${GDAL_VERSION}")
+        # MESSAGE("DBG GDAL_VERSION_MAJOR ${GDAL_VERSION_MAJOR}")
+        # MESSAGE("DBG GDAL_VERSION_MINOR ${GDAL_VERSION_MINOR}")
   
-      # check for gdal version
-      # version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
-      # According to INSTALL, 1.4.0+ is required
-      IF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4)
+        # check for gdal version
+        # version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
+        # According to INSTALL, 1.4.0+ is required
+        IF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4)
           MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 1.4.0 or higher.")
-      ENDIF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4)
+        ENDIF (GDAL_VERSION_MAJOR LESS 1 OR GDAL_VERSION_MINOR LESS 4)
 
-      # set INCLUDE_DIR to prefix+include
-      EXEC_PROGRAM(${GDAL_CONFIG}
-        ARGS --prefix
-        OUTPUT_VARIABLE GDAL_PREFIX)
-      #SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
-      FIND_PATH(GDAL_INCLUDE_DIR 
-        gdal.h 
-        ${GDAL_PREFIX}/include/gdal
-        ${GDAL_PREFIX}/include
-        /usr/local/include 
-        /usr/include 
-        )
+        # set INCLUDE_DIR to prefix+include
+        EXEC_PROGRAM(${GDAL_CONFIG}
+            ARGS --prefix
+            OUTPUT_VARIABLE GDAL_PREFIX)
+        #SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
+        FIND_PATH(GDAL_INCLUDE_DIR 
+            gdal.h 
+            ${GDAL_PREFIX}/include/gdal
+            ${GDAL_PREFIX}/include
+            /usr/local/include 
+            /usr/include 
+            )
 
-      ## extract link dirs for rpath  
-      EXEC_PROGRAM(${GDAL_CONFIG}
-        ARGS --libs
-        OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
+        ## extract link dirs for rpath  
+        EXEC_PROGRAM(${GDAL_CONFIG}
+            ARGS --libs
+            OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
 
-      ## split off the link dirs (for rpath)
-      ## use regular expression to match wildcard equivalent "-L*<endchar>"
-      ## with <endchar> is a space or a semicolon
-      STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
-        GDAL_LINK_DIRECTORIES_WITH_PREFIX 
-        "${GDAL_CONFIG_LIBS}" )
+        ## split off the link dirs (for rpath)
+        ## use regular expression to match wildcard equivalent "-L*<endchar>"
+        ## with <endchar> is a space or a semicolon
+        STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
+            GDAL_LINK_DIRECTORIES_WITH_PREFIX 
+            "${GDAL_CONFIG_LIBS}" )
         #      MESSAGE("DBG  GDAL_LINK_DIRECTORIES_WITH_PREFIX=${GDAL_LINK_DIRECTORIES_WITH_PREFIX}")
 
-      ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
+        ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
       
-      IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
-        STRING(REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
-      ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
+        IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
+          STRING(REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
+        ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
 
-      ## split off the name
-      ## use regular expression to match wildcard equivalent "-l*<endchar>"
-      ## with <endchar> is a space or a semicolon
-      STRING(REGEX MATCHALL "[-][l]([^ ;])+" 
-        GDAL_LIB_NAME_WITH_PREFIX 
-        "${GDAL_CONFIG_LIBS}" )
+        ## split off the name
+        ## use regular expression to match wildcard equivalent "-l*<endchar>"
+        ## with <endchar> is a space or a semicolon
+        STRING(REGEX MATCHALL "[-][l]([^ ;])+" 
+            GDAL_LIB_NAME_WITH_PREFIX 
+            "${GDAL_CONFIG_LIBS}" )
         #      MESSAGE("DBG  GDAL_LIB_NAME_WITH_PREFIX=${GDAL_LIB_NAME_WITH_PREFIX}")
 
 
-      ## remove prefix -l because we need the pure name
+        ## remove prefix -l because we need the pure name
       
-      IF (GDAL_LIB_NAME_WITH_PREFIX)
-        STRING(REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
-      ENDIF (GDAL_LIB_NAME_WITH_PREFIX)
+        IF (GDAL_LIB_NAME_WITH_PREFIX)
+          STRING(REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
+        ENDIF (GDAL_LIB_NAME_WITH_PREFIX)
 
-      IF (APPLE)
-        SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL)
-      ELSE (APPLE)
-       SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.so CACHE STRING INTERNAL)
-      ENDIF (APPLE)
+        IF (APPLE)
+          SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL)
+        ELSE (APPLE)
+          SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.so CACHE STRING INTERNAL)
+        ENDIF (APPLE)
       
-    ELSE(GDAL_CONFIG)
-      MESSAGE("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG}")
-    ENDIF(GDAL_CONFIG)
-
+      ELSE(GDAL_CONFIG)
+        MESSAGE("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG}")
+      ENDIF(GDAL_CONFIG)
+    ENDIF (NOT GDAL_INCLUDE_DIR AND NOT GDAL_LIBRARY AND NOT GDAL_CONFIG)
   ENDIF(UNIX)
 ENDIF(WIN32)
 

Modified: trunk/qgis/cmake/FindGEOS.cmake
===================================================================
--- trunk/qgis/cmake/FindGEOS.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindGEOS.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -43,91 +43,105 @@
  IF(UNIX) 
 
     # try to use framework on mac
+    # want clean framework path, not unix compatibility path
     IF (APPLE)
-      SET (GEOS_MAC_PATH /Library/Frameworks/GEOS.framework/unix/bin)
+      IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
+          OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
+          OR NOT CMAKE_FIND_FRAMEWORK)
+        SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
+        SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
+        FIND_LIBRARY(GEOS_LIBRARY GEOS)
+        IF (GEOS_LIBRARY)
+          # they're all the same in a framework
+          SET (GEOS_INCLUDE_DIR ${GEOS_LIBRARY}/Headers CACHE PATH "Path to a file.")
+          SET (GEOS_CONFIG ${GEOS_LIBRARY}/Programs/geos-config CACHE FILEPATH "Path to a program.")
+        ENDIF (GEOS_LIBRARY)
+        SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
+      ENDIF ()
     ENDIF (APPLE)
 
-    SET(GEOS_CONFIG_PREFER_PATH "$ENV{GEOS_HOME}/bin" CACHE STRING "preferred path to GEOS (geos-config)")
-    FIND_PROGRAM(GEOS_CONFIG geos-config
-      ${GEOS_CONFIG_PREFER_PATH}
-      ${GEOS_MAC_PATH}
-      /usr/local/bin/
-      /usr/bin/
-      )
-    #MESSAGE("DBG GEOS_CONFIG ${GEOS_CONFIG}")
+    IF (NOT GEOS_INCLUDE_DIR AND NOT GEOS_LIBRARY AND NOT GEOS_CONFIG)
+      # didn't find OS X framework, and was not set by user
+      SET(GEOS_CONFIG_PREFER_PATH "$ENV{GEOS_HOME}/bin" CACHE STRING "preferred path to GEOS (geos-config)")
+      FIND_PROGRAM(GEOS_CONFIG geos-config
+          ${GEOS_CONFIG_PREFER_PATH}
+          /usr/local/bin/
+          /usr/bin/
+          )
+      #MESSAGE("DBG GEOS_CONFIG ${GEOS_CONFIG}")
 
-    IF (GEOS_CONFIG)
+      IF (GEOS_CONFIG)
       
-      EXEC_PROGRAM(${GEOS_CONFIG}
-        ARGS --version
-        OUTPUT_VARIABLE GEOS_VERSION)
-      STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GEOS_VERSION_MAJOR "${GEOS_VERSION}")
-      STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GEOS_VERSION_MINOR "${GEOS_VERSION}")
+        EXEC_PROGRAM(${GEOS_CONFIG}
+            ARGS --version
+            OUTPUT_VARIABLE GEOS_VERSION)
+        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GEOS_VERSION_MAJOR "${GEOS_VERSION}")
+        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GEOS_VERSION_MINOR "${GEOS_VERSION}")
 
-      IF (GEOS_VERSION_MAJOR LESS 3)
+        IF (GEOS_VERSION_MAJOR LESS 3)
           MESSAGE (FATAL_ERROR "GEOS version is too old (${GEOS_VERSION}). Use 3.0.0 or higher.")
-      ENDIF (GEOS_VERSION_MAJOR LESS 3)
+        ENDIF (GEOS_VERSION_MAJOR LESS 3)
      
-      # set INCLUDE_DIR to prefix+include
-      EXEC_PROGRAM(${GEOS_CONFIG}
-        ARGS --prefix
-        OUTPUT_VARIABLE GEOS_PREFIX)
+        # set INCLUDE_DIR to prefix+include
+        EXEC_PROGRAM(${GEOS_CONFIG}
+            ARGS --prefix
+            OUTPUT_VARIABLE GEOS_PREFIX)
 
-      FIND_PATH(GEOS_INCLUDE_DIR 
-        geos_c.h 
-        ${GEOS_PREFIX}/include
-        /usr/local/include 
-        /usr/include 
-        )
+        FIND_PATH(GEOS_INCLUDE_DIR 
+            geos_c.h 
+            ${GEOS_PREFIX}/include
+            /usr/local/include 
+            /usr/include 
+            )
 
-      ## extract link dirs for rpath  
-      EXEC_PROGRAM(${GEOS_CONFIG}
-        ARGS --libs
-        OUTPUT_VARIABLE GEOS_CONFIG_LIBS )
+        ## extract link dirs for rpath  
+        EXEC_PROGRAM(${GEOS_CONFIG}
+            ARGS --libs
+            OUTPUT_VARIABLE GEOS_CONFIG_LIBS )
 
-      ## split off the link dirs (for rpath)
-      ## use regular expression to match wildcard equivalent "-L*<endchar>"
-      ## with <endchar> is a space or a semicolon
-      STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
-        GEOS_LINK_DIRECTORIES_WITH_PREFIX 
-        "${GEOS_CONFIG_LIBS}" )
-      #MESSAGE("DBG  GEOS_LINK_DIRECTORIES_WITH_PREFIX=${GEOS_LINK_DIRECTORIES_WITH_PREFIX}")
+        ## split off the link dirs (for rpath)
+        ## use regular expression to match wildcard equivalent "-L*<endchar>"
+        ## with <endchar> is a space or a semicolon
+        STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
+            GEOS_LINK_DIRECTORIES_WITH_PREFIX 
+            "${GEOS_CONFIG_LIBS}" )
+        #MESSAGE("DBG  GEOS_LINK_DIRECTORIES_WITH_PREFIX=${GEOS_LINK_DIRECTORIES_WITH_PREFIX}")
 
-      ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
+        ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
       
-      IF (GEOS_LINK_DIRECTORIES_WITH_PREFIX)
-        STRING(REGEX REPLACE "[-][L]" "" GEOS_LINK_DIRECTORIES ${GEOS_LINK_DIRECTORIES_WITH_PREFIX} )
-      ENDIF (GEOS_LINK_DIRECTORIES_WITH_PREFIX)
+        IF (GEOS_LINK_DIRECTORIES_WITH_PREFIX)
+          STRING(REGEX REPLACE "[-][L]" "" GEOS_LINK_DIRECTORIES ${GEOS_LINK_DIRECTORIES_WITH_PREFIX} )
+        ENDIF (GEOS_LINK_DIRECTORIES_WITH_PREFIX)
 
-      ### XXX - mloskot: geos-config --libs does not return -lgeos_c, so set it manually
-      ## split off the name
-      ## use regular expression to match wildcard equivalent "-l*<endchar>"
-      ## with <endchar> is a space or a semicolon
-      #STRING(REGEX MATCHALL "[-][l]([^ ;])+" 
-      #  GEOS_LIB_NAME_WITH_PREFIX 
-      #  "${GEOS_CONFIG_LIBS}" )
-      #MESSAGE("DBG  GEOS_CONFIG_LIBS=${GEOS_CONFIG_LIBS}")
-      #MESSAGE("DBG  GEOS_LIB_NAME_WITH_PREFIX=${GEOS_LIB_NAME_WITH_PREFIX}")
-      SET(GEOS_LIB_NAME_WITH_PREFIX -lgeos_c CACHE STRING INTERNAL)
+        ### XXX - mloskot: geos-config --libs does not return -lgeos_c, so set it manually
+        ## split off the name
+        ## use regular expression to match wildcard equivalent "-l*<endchar>"
+        ## with <endchar> is a space or a semicolon
+        #STRING(REGEX MATCHALL "[-][l]([^ ;])+" 
+        #  GEOS_LIB_NAME_WITH_PREFIX 
+        #  "${GEOS_CONFIG_LIBS}" )
+        #MESSAGE("DBG  GEOS_CONFIG_LIBS=${GEOS_CONFIG_LIBS}")
+        #MESSAGE("DBG  GEOS_LIB_NAME_WITH_PREFIX=${GEOS_LIB_NAME_WITH_PREFIX}")
+        SET(GEOS_LIB_NAME_WITH_PREFIX -lgeos_c CACHE STRING INTERNAL)
 
-      ## remove prefix -l because we need the pure name
+        ## remove prefix -l because we need the pure name
       
-      IF (GEOS_LIB_NAME_WITH_PREFIX)
-        STRING(REGEX REPLACE "[-][l]" "" GEOS_LIB_NAME ${GEOS_LIB_NAME_WITH_PREFIX} )
-      ENDIF (GEOS_LIB_NAME_WITH_PREFIX)
-      #MESSAGE("DBG  GEOS_LIB_NAME=${GEOS_LIB_NAME}")
+        IF (GEOS_LIB_NAME_WITH_PREFIX)
+          STRING(REGEX REPLACE "[-][l]" "" GEOS_LIB_NAME ${GEOS_LIB_NAME_WITH_PREFIX} )
+        ENDIF (GEOS_LIB_NAME_WITH_PREFIX)
+        #MESSAGE("DBG  GEOS_LIB_NAME=${GEOS_LIB_NAME}")
 
-      IF (APPLE)
-        SET(GEOS_LIBRARY ${GEOS_LINK_DIRECTORIES}/lib${GEOS_LIB_NAME}.dylib CACHE STRING INTERNAL)
-      ELSE (APPLE)
-       SET(GEOS_LIBRARY ${GEOS_LINK_DIRECTORIES}/lib${GEOS_LIB_NAME}.so CACHE STRING INTERNAL)
-      ENDIF (APPLE)
-      #MESSAGE("DBG  GEOS_LIBRARY=${GEOS_LIBRARY}")
+        IF (APPLE)
+          SET(GEOS_LIBRARY ${GEOS_LINK_DIRECTORIES}/lib${GEOS_LIB_NAME}.dylib CACHE STRING INTERNAL)
+        ELSE (APPLE)
+          SET(GEOS_LIBRARY ${GEOS_LINK_DIRECTORIES}/lib${GEOS_LIB_NAME}.so CACHE STRING INTERNAL)
+        ENDIF (APPLE)
+        #MESSAGE("DBG  GEOS_LIBRARY=${GEOS_LIBRARY}")
       
-    ELSE(GEOS_CONFIG)
-      MESSAGE("FindGEOS.cmake: geos-config not found. Please set it manually. GEOS_CONFIG=${GEOS_CONFIG}")
-    ENDIF(GEOS_CONFIG)
-
+      ELSE(GEOS_CONFIG)
+        MESSAGE("FindGEOS.cmake: geos-config not found. Please set it manually. GEOS_CONFIG=${GEOS_CONFIG}")
+      ENDIF(GEOS_CONFIG)
+    ENDIF(NOT GEOS_INCLUDE_DIR AND NOT GEOS_LIBRARY AND NOT GEOS_CONFIG)
   ENDIF(UNIX)
 ENDIF(WIN32)
 

Modified: trunk/qgis/cmake/FindGSL.cmake
===================================================================
--- trunk/qgis/cmake/FindGSL.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindGSL.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -49,70 +49,87 @@
   SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB})
 ELSE(WIN32)
   IF(UNIX) 
+
     # try to use framework on mac
+    # want clean framework path, not unix compatibility path
     IF (APPLE)
-      SET (GSL_MAC_PATH /Library/Frameworks/GSL.framework/Programs)
+      IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
+          OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
+          OR NOT CMAKE_FIND_FRAMEWORK)
+        SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
+        SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
+        FIND_LIBRARY(GSL_LIBRARIES GSL)
+        IF (GSL_LIBRARIES)
+          # they're all the same in a framework
+          SET (GSL_PREFIX ${GSL_LIBRARIES})
+          SET (GSL_INCLUDE_DIR ${GSL_LIBRARIES}/Headers CACHE PATH "Path to a file.")
+          SET (GSL_CONFIG ${GSL_LIBRARIES}/Programs/gsl-config CACHE FILEPATH "Path to a program.")
+        ENDIF (GSL_LIBRARIES)
+        SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
+      ENDIF ()
     ENDIF (APPLE)
-    SET(GSL_CONFIG_PREFER_PATH "$ENV{GSL_HOME}/bin" CACHE STRING "preferred path to GSL (gsl-config)")
-    FIND_PROGRAM(GSL_CONFIG gsl-config
-      ${GSL_CONFIG_PREFER_PATH}
-      ${GSL_MAC_PATH}
-      /usr/local/bin/
-      /usr/bin/
-      )
-    # MESSAGE("DBG GSL_CONFIG ${GSL_CONFIG}")
+    
+    IF (NOT GSL_INCLUDE_DIR AND NOT GSL_LIBRARIES AND NOT GSL_CONFIG)
+      # didn't find OS X framework, or was set by user
+      SET(GSL_CONFIG_PREFER_PATH "$ENV{GSL_HOME}/bin" CACHE STRING "preferred path to GSL (gsl-config)")
+      FIND_PROGRAM(GSL_CONFIG gsl-config
+          ${GSL_CONFIG_PREFER_PATH}
+          /usr/local/bin/
+          /usr/bin/
+          )
+      # MESSAGE("DBG GSL_CONFIG ${GSL_CONFIG}")
 
-    IF (GSL_CONFIG) 
-      # set CXXFLAGS to be fed into CXX_FLAGS by the user:
-      SET(GSL_CXX_FLAGS "`${GSL_CONFIG} --cflags`")
+      IF (GSL_CONFIG) 
+        # set CXXFLAGS to be fed into CXX_FLAGS by the user:
+        SET(GSL_CXX_FLAGS "`${GSL_CONFIG} --cflags`")
       
-      # set INCLUDE_DIRS to prefix+include
-      EXEC_PROGRAM(${GSL_CONFIG}
-        ARGS --prefix
-        OUTPUT_VARIABLE GSL_PREFIX)
-      SET(GSL_INCLUDE_DIR ${GSL_PREFIX}/include CACHE STRING INTERNAL)
+        # set INCLUDE_DIRS to prefix+include
+        EXEC_PROGRAM(${GSL_CONFIG}
+            ARGS --prefix
+            OUTPUT_VARIABLE GSL_PREFIX)
+        SET(GSL_INCLUDE_DIR ${GSL_PREFIX}/include CACHE STRING INTERNAL)
 
-      # set link libraries and link flags
-      EXEC_PROGRAM(${GSL_CONFIG}
-          ARGS --libs
-          OUTPUT_VARIABLE GSL_LIBRARIES)
+        # set link libraries and link flags
+        EXEC_PROGRAM(${GSL_CONFIG}
+            ARGS --libs
+            OUTPUT_VARIABLE GSL_LIBRARIES)
       
-      ## extract link dirs for rpath  
-      EXEC_PROGRAM(${GSL_CONFIG}
-        ARGS ${LIBS_ARG}
-        OUTPUT_VARIABLE GSL_CONFIG_LIBS )
+        ## extract link dirs for rpath  
+        EXEC_PROGRAM(${GSL_CONFIG}
+            ARGS ${LIBS_ARG}
+            OUTPUT_VARIABLE GSL_CONFIG_LIBS )
 
-      ## split off the link dirs (for rpath)
-      ## use regular expression to match wildcard equivalent "-L*<endchar>"
-      ## with <endchar> is a space or a semicolon
-      STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
-        GSL_LINK_DIRECTORIES_WITH_PREFIX 
-        "${GSL_CONFIG_LIBS}" )
+        ## split off the link dirs (for rpath)
+        ## use regular expression to match wildcard equivalent "-L*<endchar>"
+        ## with <endchar> is a space or a semicolon
+        STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
+            GSL_LINK_DIRECTORIES_WITH_PREFIX 
+            "${GSL_CONFIG_LIBS}" )
         #      MESSAGE("DBG  GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}")
 
-      ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
+        ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
       
-      IF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
-        STRING(REGEX REPLACE "[-][L]" "" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} )
-      ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
-      SET(GSL_EXE_LINKER_FLAGS "-Wl,-rpath,${GSL_LINK_DIRECTORIES}" CACHE STRING INTERNAL)
-      #      MESSAGE("DBG  GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}")
-      #      MESSAGE("DBG  GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}")
+        IF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
+          STRING(REGEX REPLACE "[-][L]" "" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} )
+        ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
+        SET(GSL_EXE_LINKER_FLAGS "-Wl,-rpath,${GSL_LINK_DIRECTORIES}" CACHE STRING INTERNAL)
+        #      MESSAGE("DBG  GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}")
+        #      MESSAGE("DBG  GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}")
 
-      #      ADD_DEFINITIONS("-DHAVE_GSL")
-      #      SET(GSL_DEFINITIONS "-DHAVE_GSL")
-      MARK_AS_ADVANCED(
-        GSL_CXX_FLAGS
-        GSL_INCLUDE_DIR
-        GSL_LIBRARIES
-        GSL_LINK_DIRECTORIES
-        GSL_DEFINITIONS
-      )
+        #      ADD_DEFINITIONS("-DHAVE_GSL")
+        #      SET(GSL_DEFINITIONS "-DHAVE_GSL")
+        MARK_AS_ADVANCED(
+            GSL_CXX_FLAGS
+            GSL_INCLUDE_DIR
+            GSL_LIBRARIES
+            GSL_LINK_DIRECTORIES
+            GSL_DEFINITIONS
+        )
       
-    ELSE(GSL_CONFIG)
-      MESSAGE("FindGSL.cmake: gsl-config not found. Please set it manually. GSL_CONFIG=${GSL_CONFIG}")
-    ENDIF(GSL_CONFIG)
-
+      ELSE(GSL_CONFIG)
+        MESSAGE("FindGSL.cmake: gsl-config not found. Please set it manually. GSL_CONFIG=${GSL_CONFIG}")
+      ENDIF(GSL_CONFIG)
+    ENDIF (NOT GSL_INCLUDE_DIR AND NOT GSL_LIBRARIES AND NOT GSL_CONFIG)
   ENDIF(UNIX)
 ENDIF(WIN32)
 

Modified: trunk/qgis/cmake/FindProj.cmake
===================================================================
--- trunk/qgis/cmake/FindProj.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindProj.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -19,14 +19,26 @@
 # searching for the same item do nothing. 
 
 # try to use framework on mac
+# want clean framework path, not unix compatibility path
 IF (APPLE)
-  SET (PROJ_MAC_INC_PATH /Library/Frameworks/PROJ.framework/Headers)
+  IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
+      OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
+      OR NOT CMAKE_FIND_FRAMEWORK)
+    SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
+    SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
+    #FIND_PATH(PROJ_INCLUDE_DIR PROJ/proj_api.h)
+    FIND_LIBRARY(PROJ_LIBRARY PROJ)
+    IF (PROJ_LIBRARY)
+      # FIND_PATH doesn't add "Headers" for a framework
+      SET (PROJ_INCLUDE_DIR ${PROJ_LIBRARY}/Headers CACHE PATH "Path to a file.")
+    ENDIF (PROJ_LIBRARY)
+    SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
+  ENDIF ()
 ENDIF (APPLE)
 
 FIND_PATH(PROJ_INCLUDE_DIR proj_api.h
   "$ENV{LIB_DIR}/include/proj"
   "$ENV{LIB_DIR}/include"
-  ${PROJ_MAC_INC_PATH}
   #mingw
   c:/msys/local/include
   NO_DEFAULT_PATH

Modified: trunk/qgis/cmake/FindPyQt.py
===================================================================
--- trunk/qgis/cmake/FindPyQt.py	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindPyQt.py	2010-10-30 19:37:00 UTC (rev 14458)
@@ -23,3 +23,4 @@
 
 print("pyqt_sip_dir:%s" % pyqtcfg.pyqt_sip_dir)
 print("pyqt_sip_flags:%s" % pyqtcfg.pyqt_sip_flags)
+print("pyqt_bin_dir:%s" % pyqtcfg.pyqt_bin_dir)

Modified: trunk/qgis/cmake/FindPyQt4.cmake
===================================================================
--- trunk/qgis/cmake/FindPyQt4.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindPyQt4.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -37,6 +37,7 @@
     STRING(REGEX REPLACE ".*\npyqt_version_num:([^\n]+).*$" "\\1" PYQT4_VERSION_NUM ${pyqt_config})
     STRING(REGEX REPLACE ".*\npyqt_sip_dir:([^\n]+).*$" "\\1" PYQT4_SIP_DIR ${pyqt_config})
     STRING(REGEX REPLACE ".*\npyqt_sip_flags:([^\n]+).*$" "\\1" PYQT4_SIP_FLAGS ${pyqt_config})
+    STRING(REGEX REPLACE ".*\npyqt_bin_dir:([^\n]+).*$" "\\1" PYQT4_BIN_DIR ${pyqt_config})
 
     SET(PYQT4_FOUND TRUE)
   ENDIF(pyqt_config)

Modified: trunk/qgis/cmake/FindSIP.cmake
===================================================================
--- trunk/qgis/cmake/FindSIP.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindSIP.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -41,6 +41,7 @@
     STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config})
     STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
     STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
+    STRING(REGEX REPLACE ".*\nsip_mod_dir:([^\n]+).*$" "\\1" SIP_MOD_DIR ${sip_config})
     SET(SIP_FOUND TRUE)
   ENDIF(sip_config)
 

Modified: trunk/qgis/cmake/FindSIP.py
===================================================================
--- trunk/qgis/cmake/FindSIP.py	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindSIP.py	2010-10-30 19:37:00 UTC (rev 14458)
@@ -14,3 +14,4 @@
 print("sip_bin:%s" % sipcfg.sip_bin)
 print("default_sip_dir:%s" % sipcfg.default_sip_dir)
 print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
+print("sip_mod_dir:%s" % sipcfg.sip_mod_dir)

Modified: trunk/qgis/cmake/FindSPATIALITE.cmake
===================================================================
--- trunk/qgis/cmake/FindSPATIALITE.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindSPATIALITE.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -19,11 +19,28 @@
 # locations. When an earlier FIND_* succeeds, subsequent FIND_*s
 # searching for the same item do nothing. 
 
+# try to use sqlite framework on mac
+# want clean framework path, not unix compatibility path
+IF (APPLE)
+  IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
+      OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
+      OR NOT CMAKE_FIND_FRAMEWORK)
+    SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
+    SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
+    FIND_PATH(SPATIALITE_INCLUDE_DIR SQLite3/spatialite.h)
+    # if no spatialite header, we don't want sqlite find below to succeed
+    IF (SPATIALITE_INCLUDE_DIR)
+      FIND_LIBRARY(SPATIALITE_LIBRARY SQLite3)
+      # FIND_PATH doesn't add "Headers" for a framework
+      SET (SPATIALITE_INCLUDE_DIR ${SPATIALITE_LIBRARY}/Headers CACHE PATH "Path to a file." FORCE)
+    ENDIF (SPATIALITE_INCLUDE_DIR)
+    SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
+  ENDIF ()
+ENDIF (APPLE)
+
 FIND_PATH(SPATIALITE_INCLUDE_DIR spatialite.h
   "$ENV{LIB_DIR}/include"
   "$ENV{LIB_DIR}/include/spatialite"
-  # try to use SQLite3 framework on mac, should be set from SQLite3 check
-  ${SQLITE3_MAC_INC_PATH}
   #mingw
   c:/msys/local/include
   NO_DEFAULT_PATH

Modified: trunk/qgis/cmake/FindSqlite3.cmake
===================================================================
--- trunk/qgis/cmake/FindSqlite3.cmake	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/cmake/FindSqlite3.cmake	2010-10-30 19:37:00 UTC (rev 14458)
@@ -20,14 +20,26 @@
 # searching for the same item do nothing. 
 
 # try to use framework on mac
+# want clean framework path, not unix compatibility path
 IF (APPLE)
-  SET (SQLITE3_MAC_INC_PATH /Library/Frameworks/SQLite3.framework/Headers)
+  IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
+      OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
+      OR NOT CMAKE_FIND_FRAMEWORK)
+    SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
+    SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
+    #FIND_PATH(SQLITE3_INCLUDE_DIR SQLite3/sqlite3.h)
+    FIND_LIBRARY(SQLITE3_LIBRARY SQLite3)
+    IF (SQLITE3_LIBRARY)
+      # FIND_PATH doesn't add "Headers" for a framework
+      SET (SQLITE3_INCLUDE_DIR ${SQLITE3_LIBRARY}/Headers CACHE PATH "Path to a file.")
+    ENDIF (SQLITE3_LIBRARY)
+    SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
+  ENDIF ()
 ENDIF (APPLE)
 
 FIND_PATH(SQLITE3_INCLUDE_DIR sqlite3.h
   "$ENV{LIB_DIR}/include"
   "$ENV{LIB_DIR}/include/sqlite"
-  ${SQLITE3_MAC_INC_PATH}
   #mingw
   c:/msys/local/include
   NO_DEFAULT_PATH

Added: trunk/qgis/mac/CMakeLists.txt
===================================================================
--- trunk/qgis/mac/CMakeLists.txt	                        (rev 0)
+++ trunk/qgis/mac/CMakeLists.txt	2010-10-30 19:37:00 UTC (rev 14458)
@@ -0,0 +1,30 @@
+# mac bundling must happen at end, so all binaries installed
+# and install_names can be adjusted
+IF (APPLE)
+  # for included scripts that set policies (ie OS X bundling)
+  INSTALL (CODE "cmake_policy(SET CMP0011 NEW)")
+  CONFIGURE_FILE (cmake/0qgis.cmake.in 0qgis.cmake @ONLY)
+  INSTALL (SCRIPT ${CMAKE_BINARY_DIR}/mac/0qgis.cmake)
+  IF (QGIS_MACAPP_BUNDLE GREATER 0)
+    # start with Qt
+    CONFIGURE_FILE (cmake/1qt.cmake.in 1qt.cmake @ONLY)
+    INSTALL (SCRIPT ${CMAKE_BINARY_DIR}/mac/1qt.cmake)
+    IF (QGIS_MACAPP_BUNDLE GREATER 1)
+      # next - libs
+      CONFIGURE_FILE (cmake/2lib.cmake.in 2lib.cmake @ONLY)
+      INSTALL (SCRIPT ${CMAKE_BINARY_DIR}/mac/2lib.cmake)
+      IF (QGIS_MACAPP_BUNDLE GREATER 2)
+        # last - frameworks
+        CONFIGURE_FILE (cmake/3fw.cmake.in 3fw.cmake @ONLY)
+        INSTALL (SCRIPT ${CMAKE_BINARY_DIR}/mac/3fw.cmake)
+      ENDIF (QGIS_MACAPP_BUNDLE GREATER 2)
+    ENDIF (QGIS_MACAPP_BUNDLE GREATER 1)
+  ENDIF (QGIS_MACAPP_BUNDLE GREATER 0)
+  # user bundling
+  IF (QGIS_MACAPP_BUNDLE_USER)
+    CONFIGURE_FILE (${QGIS_MACAPP_BUNDLE_USER} 4user.cmake @ONLY)
+    INSTALL (SCRIPT ${CMAKE_BINARY_DIR}/mac/4user.cmake)
+  ENDIF (QGIS_MACAPP_BUNDLE_USER)
+  # tickle app bundle
+  INSTALL (CODE "EXECUTE_PROCESS(COMMAND touch ${CMAKE_INSTALL_PREFIX}/../../.)")
+ENDIF (APPLE)

Added: trunk/qgis/mac/cmake/0qgis.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/0qgis.cmake.in	                        (rev 0)
+++ trunk/qgis/mac/cmake/0qgis.cmake.in	2010-10-30 19:37:00 UTC (rev 14458)
@@ -0,0 +1,71 @@
+# 0qgis - fixup install_names for @loader_path
+# ! cmakecache vars not available to external scripts
+#   so we configure it first to do substitutions
+#   make sure to use @varname@
+
+# kill boolean warnings
+CMAKE_POLICY (SET CMP0012 NEW)
+
+SET (QAPPDIRC "@QGIS_MACAPP_PREFIX@")
+SET (QAPPDIR "@CMAKE_INSTALL_PREFIX@")
+SET (QFWDIR "${QAPPDIR}/@QGIS_FW_SUBDIR@")
+SET (QBINDIR "${QAPPDIR}/@QGIS_BIN_SUBDIR@")
+SET (QCGIDIR "${QAPPDIR}/@QGIS_CGIBIN_SUBDIR@")
+SET (QLIBDIR "${QAPPDIR}/@QGIS_LIB_SUBDIR@")
+SET (QLIBXDIR "${QAPPDIR}/@QGIS_LIBEXEC_SUBDIR@")
+SET (QDATADIR "${QAPPDIR}/@QGIS_DATA_SUBDIR@")
+SET (QPLUGDIR "${QAPPDIR}/@QGIS_PLUGIN_SUBDIR@")
+SET (QGISPYDIR "${QAPPDIR}/@QGIS_DATA_SUBDIR@/python")
+# Qt framework version is major version
+SET (QT_FWVER @QT_VERSION_MAJOR@)
+
+# so config-file doesn't try to replace @
+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)
+
+# 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)
+
+# assume all install_names start with CMAKE_INSTALL_NAME_DIR
+# so we don't have to extract it from binaries
+# leave main qgis executable and qgis_help with executable_paths
+
+IF (@OSX_HAVE_LOADERPATH@)
+	MESSAGE (STATUS "Updating QGIS library paths...")
+	# inter-library links - do all combos, many will be noops
+    FOREACH (QL ${QGLIBLIST})
+    	FOREACH (QLL ${QGLIBLIST})
+        	INSTALLNAMETOOL_CHANGE (@CMAKE_INSTALL_NAME_DIR@/${QLL} ${ATLOADER}/${QLL} "${QLIBDIR}/${QL}")
+	    ENDFOREACH (QLL)
+    ENDFOREACH (QL)
+    # plugins
+    FOREACH (QP ${QGPLUGLIST})
+    	FOREACH (QLL ${QGLIBLIST})
+        	INSTALLNAMETOOL_CHANGE (@CMAKE_INSTALL_NAME_DIR@/${QLL} ${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${QLL} "${QP}")
+	    ENDFOREACH (QLL)
+    ENDFOREACH (QP)
+    # qgis python
+    FOREACH (PG ${QGPYLIST})
+    	FOREACH (QLL ${QGLIBLIST})
+        	INSTALLNAMETOOL_CHANGE (@CMAKE_INSTALL_NAME_DIR@/${QLL} ${ATLOADER}/../../@QGIS_DATA_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${QLL} "${PG}")
+	    ENDFOREACH (QLL)
+    ENDFOREACH (PG)
+    # qgis-mapserver
+	FOREACH (QLL ${QGLIBLIST})
+		INSTALLNAMETOOL_CHANGE (@CMAKE_INSTALL_NAME_DIR@/${QLL} ${ATEXECUTABLE}/@QGIS_CGIBIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${QLL} "${QCGIDIR}/qgis_mapserv.fcgi")
+	ENDFOREACH (QLL)
+ENDIF (@OSX_HAVE_LOADERPATH@)

Added: trunk/qgis/mac/cmake/1qt.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/1qt.cmake.in	                        (rev 0)
+++ trunk/qgis/mac/cmake/1qt.cmake.in	2010-10-30 19:37:00 UTC (rev 14458)
@@ -0,0 +1,316 @@
+# 1qt - bundle Qt frameworks and PyQt
+# ! cmakecache vars not available to external scripts
+#   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)
+
+SET (QAPPDIRC "@QGIS_MACAPP_PREFIX@")
+SET (QAPPDIR "@CMAKE_INSTALL_PREFIX@")
+#SET (QAPPDIRC "@CMAKE_INSTALL_PREFIX@/@QGIS_APP_NAME at .app/Contents")
+#SET (QAPPDIR "${QAPPDIRC}/MacOS")
+SET (QFWDIR "${QAPPDIR}/@QGIS_FW_SUBDIR@")
+SET (QBINDIR "${QAPPDIR}/@QGIS_BIN_SUBDIR@")
+SET (QCGIDIR "${QAPPDIR}/@QGIS_CGIBIN_SUBDIR@")
+SET (QLIBDIR "${QAPPDIR}/@QGIS_LIB_SUBDIR@")
+SET (QLIBXDIR "${QAPPDIR}/@QGIS_LIBEXEC_SUBDIR@")
+SET (QDATADIR "${QAPPDIR}/@QGIS_DATA_SUBDIR@")
+SET (QPLUGDIR "${QAPPDIR}/@QGIS_PLUGIN_SUBDIR@")
+SET (QGISPYDIR "${QAPPDIR}/@QGIS_DATA_SUBDIR@/python")
+# Qt framework version is major version
+SET (QT_FWVER @QT_VERSION_MAJOR@)
+
+# so config-file doesn't try to replace @
+SET (ATEXECUTABLE "@executable_path")
+SET (ATLOADER "@loader_path")
+
+# helper functions
+
+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)
+
+# 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)
+
+# build list of Qt frameworks to bundle
+
+SET (QTLISTQG QtCore QtGui phonon)
+SET (PYQTLIST Qt QtCore QtGui phonon)
+IF (@QT_USE_QTXML@)
+    SET (QTLISTQG ${QTLISTQG} QtXml)
+    SET (PYQTLIST ${PYQTLIST} QtXml)
+ENDIF (@QT_USE_QTXML@)
+IF (@QT_USE_QTNETWORK@)
+    SET (QTLISTQG ${QTLISTQG} QtNetwork)
+    SET (PYQTLIST ${PYQTLIST} QtNetwork)
+ENDIF (@QT_USE_QTNETWORK@)
+IF (@QT_USE_QTSVG@)
+    SET (QTLISTQG ${QTLISTQG} QtSvg)
+    SET (PYQTLIST ${PYQTLIST} QtSvg)
+ENDIF (@QT_USE_QTSVG@)
+IF (@QT_USE_QTSQL@)
+    SET (QTLISTQG ${QTLISTQG} QtSql)
+    SET (PYQTLIST ${PYQTLIST} QtSql)
+ENDIF (@QT_USE_QTSQL@)
+IF (@QT_USE_QTWEBKIT@)
+    SET (QTLISTQG ${QTLISTQG} QtWebKit)
+    SET (PYQTLIST ${PYQTLIST} QtWebKit)
+    # see if it links QtDBus
+    EXECUTE_PROCESS (COMMAND otool -L @QT_QTWEBKIT_LIBRARY@/QtWebKit
+                     OUTPUT_VARIABLE QTWEBKIT_DBUS)
+    IF (QTWEBKIT_DBUS MATCHES ".*QtDBus.framework.*")
+        SET (QTLISTQG ${QTLISTQG} QtDBus)
+    ENDIF ()
+    # see if it links QtXmlPatterns
+    EXECUTE_PROCESS (COMMAND otool -L @QT_QTWEBKIT_LIBRARY@/QtWebKit
+                     OUTPUT_VARIABLE QTWEBKIT_XMLP)
+    IF (QTWEBKIT_XMLP MATCHES ".*QtXmlPatterns.framework.*")
+        SET (QTLISTQG ${QTLISTQG} QtXmlPatterns)
+        SET (PYQTLIST ${PYQTLIST} QtXmlPatterns)
+    ENDIF ()
+ENDIF (@QT_USE_QTWEBKIT@)
+MYMESSAGE ("Qt list: ${QTLISTQG}")
+
+# qt arches
+FOREACH (QARCH @CMAKE_OSX_ARCHITECTURES@)
+    SET (QARCHS ${QARCHS} "--arch" "${QARCH}")
+ENDFOREACH (QARCH)
+MYMESSAGE("Archs: ${QARCHS}")
+
+# symlinks when only @executable_path used
+
+IF (NOT @OSX_HAVE_LOADERPATH@)
+    EXECUTE_PROCESS (COMMAND ln -sfh ../Frameworks "${QAPPDIR}/")
+    IF (IS_DIRECTORY "${QLIBXIR}/grass/bin")
+        EXECUTE_PROCESS (COMMAND ln -sfh ../@QGIS_LIBEXEC_SUBDIR_REV@/@QGIS_FW_SUBDIR@ "${QLIBXDIR}/grass/Frameworks")
+    ENDIF ()
+    EXECUTE_PROCESS (COMMAND ln -sfh ../../../@QGIS_FW_SUBDIR@ "${QBINDIR}/qgis_help.app/Contents/Frameworks")
+    EXECUTE_PROCESS (COMMAND ln -sfh @QGIS_CGIBIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@ "${QCGIDIR}/lib")
+ENDIF (NOT @OSX_HAVE_LOADERPATH@)
+
+# Qt frameworks
+
+MESSAGE (STATUS "Copying Qt frameworks...")
+EXECUTE_PROCESS (COMMAND mkdir -p "${QFWDIR}")
+FOREACH (QFW ${QTLISTQG})
+    IF (NOT IS_DIRECTORY "${QFWDIR}/${QFW}.framework")
+        # reconstruct framework to avoid excessive copying, then deleting
+        #   especially when debug variants are present
+        EXECUTE_PROCESS (COMMAND mkdir -p "${QFWDIR}/${QFW}.framework/Versions/${QT_FWVER}")
+        EXECUTE_PROCESS (COMMAND ln -sfh ${QT_FWVER} "${QFWDIR}/${QFW}.framework/Versions/Current")
+        MYMESSAGE ("ditto ${QARCHS} \"@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/${QFW}\" \"${QFWDIR}/${QFW}.framework/Versions/${QT_FWVER}/${QFW}\"")
+        EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/${QFW}" "${QFWDIR}/${QFW}.framework/Versions/${QT_FWVER}/${QFW}")
+        EXECUTE_PROCESS (COMMAND ln -sf Versions/Current/${QFW} "${QFWDIR}/${QFW}.framework/${QFW}")
+        IF (IS_DIRECTORY "@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/Resources")
+            EXECUTE_PROCESS (COMMAND cp -Rfp "@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/Resources" "${QFWDIR}/${QFW}.framework/Versions/${QT_FWVER}")
+            EXECUTE_PROCESS (COMMAND ln -sfh Versions/Current/Resources "${QFWDIR}/${QFW}.framework/Resources")
+        ENDIF (IS_DIRECTORY "@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/Resources")
+        # debug variants
+        SET (QFWD "${QFW}_debug")
+        IF (@CMAKE_BUILD_TYPE@ STREQUAL "Debug" AND EXISTS "@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/${QFWD}")
+            EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_LIBRARY_DIR@/${QFW}.framework/Versions/${QT_FWVER}/${QFWD}" "${QFWDIR}/${QFW}.framework/Versions/${QT_FWVER}/${QFWD}")
+            EXECUTE_PROCESS (COMMAND ln -sf Versions/Current/${QFWD} "${QFWDIR}/${QFW}.framework/${QFWD}")
+            IF (IS_DIRECTORY "@QT_LIBRARY_DIR@/${QFW}.framework/${QFWD}.dSYM")
+                EXECUTE_PROCESS (COMMAND ditto -X ${QARCHS} "@QT_LIBRARY_DIR@/${QFW}.framework/${QFWD}.dSYM" "${QFWDIR}/${QFW}.framework")
+            ENDIF ()
+        ENDIF ()
+    ENDIF ()
+ENDFOREACH (QFW)
+
+# Qt plugins
+
+EXECUTE_PROCESS (COMMAND mkdir -p "${QAPPDIRC}/PlugIns/imageformats")
+IF (NOT EXISTS "${QAPPDIRC}/PlugIns/imageformats/libqjpeg.dylib")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/imageformats/libqjpeg.dylib" "${QAPPDIRC}/PlugIns/imageformats/libqjpeg.dylib")
+ENDIF ()
+EXECUTE_PROCESS (COMMAND mkdir -p "${QAPPDIRC}/PlugIns/codecs")
+FOREACH (QTC cn;jp;kr;tw)
+    IF (NOT EXISTS "${QAPPDIRC}/PlugIns/codecs/libq${QTC}codecs.dylib")
+        EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/codecs/libq${QTC}codecs.dylib" "${QAPPDIRC}/PlugIns/codecs/libq${QTC}codecs.dylib")
+    ENDIF ()
+ENDFOREACH (QTC)
+
+# Qwt
+# assumes shared libraries
+
+MESSAGE (STATUS "Copying Qwt and updating library paths...")
+IF (NOT EXISTS "${QLIBDIR}/libqwt.dylib")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QWT_LIBRARY@" "${QLIBDIR}/libqwt.dylib")
+    GET_INSTALL_NAME ("@QWT_LIBRARY@" "libqwt" QLIB)
+    IF (QLIB)
+        SET (QWT_CHG "${QLIB}")
+        # default for Qgis and no loader_path
+        SET (QWT_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/libqwt.dylib")
+        INSTALLNAMETOOL_CHANGE (${QWT_CHG} ${QWT_CHG_TO} "${QAPPDIR}/Qgis")
+    ENDIF (QLIB)
+ENDIF ()
+
+# PyQt
+
+MESSAGE (STATUS "Copying PyQt...")
+IF (NOT EXISTS "${QGISPYDIR}/sip.so")
+    MYMESSAGE ("ditto ${QARCHS} \"@SIP_MOD_DIR@/sip.so\" \"${QGISPYDIR}/\"")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@SIP_MOD_DIR@/sip.so" "${QGISPYDIR}/")
+    EXECUTE_PROCESS (COMMAND cp -fp "@SIP_MOD_DIR@/sipconfig.py" "${QGISPYDIR}/")
+ENDIF ()
+# for now assume "PyQt4" next to SIP
+EXECUTE_PROCESS (COMMAND mkdir -p "${QGISPYDIR}/PyQt${QT_FWVER}")
+FOREACH (PQ ${PYQTLIST})
+    IF (NOT EXISTS "${QGISPYDIR}/PyQt${QT_FWVER}/${PQ}.so")
+        MYMESSAGE ("ditto ${QARCHS} \"@SIP_MOD_DIR@/PyQt${QT_FWVER}/${PQ}.so\" \"${QGISPYDIR}/PyQt${QT_FWVER}/${PQ}.so\"")
+        EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@SIP_MOD_DIR@/PyQt${QT_FWVER}/${PQ}.so" "${QGISPYDIR}/PyQt${QT_FWVER}/${PQ}.so")
+    ENDIF ()
+ENDFOREACH (PQ)
+FILE (GLOB PQPYLIST "@SIP_MOD_DIR@/PyQt${QT_FWVER}/*.py")
+FOREACH (PQPY ${PQPYLIST})
+    EXECUTE_PROCESS (COMMAND cp -fp "${PQPY}" "${QGISPYDIR}/PyQt${QT_FWVER}/")
+ENDFOREACH (PQPY)
+EXECUTE_PROCESS (COMMAND cp -Rfp "@SIP_MOD_DIR@/PyQt${QT_FWVER}/uic" "${QGISPYDIR}/PyQt${QT_FWVER}")
+
+# PyQt utilities
+
+FOREACH (PU pylupdate4;pyrcc4)
+    IF (NOT EXISTS "${QBINDIR}/${PU}")
+        EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@PYQT4_BIN_DIR@/${PU}" "${QBINDIR}/")
+    ENDIF ()
+ENDFOREACH (PU)
+IF (NOT EXISTS "${QBINDIR}/pyuic4")
+    EXECUTE_PROCESS (COMMAND sed -E "s, /.*/PyQt4/uic/pyuic.py, ${QDATADIR}/python/PyQt4/uic/pyuic.py," "@PYQT4_BIN_DIR@/pyuic4"
+                     OUTPUT_VARIABLE PYUIC_CONTENTS)
+    FILE (WRITE "${QBINDIR}/pyuic4" "${PYUIC_CONTENTS}")
+    EXECUTE_PROCESS (COMMAND chmod +x "${QBINDIR}/pyuic4")
+ENDIF ()
+
+# PyQwt
+
+MESSAGE (STATUS "Copying PyQwt and updating library paths...")
+EXECUTE_PROCESS (COMMAND mkdir -p "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5")
+IF (NOT EXISTS "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/_iqt.so")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@SIP_MOD_DIR@/PyQt${QT_FWVER}/Qwt5/_iqt.so" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/")
+ENDIF ()
+IF (NOT EXISTS "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/Qwt.so")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@SIP_MOD_DIR@/PyQt${QT_FWVER}/Qwt5/Qwt.so" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/")
+ENDIF ()
+FILE (GLOB PQWPYLIST "@SIP_MOD_DIR@/PyQt${QT_FWVER}/Qwt5/*.py")
+FOREACH (PQWPY ${PQWPYLIST})
+    EXECUTE_PROCESS (COMMAND cp -fp "${PQWPY}" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/")
+ENDFOREACH (PQWPY)
+IF (QWT_CHG)
+    IF (@OSX_HAVE_LOADERPATH@ AND QWT_CHG)
+        SET (QWT_CHG_TO "${ATLOADER}/../../../@QGIS_DATA_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/libqwt.dylib")
+    ENDIF (@OSX_HAVE_LOADERPATH@ AND QWT_CHG)
+    FOREACH (PW _iqt;Qwt)
+        INSTALLNAMETOOL_CHANGE (${QWT_CHG} ${QWT_CHG_TO} "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/${PW}.so")
+    ENDFOREACH (PW)
+ENDIF (QWT_CHG)
+
+# don't load plugins from system-installed Qt
+FILE (WRITE "${QAPPDIRC}/Resources/qt.conf" "")
+FILE (WRITE "${QBINDIR}/qgis_help.app/Contents/Resources/qt.conf" "")
+
+FILE (GLOB QGLIBLIST ${QLIBDIR}/libqgis*.dylib)
+FILE (GLOB QGPLUGLIST ${QPLUGDIR}/*.so)
+FILE (GLOB QGPYLIST ${QGISPYDIR}/qgis/*.so)
+
+# main Qt framework loop
+
+MESSAGE (STATUS "Updating Qt library paths...")
+
+FOREACH (QFW ${QTLISTQG})
+    # get install names from installed in case bundled copy already changed
+    # from a previous install attempt
+    GET_INSTALL_NAME ("@QT_LIBRARY_DIR@/${QFW}.framework/${QFW}" ${QFW}.framework QQ)
+    SET (QFW_CHG "${QQ}")
+    SET (QFW_CHG_TO "${ATEXECUTABLE}/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    # app - always @executable_path
+    INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QAPPDIR}/Qgis")
+    # qgis_help - use symlink, even when have loader_path,
+    # applications behave better that way
+    INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QBINDIR}/qgis_help.app/Contents/MacOS/qgis_help")
+    # qgis-mapserver
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATEXECUTABLE}/@QGIS_CGIBIN_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QCGIDIR}/qgis_mapserv.fcgi")
+    # libs
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATLOADER}/@QGIS_LIB_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    FOREACH (QL ${QGLIBLIST})
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QL}")
+    ENDFOREACH (QL)
+    # Qwt
+    INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QLIBDIR}/libqwt.dylib")
+    # GRASS libexec stuff
+    IF (EXISTS "${QLIBXDIR}/grass/bin/qgis.g.browser")
+        IF (@OSX_HAVE_LOADERPATH@)
+            SET (QFW_CHG_TO "${ATLOADER}/../../@QGIS_LIBEXEC_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+        ENDIF (@OSX_HAVE_LOADERPATH@)
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QLIBXDIR}/grass/bin/qgis.g.browser")
+    ENDIF ()
+    # plugins
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    FOREACH (QP ${QGPLUGLIST})
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QP}")
+    ENDFOREACH (QP)
+    # qt plugs - same relative path
+    INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QAPPDIRC}/PlugIns/imageformats/libqjpeg.dylib")
+    FOREACH (QC cn;jp;kr;tw)
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QAPPDIRC}/PlugIns/codecs/libq${QC}codecs.dylib")
+    ENDFOREACH (QC)
+    # qt fw
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATLOADER}/../../../${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    FOREACH (QF ${QTLISTQG})
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QFWDIR}/${QF}.framework/${QF}")
+    ENDFOREACH (QF)
+    # PyQt
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATLOADER}/../../@QGIS_DATA_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    FOREACH (PQ ${PYQTLIST})
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QGISPYDIR}/PyQt${QT_FWVER}/${PQ}.so")
+    ENDFOREACH (PQ)
+    # qgis python
+    FOREACH (PG ${QGPYLIST})
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${PG}")
+    ENDFOREACH (PG)
+    # bin - PyQt utils
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATLOADER}/@QGIS_BIN_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    FOREACH (PB pylupdate4;pyrcc4)
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QBINDIR}/${PB}")
+    ENDFOREACH (PB)
+    # PyQwt
+    IF (@OSX_HAVE_LOADERPATH@)
+        SET (QFW_CHG_TO "${ATLOADER}/../../../@QGIS_DATA_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${QFW}.framework/${QFW}")
+    ENDIF (@OSX_HAVE_LOADERPATH@)
+    FOREACH (PW _iqt;Qwt)
+        INSTALLNAMETOOL_CHANGE (${QFW_CHG} ${QFW_CHG_TO} "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/${PW}.so")
+    ENDFOREACH (PW)
+ENDFOREACH (QFW)

Added: trunk/qgis/mac/cmake/2lib.cmake.in
===================================================================
--- trunk/qgis/mac/cmake/2lib.cmake.in	                        (rev 0)
+++ trunk/qgis/mac/cmake/2lib.cmake.in	2010-10-30 19:37:00 UTC (rev 14458)
@@ -0,0 +1,137 @@
+# 2lib - bundle shared libraries (but not standard frameworks)
+# ! cmakecache vars not available to external scripts
+#   so we configure it first to do substitutions
+#   make sure to use @varname@
+
+# for now, just libs not available as frameworks
+#   libpq
+#   libfcgi (non-system)
+
+# need part of BundleUtilities
+INCLUDE (GetPrerequisites)
+
+# kill boolean warnings
+CMAKE_POLICY (SET CMP0012 NEW)
+
+SET (QAPPDIRC "@QGIS_MACAPP_PREFIX@")
+SET (QAPPDIR "@CMAKE_INSTALL_PREFIX@")
+#SET (QAPPDIRC "@CMAKE_INSTALL_PREFIX@/@QGIS_APP_NAME at .app/Contents")
+#SET (QAPPDIR "${QAPPDIRC}/MacOS")
+SET (QFWDIR "${QAPPDIR}/@QGIS_FW_SUBDIR@")
+SET (QBINDIR "${QAPPDIR}/@QGIS_BIN_SUBDIR@")
+SET (QCGIDIR "${QAPPDIR}/@QGIS_CGIBIN_SUBDIR@")
+SET (QLIBDIR "${QAPPDIR}/@QGIS_LIB_SUBDIR@")
+SET (QLIBXDIR "${QAPPDIR}/@QGIS_LIBEXEC_SUBDIR@")
+SET (QDATADIR "${QAPPDIR}/@QGIS_DATA_SUBDIR@")
+SET (QPLUGDIR "${QAPPDIR}/@QGIS_PLUGIN_SUBDIR@")
+SET (QGISPYDIR "${QAPPDIR}/@QGIS_DATA_SUBDIR@/python")
+# Qt framework version is major version
+SET (QT_FWVER @QT_VERSION_MAJOR@)
+
+# so config-file doesn't try to replace @
+SET (ATEXECUTABLE "@executable_path")
+SET (ATLOADER "@loader_path")
+
+# helper functions
+
+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)
+
+# 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)
+
+FUNCTION (UPDATEQGISPATHS LIBFROM LIBTO)
+    IF (LIBFROM)
+        SET (LIB_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        # app - always @executable_path
+        INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QAPPDIR}/Qgis")
+        # qgis_help - doesn't link anything else than Qt/Qgis
+        # qgis-mapserver
+        IF (@OSX_HAVE_LOADERPATH@)
+            SET (LIB_CHG_TO "${ATEXECUTABLE}/@QGIS_CGIBIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        ENDIF (@OSX_HAVE_LOADERPATH@)
+        INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QCGIDIR}/qgis_mapserv.fcgi")
+        # libs
+        IF (@OSX_HAVE_LOADERPATH@)
+            SET (LIB_CHG_TO "${ATLOADER}/@QGIS_LIB_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        ENDIF (@OSX_HAVE_LOADERPATH@)
+        FOREACH (QL ${QGLIBLIST})
+            INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QL}")
+        ENDFOREACH (QL)
+        # GRASS libexec stuff
+        #IF (EXISTS "${QLIBXDIR}/grass/bin/qgis.g.browser")
+        #   IF (@OSX_HAVE_LOADERPATH@)
+        #       SET (LIB_CHG_TO "${ATLOADER}/../../@QGIS_LIBEXEC_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        #   ENDIF (@OSX_HAVE_LOADERPATH@)
+        #   INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QLIBXDIR}/grass/bin/qgis.g.browser")
+        #ENDIF ()
+        # plugins
+        IF (@OSX_HAVE_LOADERPATH@)
+            SET (LIB_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        ENDIF (@OSX_HAVE_LOADERPATH@)
+        FOREACH (QP ${QGPLUGLIST})
+            INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QP}")
+        ENDFOREACH (QP)
+        # qgis python
+        IF (@OSX_HAVE_LOADERPATH@)
+            SET (LIB_CHG_TO "${ATLOADER}/../../@QGIS_DATA_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        ENDIF (@OSX_HAVE_LOADERPATH@)
+        FOREACH (PG ${QGPYLIST})
+            INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${PG}")
+        ENDFOREACH (PG)
+        # bin - nothing yet
+        #IF (@OSX_HAVE_LOADERPATH@)
+        #    SET (LIB_CHG_TO "${ATLOADER}/@QGIS_BIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${LIBTO}")
+        #ENDIF (@OSX_HAVE_LOADERPATH@)
+        #FOREACH (PB ...)
+        #    INSTALLNAMETOOL_CHANGE (${LIBFROM} ${LIB_CHG_TO} "${QBINDIR}/${PB}")
+        #ENDFOREACH (PB)
+    ENDIF (LIBFROM)
+ENDFUNCTION (UPDATEQGISPATHS)
+
+# arches
+FOREACH (QARCH @CMAKE_OSX_ARCHITECTURES@)
+    SET (QARCHS ${QARCHS} "--arch" "${QARCH}")
+ENDFOREACH (QARCH)
+
+FILE (GLOB QGLIBLIST ${QLIBDIR}/libqgis*.dylib)
+FILE (GLOB QGPLUGLIST ${QPLUGDIR}/*.so)
+FILE (GLOB QGPYLIST ${QGISPYDIR}/qgis/*.so)
+
+# Postgres
+
+IF (@POSTGRES_LIBRARY@ MATCHES ".*libpq.dylib")
+    MESSAGE (STATUS "Copying libpq and updating library paths...")
+    MYMESSAGE ("ditto ${QARCHS} \"@POSTGRES_LIBRARY@\" \"${QLIBDIR}/libpq.dylib\"")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@POSTGRES_LIBRARY@" "${QLIBDIR}/libpq.dylib")
+    GET_INSTALL_NAME ("@POSTGRES_LIBRARY@" "libpq" PQLIB)
+    UPDATEQGISPATHS (${PQLIB} libpq.dylib)
+ENDIF ()
+
+# libfcgi (non-system)
+
+IF (@FCGI_LIBRARY@ MATCHES ".*libfcgi.dylib" AND NOT @FCGI_LIBRARY@ MATCHES "/usr/lib/.*")
+    MESSAGE (STATUS "Copying libfcgi and updating library paths...")
+    MYMESSAGE ("ditto ${QARCHS} \"@FCGI_LIBRARY@\" \"${QLIBDIR}/libfcgi.dylib\"")
+    EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@FCGI_LIBRARY@" "${QLIBDIR}/libfcgi.dylib")
+    GET_INSTALL_NAME ("@FCGI_LIBRARY@" "libfcgi" FCGILIB)
+    UPDATEQGISPATHS (${FCGILIB} libfcgi.dylib)
+ENDIF ()
+

Modified: trunk/qgis/src/app/CMakeLists.txt
===================================================================
--- trunk/qgis/src/app/CMakeLists.txt	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/src/app/CMakeLists.txt	2010-10-30 19:37:00 UTC (rev 14458)
@@ -364,15 +364,15 @@
 IF (WIN32)
   # 'WIN32' removes console, which is Bad when debugging
   IF (CMAKE_BUILD_TYPE MATCHES Debug)
-    ADD_EXECUTABLE(qgis ${QGIS_APP_SRCS} ${QGIS_APP_MOC_SRCS} ${IMAGE_RCC_SRCS})
+    ADD_EXECUTABLE(${QGIS_APP_NAME} ${QGIS_APP_SRCS} ${QGIS_APP_MOC_SRCS} ${IMAGE_RCC_SRCS})
   ELSE (CMAKE_BUILD_TYPE MATCHES Debug)
-    ADD_EXECUTABLE(qgis WIN32 ${QGIS_APP_SRCS} ${QGIS_APP_MOC_SRCS} ${IMAGE_RCC_SRCS})
+    ADD_EXECUTABLE(${QGIS_APP_NAME} WIN32 ${QGIS_APP_SRCS} ${QGIS_APP_MOC_SRCS} ${IMAGE_RCC_SRCS})
   ENDIF (CMAKE_BUILD_TYPE MATCHES Debug)
 ELSE (WIN32)
-  ADD_EXECUTABLE(qgis ${QGIS_APP_SRCS} ${QGIS_APP_MOC_SRCS} ${IMAGE_RCC_SRCS})
+  ADD_EXECUTABLE(${QGIS_APP_NAME} ${QGIS_APP_SRCS} ${QGIS_APP_MOC_SRCS} ${IMAGE_RCC_SRCS})
 ENDIF (WIN32)
 
-TARGET_LINK_LIBRARIES(qgis
+TARGET_LINK_LIBRARIES(${QGIS_APP_NAME}
   ${QT_QTSQL_LIBRARY}
   ${QT_QTUITOOLS_LIBRARY}
   #should only be needed for win
@@ -386,38 +386,38 @@
   ADD_DEFINITIONS(-DQWT_DLL)
 ENDIF( WIN32 ) 
 INCLUDE_DIRECTORIES(${QWT_INCLUDE_DIR})
-TARGET_LINK_LIBRARIES(qgis ${QWT_LIBRARY})
+TARGET_LINK_LIBRARIES(${QGIS_APP_NAME} ${QWT_LIBRARY})
 
 IF(NOT WITH_INTERNAL_SPATIALITE)
-  TARGET_LINK_LIBRARIES(qgis ${SQLITE_LIBRARY})
+  TARGET_LINK_LIBRARIES(${QGIS_APP_NAME} ${SQLITE_LIBRARY})
 ENDIF(NOT WITH_INTERNAL_SPATIALITE)
 
 IF (${QTVERSION} STRLESS "4.3.0")
-  TARGET_LINK_LIBRARIES(qgis ${QT_QT3SUPPORT_LIBRARY} )
+  TARGET_LINK_LIBRARIES(${QGIS_APP_NAME} ${QT_QT3SUPPORT_LIBRARY} )
 ENDIF (${QTVERSION} STRLESS "4.3.0")
 
 IF (APPLE)
-  TARGET_LINK_LIBRARIES(qgis ${APP_SERVICES_LIBRARY} )
+  TARGET_LINK_LIBRARIES(${QGIS_APP_NAME} ${APP_SERVICES_LIBRARY} )
 ENDIF (APPLE)
 
-SET_TARGET_PROPERTIES(qgis PROPERTIES
+SET_TARGET_PROPERTIES(${QGIS_APP_NAME} PROPERTIES
   INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${QGIS_LIB_DIR}
   INSTALL_RPATH_USE_LINK_PATH true
   )
 
 IF (POSTGRES_FOUND)
-  TARGET_LINK_LIBRARIES (qgis ${POSTGRES_LIBRARY})
+  TARGET_LINK_LIBRARIES (${QGIS_APP_NAME} ${POSTGRES_LIBRARY})
 ENDIF (POSTGRES_FOUND)
 
 IF (SPATIALITE_FOUND)
-  TARGET_LINK_LIBRARIES (qgis ${SPATIALITE_LIBRARY})
+  TARGET_LINK_LIBRARIES (${QGIS_APP_NAME} ${SPATIALITE_LIBRARY})
 ENDIF (SPATIALITE_FOUND)
 
 IF (APPLE)
   # For Mac OS X, the executable must be at the root of the bundle's executable folder
-  INSTALL(TARGETS qgis RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
+  INSTALL(TARGETS ${QGIS_APP_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
 ELSE (APPLE)
-  INSTALL(TARGETS qgis RUNTIME DESTINATION ${QGIS_BIN_DIR})
+  INSTALL(TARGETS ${QGIS_APP_NAME} RUNTIME DESTINATION ${QGIS_BIN_DIR})
 ENDIF (APPLE)
 
 IF(MSVC)

Modified: trunk/qgis/src/helpviewer/CMakeLists.txt
===================================================================
--- trunk/qgis/src/helpviewer/CMakeLists.txt	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/src/helpviewer/CMakeLists.txt	2010-10-30 19:37:00 UTC (rev 14458)
@@ -99,7 +99,8 @@
 
 IF (APPLE)
   INSTALL (TARGETS qgis_help BUNDLE DESTINATION ${QGIS_BIN_DIR})
-  INSTALL (CODE "EXECUTE_PROCESS(COMMAND install_name_tool -change @executable_path/lib/libqgis_core.${COMPLETE_VERSION}.dylib @executable_path/../../../../lib/libqgis_core.${COMPLETE_VERSION}.dylib \"${CMAKE_INSTALL_PREFIX}/${QGIS_BIN_DIR}/qgis_help.app/Contents/MacOS/qgis_help\")")
+  # needed because global install_name prefix is for main qgis app
+  INSTALL (CODE "EXECUTE_PROCESS(COMMAND install_name_tool -change ${CMAKE_INSTALL_NAME_DIR}/libqgis_core.${COMPLETE_VERSION}.dylib @executable_path/../../../../lib/libqgis_core.${COMPLETE_VERSION}.dylib \"${CMAKE_INSTALL_PREFIX}/${QGIS_BIN_DIR}/qgis_help.app/Contents/MacOS/qgis_help\")")
 ELSE (APPLE)
   INSTALL (TARGETS qgis_help RUNTIME DESTINATION ${QGIS_BIN_DIR})
 ENDIF (APPLE)

Modified: trunk/qgis/src/mac/Contents/CMakeLists.txt
===================================================================
--- trunk/qgis/src/mac/Contents/CMakeLists.txt	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/src/mac/Contents/CMakeLists.txt	2010-10-30 19:37:00 UTC (rev 14458)
@@ -10,6 +10,8 @@
     -D CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
     -D SOURCE_DIR=${CMAKE_SOURCE_DIR}
     -D VERSION=${COMPLETE_VERSION_WITH_RELEASE_NAME}
+    -D VERSION_NUM=${COMPLETE_VERSION}
+    -D APP_NAME=${QGIS_APP_NAME}
     -P ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.cmake)
 
 #############################################################

Modified: trunk/qgis/src/mac/Contents/Info.plist.in
===================================================================
--- trunk/qgis/src/mac/Contents/Info.plist.in	2010-10-30 14:55:18 UTC (rev 14457)
+++ trunk/qgis/src/mac/Contents/Info.plist.in	2010-10-30 19:37:00 UTC (rev 14458)
@@ -1,13 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
 	<key>CFBundleName</key>
 	<string>QGIS</string>
 	<key>CFBundleIdentifier</key>
 	<string>org.qgis.qgis</string>
 	<key>CFBundleExecutable</key>
-	<string>qgis</string>
+	<string>@APP_NAME@</string>
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleSignature</key>
@@ -15,11 +17,15 @@
 	<key>CFBundleGetInfoString</key>
 	<string>QGIS @VERSION@ (@REVISION@), © 2002-2010 QGIS Development Team</string>
 	<key>CFBundleShortVersionString</key>
-	<string>@VERSION@ (@REVISION@)</string>
+	<string>@VERSION_NUM@</string>
 	<key>CFBundleVersion</key>
 	<string>@VERSION@ (@REVISION@)</string>
 	<key>CFBundleIconFile</key>
 	<string>qgis.icns</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
 	<key>CFBundleDocumentTypes</key>
 	<array>
 		<dict>



More information about the QGIS-commit mailing list