Expand Up
@@ -26,6 +26,12 @@ ENDIF ()
# additional Qt may be needed by plugins
SET (QTLISTQG ${QTLISTQG} QtMultimedia QtOpenGL)
SET (PYQTLIST ${PYQTLIST} QtMultimedia QtOpenGL)
# add Qsci.so, if available
IF (@QSCI_FOUND@)
SET (PYQTLIST ${PYQTLIST} Qsci)
ENDIF (@QSCI_FOUND@)
# for tests
IF (ENABLE_TESTS)
SET (QTLISTQG ${QTLISTQG} QtTest)
Expand Down
Expand Up
@@ -80,16 +86,58 @@ IF (NOT EXISTS "${QPLUGDIR}/../iconengines/libqsvgicon.dylib")
ENDIF ()
# 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" )
ENDIF ()
GET_INSTALL_NAME ("@QWT_LIBRARY@" "libqwt" QWT_CHG)
IF (QWT_CHG)
UPDATEQGISPATHS (${QWT_CHG} libqwt.dylib)
ENDIF (QWT_CHG)
STRING (REGEX MATCH "\\ .dylib$" ISLIB "@QWT_LIBRARY@" )
STRING (REGEX MATCH "qwt.framework" ISFW "@QWT_LIBRARY@" )
IF (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 (ISFW AND EXISTS "@QWT_LIBRARY@" )
# framework
MESSAGE (STATUS "Copying Qwt framework and updating library paths..." )
IF (NOT IS_DIRECTORY "${QFWDIR} /qwt.framework" )
STRING (REGEX REPLACE "/qwt.framework.*" "" QWT_PARENT "@QWT_LIBRARY@" )
COPY_FRAMEWORK("${QWT_PARENT} " "qwt" "${QFWDIR} " )
ENDIF ()
GET_INSTALL_NAME ("@QWT_LIBRARY@" "qwt" QWT_CHG)
IF (QWT_CHG)
UPDATEQGISPATHS (${QWT_CHG} qwt)
ENDIF (QWT_CHG)
ENDIF (ISLIB)
# QScintilla2
IF (@QSCINTILLA_FOUND@)
STRING (REGEX MATCH "\\ .dylib$" QSCILIB "@QSCINTILLA_LIBRARY@" )
IF (QSCILIB)
# shared library
MESSAGE (STATUS "Copying QScintilla2 and updating library paths..." )
IF (NOT EXISTS "${QLIBDIR} /libqscintilla2.dylib" )
# ditto should copy most current dylib from any symlink
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@QSCINTILLA_LIBRARY@" "${QLIBDIR} /" )
STRING (REGEX REPLACE "/libqscintilla2.*" "" QSCI_PARENT "@QSCINTILLA_LIBRARY@" )
FILE (GLOB QSCI_LIST "${QSCI_PARENT} /libqscintilla2*" )
FOREACH (QSCI_DYLIB ${QSCI_LIST} )
IF (IS_SYMLINK "${QSCI_DYLIB} " )
# for symlinks, which are ignored by ditto
EXECUTE_PROCESS (COMMAND cp -a "${QSCI_DYLIB} " "${QLIBDIR} /" )
ENDIF ()
ENDFOREACH (QSCI_DYLIB)
ENDIF ()
GET_INSTALL_NAME ("@QSCINTILLA_LIBRARY@" "libqscintilla2" QSCI_CHG)
IF (QSCI_CHG)
STRING (REGEX REPLACE ".*(libqscintilla2.*\\ .dylib)$" "\\ 1" QSCI_CHG_NAME "${QSCI_CHG} " )
UPDATEQGISPATHS (${QSCI_CHG} ${QSCI_CHG_NAME} )
ENDIF (QSCI_CHG)
ENDIF (QSCILIB)
ENDIF (@QSCINTILLA_FOUND@)
# PyQt
Expand All
@@ -99,19 +147,41 @@ IF (NOT EXISTS "${QGISPYDIR}/sip.so")
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
# if PYQT4_MOD_DIR not defined, assume "PyQt4" next to SIP
SET (PYQT4MODDIR "@SIP_MOD_DIR@/PyQt${QT_FWVER} " )
IF (EXISTS "@PYQT4_MOD_DIR@" )
SET (PYQT4MODDIR "@PYQT4_MOD_DIR@" )
# MESSAGE (STATUS "Defined PYQT4_MOD_DIR: @PYQT4_MOD_DIR@")
ENDIF ()
# also search python site-packages/PyQt4, in case module packages installed elsewhere and symlinked
# (common with binary installers like homebrew)
SET (PYQT4MODALT "@PYTHON_SITE_PACKAGES_SYS@/PyQt4" )
# MESSAGE (STATUS "Defined PYQT4MODALT: ${PYQT4MODALT}")
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 ()
SET (MODNAME "${PQ} .so" )
IF (EXISTS "${PYQT4MODDIR} /${MODNAME} " )
SET (PYQT4MOD "${PYQT4MODDIR} /${MODNAME} " )
ELSEIF (EXISTS "${PYQT4MODALT} /${MODNAME} " )
SET (PYQT4MOD "${PYQT4MODALT} /${MODNAME} " )
ENDIF ()
IF (EXISTS "${PYQT4MOD} " )
IF (NOT EXISTS "${QGISPYDIR} /PyQt${QT_FWVER} /${MODNAME} " )
# MESSAGE (STATUS "ditto ${QARCHS} \"${PYQT4MOD}\" \"${QGISPYDIR}/PyQt${QT_FWVER}/${MODNAME}\"")
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${PYQT4MOD} " "${QGISPYDIR} /PyQt${QT_FWVER} /${MODNAME} " )
ENDIF ()
ELSE (EXISTS "${PYQT4MOD} " )
MESSAGE (STATUS "PyQt4 module ${MODNAME} not found" )
ENDIF (EXISTS "${PYQT4MOD} " )
UNSET (PYQT4MOD)
ENDFOREACH (PQ)
FILE (GLOB PQPYLIST "@SIP_MOD_DIR@/PyQt ${QT_FWVER } /*.py" )
FILE (GLOB PQPYLIST "${PYQT4MODDIR } /*.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} " )
EXECUTE_PROCESS (COMMAND cp -Rfp "${PYQT4MODDIR } /uic" "${QGISPYDIR} /PyQt${QT_FWVER} " )
# PyQt utilities
Expand All
@@ -130,16 +200,16 @@ ENDIF ()
# PyQwt
# only if it's available, not compatible with newer PyQt
IF (EXISTS "@SIP_MOD_DIR@/PyQt ${QT_FWVER } /Qwt5/_iqt.so" )
IF (EXISTS "${PYQT4MODDIR } /Qwt5/_iqt.so" )
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/" )
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${PYQT4MODDIR } /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/" )
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${PYQT4MODDIR } /Qwt5/Qwt.so" "${QGISPYDIR} /PyQt${QT_FWVER} /Qwt5/" )
ENDIF ()
FILE (GLOB PQWPYLIST "@SIP_MOD_DIR@/PyQt ${QT_FWVER } /Qwt5/*.py" )
FILE (GLOB PQWPYLIST "${PYQT4MODDIR } /Qwt5/*.py" )
FOREACH (PQWPY ${PQWPYLIST} )
EXECUTE_PROCESS (COMMAND cp -fp "${PQWPY} " "${QGISPYDIR} /PyQt${QT_FWVER} /Qwt5/" )
ENDFOREACH (PQWPY)
Expand All
@@ -153,6 +223,19 @@ IF (EXISTS "@SIP_MOD_DIR@/PyQt${QT_FWVER}/Qwt5/_iqt.so")
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..." )
IF (QSCI_CHG AND QSCI_CHG_NAME)
IF (@OSX_HAVE_LOADERPATH@)
SET (QSCI_CHG_TO "${ATLOADER} /../../@QGIS_DATA_SUBDIR_REV@/@QGIS_LIB_SUBDIR@/${QSCI_CHG_NAME} " )
ENDIF (@OSX_HAVE_LOADERPATH@)
INSTALLNAMETOOL_CHANGE ("${QSCI_CHG} " "${QSCI_CHG_TO} " "${QGISPYDIR} /PyQt${QT_FWVER} /Qsci.so" )
ENDIF (QSCI_CHG AND QSCI_CHG_NAME)
ENDIF ()
# don't load plugins from system-installed Qt
FILE (WRITE "${QAPPDIRC} /Resources/qt.conf" "" )
FOREACH (QA ${QGAPPLIST} )
Expand All
@@ -173,10 +256,24 @@ FOREACH (QFW ${QTLISTQG})
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)
# 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} /libqwt .dylib" )
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} " )
Expand All
@@ -196,7 +293,7 @@ FOREACH (QFW ${QTLISTQG})
FOREACH (QF ${QTLISTQG} )
INSTALLNAMETOOL_CHANGE ("${QFW_CHG} " "${QFW_CHG_TO} " "${QFWDIR} /${QF} .framework/${QF} " )
ENDFOREACH (QF)
# PyQt
# PyQt (includes QScintilla2 module)
IF (@OSX_HAVE_LOADERPATH@)
SET (QFW_CHG_TO "${ATLOADER} /../../@QGIS_DATA_SUBDIR_REV@/${QGIS_FW_SUBDIR} /${LIBPOST} " )
ENDIF ()
Expand Down