mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
117 lines
4.2 KiB
CMake
117 lines
4.2 KiB
CMake
# 1osg - bundle OSG & osgEarth frameworks
|
|
# ! 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)
|
|
|
|
IF (@OSGEARTH_FOUND@)
|
|
|
|
INCLUDE ("@CMAKE_BINARY_DIR@/mac/0vars.cmake")
|
|
INCLUDE ("@CMAKE_SOURCE_DIR@/cmake/MacBundleMacros.cmake")
|
|
|
|
SET (OSG_PLUGINS_PATH "@OSG_PLUGINS_PATH@")
|
|
|
|
# list of osg frameworks to bundle
|
|
|
|
SET (OSGLIST OpenThreads osg osgAnimation osgDB osgGA osgViewer osgEarth osgEarthAnnotation osgEarthFeatures osgEarthSymbology osgEarthUtil osgFX osgManipulator osgParticle osgPresentation osgShadow osgSim osgTerrain osgText osgUtil osgVolume osgWidget)
|
|
IF (@HAVE_OSGEARTHQT@)
|
|
SET (OSGLIST ${OSGLIST} osgQt osgEarthQt)
|
|
ENDIF (@HAVE_OSGEARTHQT@)
|
|
#SET (PYOSGLIST future python bindings?)
|
|
MYMESSAGE ("OSG list: ${OSGLIST}")
|
|
|
|
# extract OSG framework path from OSGEARTH_LIBRARY, assume all in same prefix
|
|
|
|
STRING (REPLACE "/osgEarth.framework" "" OSG_FW_DIR "@OSGEARTH_LIBRARY@")
|
|
|
|
### copy OSG
|
|
|
|
MESSAGE (STATUS "Copying OSG and osgEarth...")
|
|
|
|
# osg frameworks
|
|
FOREACH (OFW ${OSGLIST})
|
|
IF (NOT IS_DIRECTORY "${QFWDIR}/${OFW}.framework")
|
|
COPY_FRAMEWORK("${OSG_FW_DIR}" ${OFW} "${QFWDIR}")
|
|
ENDIF ()
|
|
ENDFOREACH (OFW)
|
|
|
|
# osg plugins
|
|
|
|
IF (OSG_PLUGINS_PATH)
|
|
FILE (GLOB OSGPLUGLIST RELATIVE ${OSG_PLUGINS_PATH} ${OSG_PLUGINS_PATH}/*.so)
|
|
EXECUTE_PROCESS (COMMAND mkdir -p "${QPLUGDIR}/../osgPlugins")
|
|
FOREACH (OP ${OSGPLUGLIST})
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${OSG_PLUGINS_PATH}/${OP}" "${QPLUGDIR}/../osgPlugins/${OP}")
|
|
ENDFOREACH (OP)
|
|
ENDIF ()
|
|
|
|
|
|
# update lib paths
|
|
|
|
MESSAGE (STATUS "Updating OSG library paths...")
|
|
|
|
FOREACH (OFW ${OSGLIST})
|
|
# get install names from installed in case bundled copy already changed
|
|
# from a previous install attempt
|
|
GET_INSTALL_NAME ("${OSG_FW_DIR}/${OFW}.framework/${OFW}" ${OFW}.framework OO)
|
|
SET (OFW_CHG "${OO}")
|
|
SET (OFW_CHG_TO "${ATEXECUTABLE}/@QGIS_FW_SUBDIR@/${OFW}.framework/${OFW}")
|
|
# qgis app
|
|
INSTALLNAMETOOL_CHANGE ("${OFW_CHG}" "${OFW_CHG_TO}" "${QAPPDIR}/${QGIS_APP_NAME}")
|
|
|
|
SET (LIBPOST "${OFW}.framework/${OFW}")
|
|
# osg frameworks
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (OFW_CHG_TO "${ATLOADER}/../../../${LIBPOST}")
|
|
ENDIF ()
|
|
FOREACH (OF ${OSGLIST})
|
|
INSTALLNAMETOOL_CHANGE ("${OFW_CHG}" "${OFW_CHG_TO}" "${QFWDIR}/${OF}.framework/${OF}")
|
|
ENDFOREACH (OF)
|
|
# osg plugins
|
|
IF (@OSX_HAVE_LOADERPATH@)
|
|
SET (OFW_CHG_TO "${ATLOADER}/@QGIS_PLUGIN_SUBDIR_REV@/@QGIS_FW_SUBDIR@/${LIBPOST}")
|
|
ENDIF ()
|
|
FOREACH (OP ${OSGPLUGLIST})
|
|
INSTALLNAMETOOL_CHANGE ("${OFW_CHG}" "${OFW_CHG_TO}" "${QPLUGDIR}/../osgPlugins/${OP}")
|
|
ENDFOREACH (OP)
|
|
# globe plugin
|
|
INSTALLNAMETOOL_CHANGE ("${OFW_CHG}" "${OFW_CHG_TO}" "${QPLUGDIR}/libglobeplugin.so")
|
|
ENDFOREACH (OFW)
|
|
|
|
IF (@HAVE_OSGEARTHQT@)
|
|
SET (OSGLIST ${OSGLIST} osgQt osgEarthQt)
|
|
ENDIF (@HAVE_OSGEARTHQT@)
|
|
|
|
# osgEarth exernal libs (2.4+, e.g. tinyxml)
|
|
GET_INSTALL_NAME ("${QFWDIR}/osgEarth.framework/osgEarth" "libtinyxml" TINY)
|
|
# MESSAGE (STATUS "libtinyxml path: ${TINY}")
|
|
IF (EXISTS "${TINY}")
|
|
SET (TINY_CHG "${TINY}")
|
|
SET (TINY_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/libtinyxml.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${TINY_CHG}" "${QLIBDIR}/libtinyxml.dylib")
|
|
|
|
# osg frameworks
|
|
FOREACH (OF ${OSGLIST})
|
|
INSTALLNAMETOOL_CHANGE ("${TINY_CHG}" "${TINY_CHG_TO}" "${QFWDIR}/${OF}.framework/${OF}")
|
|
ENDFOREACH (OF)
|
|
# osg plugins
|
|
FOREACH (OP ${OSGPLUGLIST})
|
|
INSTALLNAMETOOL_CHANGE ("${TINY_CHG}" "${TINY_CHG_TO}" "${QPLUGDIR}/../osgPlugins/${OP}")
|
|
ENDFOREACH (OP)
|
|
# globe plugin
|
|
INSTALLNAMETOOL_CHANGE ("${TINY_CHG}" "${TINY_CHG_TO}" "${QPLUGDIR}/libglobeplugin.so")
|
|
ENDIF ()
|
|
|
|
GET_INSTALL_NAME ("${OSG_PLUGINS_PATH}/osgdb_kml.so" "libminizip" MINI)
|
|
# MESSAGE (STATUS "libminizip path: ${MINI}")
|
|
IF (EXISTS "${MINI}")
|
|
SET (MINI_CHG "${MINI}")
|
|
SET (MINI_CHG_TO "${ATEXECUTABLE}/@QGIS_LIB_SUBDIR@/libminizip.dylib")
|
|
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "${MINI_CHG}" "${QLIBDIR}/libminizip.dylib")
|
|
INSTALLNAMETOOL_CHANGE ("${MINI_CHG}" "${MINI_CHG_TO}" "${QPLUGDIR}/../osgPlugins/osgdb_kml.so")
|
|
ENDIF ()
|
|
|
|
ENDIF (@OSGEARTH_FOUND@)
|