Eclipse
Eclipse is an Integrated Development Environment (IDE) for software development.
See also Using Eclipse to develop GRASS Python programs
The CDT-plugin enables support for C/C++ development. While CVS-support is built in, additional plugins have to included to allow for access of SVN repositories.
Eclipse/CDT can be used as a convenient frontend for platform independent GRASS GIS development.
It can handle:
- Checkout of the latest sources from the SVN
- Code editing and refactoring
- GRASS-spedific Configure/Make/Make-Install - toolchain via wrapping in Ant-XML-fragements.
- Running of a freshly compiled GRASS-build from within Eclipse.
Please note: This approach aims at software development, not the development of a fat GRASS plugin within the Eclipse environment. If this is you interest, you might want to look up the JGRASS project.
What's needed -- Howto
- A sample Ant-wrapper-file -> paths etc which needs to be updated to local settings (see below). It's pretty much self explanatory. The file should be included in the Eclipse-project (top level).
- The build process is started from the GUI via ->Run ->External Tools ->Run As -> AntBuild -> Select the file "build.xml" here.
- When invoked, the file defaults to do the configuration step and stops afterwards.
- Use the OUTLINE window to fire up the following steps of compilation etc.
- The tasks (configure/make/make install) can also be concatenated -> "launch" shows how this is done: It includes the whole building chain and eventually starts the newly build GRASS from within Eclipse.
Note: Please be aware that building on a Windows machine will require a bit of fiddling with MSYS. The attached build.xml comes from a linux-environment.
Ant project file "build.xml"
<?xml version="1.0"?> <project name="GRASS-Builder ant Wrapper for GRASS trunk (Peter Loewe 2008)" default="configure"> <description> Ant Adapter fuer GRASS make </description> <target name="configure" description="GRASSbuilder: Configure"> <exec executable="configure"> <arg value="--program-suffix=RE_eclipse" /> <arg value="--without-tcltk" /> <arg value="--without-fftw" /> </exec> </target> <target name="configure-help" description="GRASSbuilder: Configure: Print Help"> <exec executable="configure"> <arg value="--help" /> </exec> </target> <target name="make" description="GRASSbuilder: make" depends="configure"> <exec executable="make"> </exec> </target> <target name="make_solo" description="GRASSbuilder: make (solo)"> <exec executable="make"> </exec> </target> <target name="make_solo backup" description="GRASSbuilder: make (solo)"> <exec executable="/home/grass/workspace/grass_trunk/make"> <arg value="-f"/> <arg value="unix/Makefile"/> <arg value="generic"/> </exec> </target> <target name="install" description="GRASSbuilder: install" depends="make"> <exec executable="make"> <arg value="install"/> </exec> </target> <target name="install_solo" description="GRASSbuilder: install (solo)"> <exec executable="make"> <arg value="install"/> </exec> </target> <target name="clean" description="GRASSbuilder: install" depends="make"> <exec executable="make"> <arg value="clean"/> </exec> </target> <target name="clean_solo" description="GRASSbuilder: install (solo)"> <exec executable="make"> <arg value="clean"/> </exec> </target> <target name="launch_solo" description="GRASSbuilder: launch (solo)"> <exec executable="./bin.i686-pc-linux-gnu/grass70"> <arg value="-gui"/> </exec> </target> <target name="launch" description="GRASSbuilder: launch" depends="make"> <exec executable="./bin.i686-pc-linux-gnu/grass70"> <arg value="-gui"/> </exec> </target> </project>
References
- pages 26 - 28: Coming of Age: The positive legacy of free and open-source software geographic information systems.