Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDT/Obsolete/release engineering

< CDT‎ | Obsolete
Revision as of 09:54, 28 July 2011 by Jamesblackburn+eclipse.gmail.com (Talk | contribs) (Add CDT8 + Tycho / Maven)

What do we build today?

CDT is currently built as an update site, archived in a master zip file.


To install CDT:

  1. Download the master zip file and put it somewhere on your machine.
  2. Fire up Eclipse
  3. Help->Software Updates
  4. On the Available Features tab, select Manage sites...
  5. Add... in the master zip as an Archive...
  6. Under CDT Main Features select the one you want. C/C++ Development Tools is the main one. The SDK adds in the schemas and source for building extensions to the CDT. The C/C++ Development Platform is the Tools without the GNU toolchain support.
  7. You can install other neat things, including the Mylyn bridge, from the CDT Optional Features category.


This master zip has everything, including:

  • CDT Platform Feature - includes editor, search, builders, launch, debug, user documentation
  • CDT Runtime Feature - superset of platform feature that adds gnu toolchain integrations for build/debug
  • CDT SDK Feature - superset of runtime that adds source and extension point schemas
  • GDB Hardware Debugging - provides a launch configuration for launching gdb to do hardware debugging.
  • XL C/C++ Compiler Support - provides an error parser and managed build support for IBM's XL C/C++ compilers.
  • LR Parser - provides a parser for the ISO/IEC 9899:1999 variant of the C programming language (aka C99) and the C++ programming language, generated from a grammar using the LPG parser generator. The grammar can be reused and extended to create your own parser for variants on the C programming language.
  • Unified Parallel C Support - Provides support for the Unified Parallel C programming language. Provides parsing/indexing infrastructure and language definition, allowing the UPC language to be recognized by CDT. Requires the LR parser feature.
  • Mylyn Bridge - allows CDT to work with Mylyn.
  • CDT Utilities - provides utilities for C/C++ Development Tools
  • CDT Testing Feature - includes all test plugins required for running automated JUnit tests


Building CDT master headlessly with Tycho/Maven

CDT master is built from git using Maven+Tycho (as of CDT 8). Running a headless build is straightforward. (Within the IDE, plugins are automatically built.)

Building CDT

  1. mkdir cdt-releng ; cd cdt-releng
  2. git clone git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
  3. pushd org.eclipse.cdt
  4. mvn clean install
  5. popd

Add -Dmaven.skip.test if you don't want maven to run the tests.

The generated p2 repository lives under: releng/org.eclipse.cdt.repo/target/repository/ or compressed at: releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip

Building EDC

  1. First build CDT above.
  2. `pwd` ; # = cdt-releng
  3. git clone git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.edc.git
  4. svn co svn://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk/ org.eclipse.tm.tcf
  5. #Build TCF
  6. pushd org.eclipse.tm.tcf
  7. mvn -Dmaven.test.skip clean install
  8. popd
  9. #Build EDC
  10. pushd org.eclipse.cdt.edc
  11. mvn -Dmaven.test.skip clean install
  12. popd


EDC depends on TCF and CDT. The top-level EDC pom.xml builds against the snapshot p2 repositories generated for CDT and TCF.

How do we run the build? How often do we build?

We use several scripts to kick off our builds. There is one for every CVS stream we build against in /home/www/tools/cdt/scripts/ on the Eclipse build machine (build.eclipse.org, running Linux/PPC):

Script CDT version CVS stream Java JRE Build schedule
mvn clean install CDT 8.0 master Java 5 Hudson
cdtbuild CDT 7.0 cdt_7_0 Java 5 Every Friday at 8am Eastern time
cdtbuild6.0 CDT 6.0.2 cdt_6_0 Java 5 Available upon request
cdtbuild5.0 CDT 5.0.3 cdt_5_0 Java 5 Available upon request


These scripts setup the staging area on the build machine for the build. Each of these scripts checks out the latest org.eclipse.cdt.releng plugin in their respective stream. It then runs build.sh and build.xml (in org.eclipse.cdt.releng) where majority of the build logic resides.


We rely on the plugins in org.eclipse.releng.basebuilder to run our builds. We use different versions of the basebuilder for various stream builds. More information can be found on the following page:

http://wiki.eclipse.org/Platform-releng-basebuilder


During the build process, features and plugins are tagged in CVS with the build timestamp. Once the build is completed, it is signed, (JUnit) tested, and made available in the | CDT download area .


Builds against older streams are available upon request.

How do we publish release builds?

  1. Unzip the master zip into a temporary directory
  2. Move the plugin and feature jars into the update site (cdt/releases/[release_name])
  3. Insert the features into the update site’s site.xml and set categories as appropriate
  4. Run the optimize script that’s in the cdt/scripts directory to create packed jars
  5. Wait for the downloads site to update and test that the site.xml is correct (this could take a while)
  6. Update the cdt website, send mail to cdt-dev and cdt newsgroup announcing new build
  7. Tag the build in CVS

Back to the top