Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
Welcome!
Here you'll get all the information you need to start Marble development:
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.
Configure Marble with:
cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble
To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):
VERSION=0.7.1
APPNAME=Marble
VOLNAME=${APPNAME}-${VERSION} DMGNAME=${VOLNAME}Uncompressed.dmg COMPRESSEDDMGNAME=${VOLNAME}.dmg
function deploy_file() { for n in $(otool -L $1 | grep Qt); do path=`echo $n | grep Qt` if [ $path ] ; then name=$(basename $path) FRAMEWORKS="$FRAMEWORKS $name" fi done
for framework in $FRAMEWORKS ; do install_name_tool -change \ $framework.framework/Versions/4/$framework \ @executable_path/../Frameworks/$framework.framework/Versions/4/$framework \ $1 done }
function deploy_plugins() { for plugin in $1/Contents/Resources/plugins/*; do deploy_file $plugin done }
function set_bundle_display_options() { osascript <<-EOF
tell application "Finder" set f to POSIX file ("${1}" as string) as alias tell folder f open tell container window set toolbar visible to false set statusbar visible to false set current view to icon view delay 1 -- sync set the bounds to {20, 50, 300, 400} end tell delay 1 -- sync set icon size of the icon view options of container window to 64 set arrangement of the icon view options of container window to not arranged set position of item "Marble.app" to {100,150} set position of item "Applications" to {280, 150} set background picture of the icon view options of container window to file "background.png" of folder "Pictures" set the bounds of the container window to {0, 0, 300, 400} update without registering applications delay 5 -- sync close end tell delay 5 -- sync end tell
EOF
}
function create_symlinks() { cd "$1/Contents/Resources" ln -s "../MacOS/resources/data/" "data" ln -s "../MacOS/resources/plugins/" "plugins" cd - }
rm ~/Desktop/${DMGNAME}
rm ~/Desktop/${COMPRESSEDDMGNAME}
hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}
hdiutil attach ~/Desktop/${DMGNAME}
DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1) DEV=$(echo $DEVS | cut -f 1 -d ' ') VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')
cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app
macdeployqt ${VOLUME}/${APPNAME}.app create_symlinks ${VOLUME}/${APPNAME}.app deploy_file "${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib" deploy_plugins ${VOLUME}/${APPNAME}.app
mkdir -p ${VOLUME}/Pictures
cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png
ln -s /Applications/ ${VOLUME}/Applications set_bundle_display_options ${VOLUME} mv ${VOLUME}/Pictures ${VOLUME}/.Pictures
hdiutil detach $DEV
hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}
It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.
macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.
This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.
The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)
After that you should have Marble-version.dmg on you Desktop.
Here are a few links to various issues we are working on:
Overview of the plans for GeoGraphicsView Developing the GeoParser to work with GeoGraphicsView
Summaries and logs of scheduled Marble meetings can be found on the following pages: