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

|   Maemo IDE Common Architecture



Mica uses these Eclipse or Eclipse-based projects as a foundation: C/C++ Development Tooling (CDT), Pydev, Debugger Services Framework, Target Management (RSE), the Linux Tools Project, and Eclipse Modeling Framework. While these projects themselves could provide a pretty full-featured environment, you are mostly restricted to developing programs on the host or a remote computer.

Cross-platform support

Mica provides the framework for integrating a Linux-based SDK into a full cross-development environment by abstracting process launching, process control, filesystem access, and filesystem mapping across machines and sandboxed SDKs.

Mica also supports end-user devices, allowing launching, debugging, and deploying applications on Debian Linux devices accessible over SSH and SBRSH (Scratchbox Remote Shell).

Projects and Languages

Mica provides a unified interface to different types of projects and to build configuration access in those projects. Build configurations may map directly to the underlying project model (such as for CDT) or be built on top of it (as for Pydev).

For C/C++ development, the CDT provides the project and editor support. Make and Autotools-based projects are supported using a custom builder and project model that knows how to convert and validate the project for building under sandboxes like Scratchbox. The SDK can be on the host, in a sandbox, on a virtual machine, or on a remote computer.

For Python development, the Pydev project provides the project support and editor support.

Debian Linux Support

Mica provides support for Debian Linux environments by supporting the "apt" and "dpkg" tools. Currently, you can synchronize your sandbox and device with the packages required by your project (as determined by scans of or by hard-coded suggestions for given SDKs).

PC Connectivity Integration

Mica can integrate with the Maemo PC Connectivity project to support launching and debugging on a device over SSH and SBRSH.