Description

Mica is a common plugin architecture for creating Debian Linux and Maemo cross-development environments based on Eclipse.

|   Maemo IDE Common Architecture

Setting up the environment

Mica is based on Eclipse and has a number of (mostly optional) dependencies from other Eclipse projects as well as some modified upstream project sources. Please read this page carefully to ensure your environment matches ours when developing plugins or Mica itself.

Installing from archive

The build environments are pre-built and checked into Mica SVN, for Linux/x86, Win32, and OS X hosts.

For all environments, get and extract the following archives:

Common:

bullet https://garage.maemo.org/svn/mica/build/buildenv/fullbuild/eclipse-3.4.2-buildenv-common.zip

Unzip one of these archives over the common environment:

bullet https://garage.maemo.org/svn/mica/build/buildenv/fullbuild/linux/eclipse-3.4.2-buildenv-linux-386.zip
bullet https://garage.maemo.org/svn/mica/build/buildenv/fullbuild/win32/eclipse-3.4.2-buildenv-win32-386.zip
bullet https://garage.maemo.org/svn/mica/build/buildenv/fullbuild/macosx/eclipse-3.4.2-buildenv-macosx-386.zip
These archives do not include Subversion plugins. The update sites, however, are loaded into the configuration, so you can easily select your favorite.

Linux host compatibility

If you are using a newer Linux distro (Ubuntu Karmic, Fedora 11, etc.), Eclipse will not launch without some manual fixes on the command line. Unfortunately these issues persist with Eclipse 3.5.

Use a script like this to launch your development environment, and apply the given environment and vmargs to your PDE launch configuration:


#!/bin/sh

# This script sets up the environment to run Eclipse in newer
# versions of Linux which are slightly incompatible with Eclipse 3.4.2.

help() {
	echo "Note: xulrunner 1.8 should be installed if Eclipse crashes unexpectedly"
	echo "      on startup, hangs with an empty dialog, fails to show hover help,"
	echo "      crashes in certain wizards, etc."
	echo ""
	echo "Try:  sudo apt-get install xulrunner   in Ubuntu"
	echo ""
	echo "See https://garage.maemo.org/tracker/index.php?func=detail&aid=4689&group_id=192&atid=1420"
}

check_version() {
	PROG="$1"
	if [ ! -z "$PROG" ] && [ -e "$PROG" ] ; then
		VERSION=`$PROG -v 2>&1 | awk '{print $3}' | cut -d. -f1,2`
		test "$VERSION" = "1.8"  
	else
		return 1	
	fi
}

# first, Eclipse depends on an old version of xulrunner.
if [ -z "$XULRUNNER" ] ; then
	XULRUNNER=`which xulrunner`
	if ! check_version $XULRUNNER ; then
		XULRUNNER=/usr/lib/xulrunner/xulrunner
		if ! check_version $XULRUNNER ; then
			XULRUNNER=""
		fi
	fi
fi

XULOPTS=""
if [ -z "$XULRUNNER" ] ; then
	help
else
	XULOPTS="-vmargs -Dorg.eclipse.swt.browser.XULRunnerPath=$XULRUNNER"
	echo "Using xulrunner: $XULRUNNER"
fi


# This is a fix for dependencies on GTK 2.16 (and older) behavior, which
# if unfixed, results in annoying dialog behavior where the mouse cannot
# properly click buttons, use tables, etc.
export GDK_NATIVE_WINDOWS=true

PROGRAM=eclipse
INSTALL_DIR=`dirname $0`
if [ ! -e "$INSTALL_DIR/$PROGRAM" ]  ; then INSTALL_DIR=. ; fi
"$INSTALL_DIR"/$PROGRAM $XULOPTS "$@"

CDT development

If you're developing with CDT and want to see sources while debugging, download this archive:

bullet http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/ganymede/dist/cdt-master-5.0.2.zip

and use Help > Software Updates to add it as as a new Archived Site. Then install the "Eclipse C/C++ Development Tooling Source" package.

Modified external dependencies

For all environments, check out these sources to modified external plugins to complete your build environment:

svn co https://garage.maemo.org/svn/mica/build/external mica-build-external

Use File > Import > Existing Projects into Workspace to include them in your build.

Installing Manually

If you already have an Eclipse development environment, ensure you are using the same baseline software. Some components like CDT and Pydev have routine API breakage, so we can only provide support for one version at a time.

Current Baseline

Note: only Eclipse Ganymede SR2 and EMF 2.4.2 are absolute dependencies. Other projects are dependencies of specific Mica features, which may or may not be used, at your discretion.

  • Eclipse Ganymede SR2
  • EMF 2.4.2
  • CDT 5.0.2
  • Pydev 1.4.4 (with changes)
  • Linux Tools Project / Autotools Plugin 1.0.2
  • DSF 1.1 (with changes)
  • TmL VNC Viewer (with changes)