mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
468 lines
20 KiB
CMake
468 lines
20 KiB
CMake
# 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@
|
|
|
|
# kill boolean warnings
|
|
CMAKE_POLICY (SET CMP0012 NEW)
|
|
|
|
INCLUDE ("@CMAKE_BINARY_DIR@/mac/0vars.cmake")
|
|
INCLUDE ("@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake")
|
|
INCLUDE ("@CMAKE_SOURCE_DIR@/cmake/QCAMacros.cmake")
|
|
|
|
# Qt framework version is major version
|
|
SET (QT_FWVER @QT_VERSION_MAJOR@)
|
|
|
|
# build list of Qt frameworks to bundle
|
|
|
|
# core list, includes dependencies and used by extra plugins
|
|
SET (QTLISTQG QtCore QtGui phonon QtXml QtNetwork QtScript QtSvg QtSql QtWebKit QtXmlPatterns QtDBus QtMultimedia QtOpenGL QtTest)
|
|
SET (PYQTLIST Qt QtCore QtGui phonon QtXml QtNetwork QtScript QtSvg QtSql QtWebKit QtXmlPatterns QtDBus QtMultimedia QtOpenGL QtTest)
|
|
|
|
# add Qsci.so, if available
|
|
IF (@QSCI_FOUND@)
|
|
SET (PYQTLIST ${PYQTLIST} Qsci)
|
|
ENDIF (@QSCI_FOUND@)
|
|
|
|
MYMESSAGE ("Qt list: ${QTLISTQG}")
|
|
|
|
# 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_CGIBIN_SUBDIR_REV@/@QGIS_LIB_SUBDIR@ "${QCGIDIR}/lib")
|
|
ENDIF (NOT @OSX_HAVE_LOADERPATH@)
|
|
|
|
### copy files
|
|
|
|
# Qt frameworks
|
|
|
|
MESSAGE (STATUS "Copying Qt frameworks...")
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QFWDIR}")
|
|
FOREACH (QFW ${QTLISTQG})
|
|
IF (NOT IS_DIRECTORY "${QFWDIR}/${QFW}.framework")
|
|
COPY_FRAMEWORK("@QT_LIBRARY_DIR@" ${QFW} "${QFWDIR}")
|
|
ENDIF ()
|
|
ENDFOREACH (QFW)
|
|
|
|
# Qt plugins
|
|
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../imageformats")
|
|
FOREACH (QI qgif;qico;qjpeg;qsvg;qtiff)
|
|
IF (NOT EXISTS "${QPLUGDIR}/../imageformats/lib${QI}.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/imageformats/lib${QI}.dylib" "${QPLUGDIR}/../imageformats/lib${QI}.dylib")
|
|
ENDIF ()
|
|
ENDFOREACH (QI)
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../codecs")
|
|
FOREACH (QTC cn;jp;kr;tw)
|
|
IF (NOT EXISTS "${QPLUGDIR}/../codecs/libq${QTC}codecs.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/codecs/libq${QTC}codecs.dylib" "${QPLUGDIR}/../codecs/libq${QTC}codecs.dylib")
|
|
ENDIF ()
|
|
ENDFOREACH (QTC)
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../sqldrivers")
|
|
SET (QTLISTSQL ite odbc psql mysql)
|
|
# qspatialite driver plugin is part of QGIS build
|
|
IF (@WITH_QSPATIALITE@)
|
|
LIST(APPEND QTLISTSQL spatialite)
|
|
IF (EXISTS "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
EXECUTE_PROCESS (COMMAND ${CMAKE_COMMAND} -E remove "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
ENDIF ()
|
|
ENDIF ()
|
|
FOREACH (QSL ${QTLISTSQL})
|
|
IF (NOT EXISTS "${QPLUGDIR}/../sqldrivers/libqsql${QSL}.dylib" AND EXISTS "@QT_PLUGINS_DIR@/sqldrivers/libqsql${QSL}.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/sqldrivers/libqsql${QSL}.dylib" "${QPLUGDIR}/../sqldrivers/libqsql${QSL}.dylib")
|
|
ENDIF ()
|
|
ENDFOREACH (QSL)
|
|
IF (NOT @WITH_QSPATIALITE@ AND EXISTS "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
EXECUTE_PROCESS (COMMAND ${CMAKE_COMMAND} -E remove "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
ENDIF ()
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../iconengines")
|
|
IF (NOT EXISTS "${QPLUGDIR}/../iconengines/libqsvgicon.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/iconengines/libqsvgicon.dylib" "${QPLUGDIR}/../iconengines/libqsvgicon.dylib")
|
|
ENDIF ()
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../phonon_backend")
|
|
IF (NOT EXISTS "${QPLUGDIR}/../phonon_backend/libphonon_qt7.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QT_PLUGINS_DIR@/phonon_backend/libphonon_qt7.dylib" "${QPLUGDIR}/../phonon_backend/libphonon_qt7.dylib")
|
|
ENDIF ()
|
|
|
|
# Qwt
|
|
|
|
STRING (REGEX MATCH "\\.dylib$" QWT_ISLIB "@QWT_LIBRARY@")
|
|
STRING (REGEX MATCH "qwt.framework" QWT_ISFW "@QWT_LIBRARY@")
|
|
IF (QWT_ISLIB)
|
|
# 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")
|
|
ENDIF ()
|
|
GET_INSTALL_NAME ("@QWT_LIBRARY@" "libqwt" QWT_CHG)
|
|
IF (QWT_CHG)
|
|
UPDATEQGISPATHS (${QWT_CHG} libqwt.dylib)
|
|
ENDIF (QWT_CHG)
|
|
ELSEIF (QWT_ISFW AND EXISTS "@QWT_LIBRARY@")
|
|
# framework
|
|
MESSAGE (STATUS "Copying Qwt framework and updating library paths...")
|
|
STRING(REGEX REPLACE "/qwt.framework.*" "" QWT_PARENT "@QWT_LIBRARY@")
|
|
IF (NOT IS_DIRECTORY "${QFWDIR}/qwt.framework")
|
|
COPY_FRAMEWORK("${QWT_PARENT}" "qwt" "${QFWDIR}")
|
|
ENDIF ()
|
|
GET_INSTALL_NAME ("${QWT_PARENT}/qwt.framework/qwt" "qwt.framework" QWT_CHG)
|
|
IF (QWT_CHG)
|
|
UPDATEQGISPATHS (${QWT_CHG} qwt)
|
|
ENDIF (QWT_CHG)
|
|
ENDIF (QWT_ISLIB)
|
|
|
|
|
|
# QwtPolar
|
|
|
|
IF (@WITH_QWTPOLAR@ AND NOT @WITH_INTERNAL_QWTPOLAR@)
|
|
STRING (REGEX MATCH "\\.dylib$" ISLIB "@QWTPOLAR_LIBRARY@")
|
|
STRING (REGEX MATCH "qwtpolar.framework" ISFW "@QWTPOLAR_LIBRARY@")
|
|
IF (ISLIB)
|
|
# shared libraries
|
|
MESSAGE (STATUS "Copying QwtPolar and updating library paths...")
|
|
IF (NOT EXISTS "${QLIBDIR}/libqwtpolar.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QWT_LIBRARY@" "${QLIBDIR}/libqwtpolar.dylib")
|
|
ENDIF ()
|
|
GET_INSTALL_NAME ("@QWTPOLAR_LIBRARY@" "libqwtpolar" QWTP_CHG)
|
|
IF (QWTP_CHG)
|
|
UPDATEQGISPATHS (${QWTP_CHG} libqwtpolar.dylib)
|
|
ENDIF (QWTP_CHG)
|
|
# update qwt lib in qwtpolar
|
|
IF (QWT_CHG)
|
|
IF (QWT_ISLIB)
|
|
SET (QWT_CHG_TO "${ATLOADER}/libqwt.dylib")
|
|
ElSE ()
|
|
SET (QWT_CHG_TO "${ATLOADER}/${QGIS_LIB_SUBDIR_REV}/${QGIS_FW_SUBDIR}/qwt.framework/qwt")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QWT_CHG}" "${QWT_CHG_TO}" "${QLIBDIR}/libqwtpolar.dylib")
|
|
ENDIF (QWT_CHG)
|
|
ELSEIF (ISFW AND EXISTS "@QWTPOLAR_LIBRARY@")
|
|
# framework
|
|
MESSAGE (STATUS "Copying QwtPolar framework and updating library paths...")
|
|
STRING(REGEX REPLACE "/qwtpolar.framework.*" "" QWTP_PARENT "@QWTPOLAR_LIBRARY@")
|
|
IF (NOT IS_DIRECTORY "${QFWDIR}/qwtpolar.framework")
|
|
COPY_FRAMEWORK("${QWTP_PARENT}" "qwtpolar" "${QFWDIR}")
|
|
ENDIF ()
|
|
GET_INSTALL_NAME ("${QWTP_PARENT}/qwtpolar.framework/qwtpolar" "qwtpolar.framework" QWTP_CHG)
|
|
IF (QWTP_CHG)
|
|
UPDATEQGISPATHS (${QWTP_CHG} qwtpolar)
|
|
ENDIF (QWTP_CHG)
|
|
# update qwt lib in qwtpolar
|
|
IF (QWT_CHG)
|
|
IF (QWT_ISLIB)
|
|
SET (QWT_CHG_TO "${ATLOADER}/../../../${QGIS_FW_SUBDIR_REV}/${QGIS_LIB_SUBDIR}/libqwt.dylib")
|
|
ElSE ()
|
|
SET (QWT_CHG_TO "${ATLOADER}/../../../qwt.framework/qwt")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QWT_CHG}" "${QWT_CHG_TO}" "${QFWDIR}/qwtpolar.framework/qwtpolar")
|
|
ENDIF (QWT_CHG)
|
|
ENDIF (ISLIB)
|
|
ENDIF (@WITH_QWTPOLAR@ AND NOT @WITH_INTERNAL_QWTPOLAR@)
|
|
|
|
# QCA
|
|
|
|
STRING (REGEX MATCH "\\.dylib$" ISLIB "@QCA_LIBRARY@")
|
|
STRING (REGEX MATCH "qca.framework" ISFW "@QCA_LIBRARY@")
|
|
IF (ISLIB)
|
|
# shared libraries
|
|
MESSAGE (STATUS "Copying QCA and updating library paths...")
|
|
SET (QCA_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/${QGIS_LIB_SUBDIR}/libqca.dylib")
|
|
IF (NOT EXISTS "${QLIBDIR}/libqca.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QCA_LIBRARY@" "${QLIBDIR}/libqca.dylib")
|
|
ENDIF ()
|
|
GET_INSTALL_NAME ("@QCA_LIBRARY@" "libqca" QCA_CHG)
|
|
IF (QCA_CHG)
|
|
UPDATEQGISPATHS (${QCA_CHG} libqca.dylib)
|
|
ENDIF ()
|
|
ELSEIF (ISFW AND EXISTS "@QCA_LIBRARY@")
|
|
# framework
|
|
MESSAGE (STATUS "Copying QCA framework and updating library paths...")
|
|
SET (QCA_LIBRARY "@QCA_LIBRARY@")
|
|
STRING (REGEX MATCH "qca.framework/qca" _has_bin "${QCA_LIBRARY}")
|
|
IF (NOT _has_bin)
|
|
SET (QCA_LIBRARY "${QCA_LIBRARY}/qca")
|
|
ENDIF ()
|
|
SET (QCA_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/${QGIS_FW_SUBDIR}/qca.framework/qca")
|
|
IF (NOT IS_DIRECTORY "${QFWDIR}/qca.framework")
|
|
STRING(REGEX REPLACE "/qca.framework.*" "" QCA_PARENT "@QCA_LIBRARY@")
|
|
COPY_FRAMEWORK("${QCA_PARENT}" "qca" "${QFWDIR}")
|
|
ENDIF ()
|
|
GET_INSTALL_NAME ("${QCA_LIBRARY}" "qca" QCA_CHG)
|
|
IF (QCA_CHG)
|
|
UPDATEQGISPATHS (${QCA_CHG} qca)
|
|
ENDIF ()
|
|
ENDIF ()
|
|
# copy and relink the plugins
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../crypto")
|
|
FIND_QCA_PLUGIN_DIR (1)
|
|
MESSAGE (STATUS "Updating QCA plugins with QCA library path in ${QCA_PLUGIN_DIR} ...")
|
|
# don't copy over any unneeded plugins
|
|
SET(QCA_PLUGINS logger ossl softstore)
|
|
FOREACH (qca_plugin ${QCA_PLUGINS})
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${QCA_PLUGIN_DIR}/crypto/libqca-${qca_plugin}.dylib" "${QPLUGDIR}/../crypto/")
|
|
IF (QCA_CHG)
|
|
INSTALLNAMETOOL_CHANGE ("${QCA_CHG}" "${QCA_CHG_TO}" "${QPLUGDIR}/../crypto/libqca-${qca_plugin}.dylib")
|
|
ENDIF ()
|
|
ENDFOREACH ()
|
|
|
|
# QSpatialite Qt plugin
|
|
# linked to qca and qgis_core frameworks (see also 2lib.cmake.in)
|
|
IF (@WITH_QSPATIALITE@ AND EXISTS "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
# qca.framework
|
|
INSTALLNAMETOOL_CHANGE ("${QCA_CHG}" "${QCA_CHG_TO}" "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
# qgis_core.framework
|
|
GET_INSTALL_NAME ("@QGIS_OUTPUT_DIRECTORY@/lib/qgis_core.framework/qgis_core" qgis_core.framework QGCORE)
|
|
SET (QGCORE_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/${QGIS_FW_SUBDIR}/qgis_core.framework/qgis_core")
|
|
INSTALLNAMETOOL_CHANGE ("${QGCORE}" "${QGCORE_CHG_TO}" "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
ENDIF ()
|
|
|
|
# QScintilla2
|
|
|
|
IF (@QSCINTILLA_LIBRARY@ MATCHES ".*libqscintilla2.dylib")
|
|
MESSAGE (STATUS "Copying QScintilla2 library and updating library paths...")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QSCINTILLA_LIBRARY@" "${QLIBDIR}/libqscintilla2.dylib")
|
|
GET_INSTALL_NAME ("@QSCINTILLA_LIBRARY@" "libqscintilla2" QSCI_CHG)
|
|
IF (QSCI_CHG)
|
|
UPDATEQGISPATHS (${QSCI_CHG} libqscintilla2.dylib)
|
|
ENDIF (QSCI_CHG)
|
|
ENDIF ()
|
|
|
|
# Tell user what Python paths are being searched for modules and packages
|
|
# see: PYTHON_MODULE_PATHS in 0vars.cmake.in for why not all PyQt-related modules
|
|
# can be assumed to exist in symlinked-resolved PyQt or sip module directories
|
|
MESSAGE (STATUS "PYTHON_MODULE_PATHS to be searched:")
|
|
FOREACH (PYPATH ${PYTHON_MODULE_PATHS})
|
|
MESSAGE (STATUS " ${PYPATH}")
|
|
ENDFOREACH (PYPATH)
|
|
|
|
# sip and PyQt
|
|
|
|
MESSAGE (STATUS "Copying sip...")
|
|
PYTHONMODULEDIR("sip.so" SIPMODDIR)
|
|
IF (SIPMODDIR)
|
|
IF (NOT EXISTS "${QGISPYDIR}/sip.so")
|
|
# MYMESSAGE ("ditto ${QARCHS} \"${SIPMODDIR}/sip.so\" \"${QGISPYDIR}/\"")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${SIPMODDIR}/sip.so" "${QGISPYDIR}/")
|
|
EXECUTE_PROCESS (COMMAND cp -fp "${SIPMODDIR}/sipconfig.py" "${QGISPYDIR}/")
|
|
ENDIF ()
|
|
ELSE ()
|
|
MESSAGE (STATUS " sip module not found")
|
|
ENDIF ()
|
|
|
|
MESSAGE (STATUS "Copying PyQt...")
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QGISPYDIR}/PyQt${QT_FWVER}")
|
|
FOREACH (PQ ${PYQTLIST})
|
|
SET (MODNAME "${PQ}.so")
|
|
SET (MODSUBPATH "PyQt${QT_FWVER}/${MODNAME}")
|
|
# search for each module separately, instead of only in first found PyQt directory, since PyQt may
|
|
# be installed to its a specific prefix, like with Homebrew, then symlinked into common 'site-packages'
|
|
PYTHONMODULEDIR("${MODSUBPATH}" MODDIR)
|
|
IF (MODDIR)
|
|
IF (NOT EXISTS "${QGISPYDIR}/${MODSUBPATH}")
|
|
# MESSAGE (STATUS "ditto ${QARCHS} \"${PYQT4MOD}\" \"${QGISPYDIR}/${MODSUBPATH}\"")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${MODDIR}/${MODSUBPATH}" "${QGISPYDIR}/${MODSUBPATH}")
|
|
ENDIF ()
|
|
ELSE (MODDIR)
|
|
MESSAGE (STATUS " PyQt4 module ${MODNAME} not found")
|
|
ENDIF (MODDIR)
|
|
UNSET(PYQT4MOD)
|
|
ENDFOREACH (PQ)
|
|
PYTHONMODULEDIR("PyQt${QT_FWVER}" PYQTMODDIR)
|
|
FILE (GLOB PQPYLIST "${PYQTMODDIR}/PyQt${QT_FWVER}/*.py")
|
|
FOREACH (PQPY ${PQPYLIST})
|
|
EXECUTE_PROCESS (COMMAND cp -fp "${PQPY}" "${QGISPYDIR}/PyQt${QT_FWVER}/")
|
|
ENDFOREACH (PQPY)
|
|
EXECUTE_PROCESS (COMMAND cp -RfpL "${PYQTMODDIR}/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, \"\$(/usr/bin/dirname \"\$0\")/../../Resources/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
|
|
# only if it's available, not compatible with newer PyQt
|
|
PYTHONMODULEDIR("Qwt5/_iqt.so" QWT4MODDIR)
|
|
IF (QWT4MODDIR)
|
|
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} "${QWT4MODDIR}/Qwt5/_iqt.so" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/")
|
|
ENDIF ()
|
|
IF (NOT EXISTS "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/Qwt.so")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${QWT4MODDIR}/Qwt5/Qwt.so" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/")
|
|
ENDIF ()
|
|
FILE (GLOB PQWPYLIST "${QWT4MODDIR}/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@)
|
|
SET (QWT_CHG_TO "${ATLOADER}/../../../@QGIS_DATA_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/libqwt.dylib")
|
|
ENDIF (@OSX_HAVE_LOADERPATH@)
|
|
FOREACH (PW _iqt;Qwt)
|
|
INSTALLNAMETOOL_CHANGE ("${QWT_CHG}" "${QWT_CHG_TO}" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/${PW}.so")
|
|
ENDFOREACH (PW)
|
|
ENDIF (QWT_CHG)
|
|
ENDIF ()
|
|
|
|
# QScintilla Python module
|
|
# should have already been copied with PyQt modules
|
|
|
|
IF (EXISTS "${QGISPYDIR}/PyQt${QT_FWVER}/Qsci.so")
|
|
MESSAGE (STATUS "Updating QScintilla2 Python module library paths...")
|
|
GET_INSTALL_NAME ("${QGISPYDIR}/PyQt${QT_FWVER}/Qsci.so" "libqscintilla2" QSCI_CHG)
|
|
IF (QSCI_CHG)
|
|
SET (QSCI_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/libqscintilla2.dylib")
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QSCI_CHG_TO "${ATLOADER}/../../@QGIS_DATA_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/libqscintilla2.dylib")
|
|
ENDIF (@OSX_HAVE_LOADERPATH@)
|
|
INSTALLNAMETOOL_CHANGE ("${QSCI_CHG}" "${QSCI_CHG_TO}" "${QGISPYDIR}/PyQt${QT_FWVER}/Qsci.so")
|
|
ENDIF (QSCI_CHG)
|
|
ENDIF ()
|
|
|
|
# don't load plugins from system-installed Qt
|
|
FILE (WRITE "${QAPPDIRC}/Resources/qt.conf" "")
|
|
FOREACH (QA ${QGAPPLIST})
|
|
FILE (WRITE "${QBINDIR}/${QA}.app/Contents/Resources/qt.conf" "")
|
|
ENDFOREACH (QA)
|
|
|
|
### update lib paths
|
|
|
|
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}")
|
|
# qgis stuff
|
|
UPDATEQGISPATHS ("${QFW_CHG}" ${QFW})
|
|
|
|
SET (LIBPOST "${QFW}.framework/${QFW}")
|
|
# Qwt
|
|
STRING (REGEX MATCH "\\.dylib$" ISLIB "@QWT_LIBRARY@")
|
|
STRING (REGEX MATCH "qwt.framework" ISFW "@QWT_LIBRARY@")
|
|
IF (ISLIB)
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/${QGIS_LIB_SUBDIR_REV}/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QLIBDIR}/libqwt.dylib")
|
|
ELSEIF (ISFW AND EXISTS "${QFWDIR}/qwt.framework/qwt")
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../../${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QFWDIR}/qwt.framework/qwt")
|
|
ENDIF (ISLIB)
|
|
# QwtPolar
|
|
STRING (REGEX MATCH "\\.dylib$" ISLIB "@QWTPOLAR_LIBRARY@")
|
|
STRING (REGEX MATCH "qwtpolar.framework" ISFW "@QWTPOLAR_LIBRARY@")
|
|
IF (ISLIB)
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/${QGIS_LIB_SUBDIR_REV}/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QLIBDIR}/libqwtpolar.dylib")
|
|
ELSEIF (ISFW AND EXISTS "${QFWDIR}/qwtpolar.framework/qwtpolar")
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../../${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QFWDIR}/qwtpolar.framework/qwtpolar")
|
|
ENDIF (ISLIB)
|
|
# QCA
|
|
STRING (REGEX MATCH "\\.dylib$" ISLIB "@QCA_LIBRARY@")
|
|
STRING (REGEX MATCH "qca.framework" ISFW "@QCA_LIBRARY@")
|
|
IF (ISLIB)
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/${QGIS_LIB_SUBDIR_REV}/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QLIBDIR}/libqca.dylib")
|
|
ELSEIF (ISFW AND EXISTS "${QFWDIR}/qca.framework/qca")
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../../${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QFWDIR}/qca.framework/qca")
|
|
ENDIF (ISLIB)
|
|
# osgEarthQt
|
|
IF (@HAVE_OSGEARTHQT@)
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../../${LIBPOST}")
|
|
ENDIF ()
|
|
FOREACH (OSGFW osgQt osgEarthQt)
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QFWDIR}/${OSGFW}.framework/${OSGFW}")
|
|
ENDFOREACH (OSGFW)
|
|
ENDIF (@HAVE_OSGEARTHQT@)
|
|
# QScintilla2
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/${QGIS_LIB_SUBDIR_REV}/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QLIBDIR}/libqscintilla2.dylib")
|
|
# qt plugs
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
# qca plugins
|
|
FOREACH (qca_plugin ${QCA_PLUGINS})
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../crypto/libqca-${qca_plugin}.dylib")
|
|
ENDFOREACH ()
|
|
# osg qfont plugin
|
|
IF (@HAVE_OSGEARTHQT@)
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../osgPlugins/osgdb_qfont.so")
|
|
ENDIF (@HAVE_OSGEARTHQT@)
|
|
FOREACH (QI qgif;qico;qjpeg;qsvg;qtiff)
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../imageformats/lib${QI}.dylib")
|
|
ENDFOREACH (QI)
|
|
FOREACH (QC cn;jp;kr;tw)
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../codecs/libq${QC}codecs.dylib")
|
|
ENDFOREACH (QC)
|
|
FOREACH (QSL ${QTLISTSQL})
|
|
IF (EXISTS "${QPLUGDIR}/../sqldrivers/libqsql${QSL}.dylib")
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../sqldrivers/libqsql${QSL}.dylib")
|
|
ENDIF ()
|
|
ENDFOREACH (QSL)
|
|
IF (@WITH_QSPATIALITE@ AND EXISTS "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
EXECUTE_PROCESS (COMMAND install_name_tool -id "libqsqlspatialite.dylib" "${QPLUGDIR}/../sqldrivers/libqsqlspatialite.dylib")
|
|
ENDIF ()
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../iconengines/libqsvgicon.dylib")
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QPLUGDIR}/../phonon_backend/libphonon_qt7.dylib")
|
|
# qt fw
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../../${LIBPOST}")
|
|
ENDIF ()
|
|
FOREACH (QF ${QTLISTQG})
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QFWDIR}/${QF}.framework/${QF}")
|
|
ENDFOREACH (QF)
|
|
# PyQt (includes QScintilla2 module)
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../@QGIS_DATA_SUBDIR_REV@/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
FOREACH (PQ ${PYQTLIST})
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QGISPYDIR}/PyQt${QT_FWVER}/${PQ}.so")
|
|
ENDFOREACH (PQ)
|
|
# PyQwt
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (QFW_CHG_TO "${ATLOADER}/../../../@QGIS_DATA_SUBDIR_REV@/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
ENDIF ()
|
|
FOREACH (PW _iqt;Qwt)
|
|
IF (EXISTS "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/${PW}.so")
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QGISPYDIR}/PyQt${QT_FWVER}/Qwt5/${PW}.so")
|
|
ENDIF ()
|
|
ENDFOREACH (PW)
|
|
# bin - PyQt utils
|
|
SET (QFW_CHG_TO "${ATEXECUTABLE}/@QGIS_BIN_SUBDIR_REV@/${QGIS_FW_SUBDIR}/${LIBPOST}")
|
|
FOREACH (PB pylupdate4;pyrcc4)
|
|
INSTALLNAMETOOL_CHANGE ("${QFW_CHG}" "${QFW_CHG_TO}" "${QBINDIR}/${PB}")
|
|
ENDFOREACH (PB)
|
|
ENDFOREACH (QFW)
|