# 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)