Project Software Tools Setup


This page describes the setup required to participate in developing software for this project. The instructions are high level, so you'll need to make some decisions along the way. If you're unclear on something during one of the steps, you might make a note so that you can reverse the decision later, if necessary. Feel free to update these steps with any clarifications.

Basic Software Setup

This project uses a number of standard, platform-independent software tools, including Eclipse, Mercurial, and the Android SDK.

  1. Download and install Eclipse. The "Java Developers" version is sufficient.
  2. Download and install Mercurial.
  3. Configure Eclipse with the Mercurial plug-in from JavaForge using the built-in Eclipse "Help -> Install New Software… -> Add" method with URL (For Mac and Linux installations, uncheck the win32 binaries.)
  4. Download and install the Android SDK.
  5. Configure Eclipse with the Android Development Tools (ADT) plug-in using the built-in Eclipse "Help -> Install New Software… -> Add" method with URL
  6. Configure Eclipse with the location of the Android SDK by browsing to the location of the installed "tools" directory.

Project-Specific Configuration

  1. Configure Mercurial with your user name and (Purdue) email address so that your updates are properly identified.
  2. Clone the Android client project (for example), by using Mercurial to import into Eclipse the repository from JavaForge using this URL:
  3. Once imported, it may be necessary in Eclipse to fix the project properties: Right click on the project root, select "Android Tools -> Fix Project" Properties, then do a Clean build ("Project -> Clean…").

The project repositories are available on JavaForge (main site) and Googe Code (backup site).

Other Notes

To clean files from a repository (e.g., to expunge generated binaries):

1. Your ~/.hgrc file needs to enable the convert extension and set one parameter (which preserves the revision IDs):

convert =


2. Create a file, e.g, "ditch", that sets "exclude file" for each file that is to be excluded from the new repository. For example,
exclude VideoWall.apk
exclude VideoWallApp.apk
exclude classes.dex
exclude resources.ap_

3. Run "hg convert —filemap ditch hci-class-purdue-android/" to create a new repository with "-hg" suffix that excludes all the files in the ditch file.
4. Overwrite the server repository with this new repository (somehow).