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

Difference between revisions of "Getting started with CDT development"

m
(47 intermediate revisions by 10 users not shown)
Line 1: Line 1:
<h2> <br /> </h2>
+
== Eclipse SDK  ==
  
== Getting the Sources<br>  ==
+
The very first thing you'll need to do to work on the CDT sources is install an Eclipse SDK (officially known as the ''Eclipse Project''). The SDK contains the Eclipse platform plus other features that developers typically need to develop plug-ins, e.g., JDT and PDE. Which version of the SDK you need depends on which version of CDT you're building. To build the master branch of CDT today (September 26, 2014), you need Eclipse 4.4 or above. To build an earlier version of CDT, you might need to use an earlier version of Eclipse SDK. Visit the [http://www.eclipse.org/cdt/downloads.php CDT downloads page] to see which version of Eclipse/SDK matches a particular CDT version.
  
In June 2011, CDT officially transitioned off CVS and onto Git.  
+
==== Eclipse Setup ====
 +
* Get the latest Eclipse Standard package (current 4.4.1) from http://www.eclipse.org/downloads. You can also find older versions of the Eclipse SDK here: http://archive.eclipse.org/eclipse/downloads/
 +
* Install a separate copy of CDT 8.5 (for master branch) to establish an API baseline in the Preferences. See [[CDT/policy#Using_API_Tooling]]
 +
* Install API Tools Execution Environment Descriptions. You can get it from Help->Install New Software...
  
Committers will want to access the master repository via ssh
+
== Setting up the Sources<br>  ==
  
  ssh://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
+
For detailed information on how to setup git, and check out source of CDT as a committer, see [[CDT/git]].
 +
Otherwise, follow the non-committer setup instructions below.
  
Everyone else will use either of the following URLs
+
==== Clone the Repo ====
 +
From the Git perspective, select Clone a Git Repository action
 +
* Cut & Paste following url in the first page of wizard for cloning: git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
 +
* It will ask you what branches to import. If you only care about head select master, if you want to work with other branches select a corresponding branch, for example cdt_8_4.
 +
* Press Next. As location where files are stored select a folder inside your workspaces, for example workspace/cdt-git
 +
* Press Finish (skip Gerrit page)
 +
* This should take about 3-5 minutes
 +
From the repo, select Import Projects...
 +
* Select all the projects or individual. Project filter does not seems to work. It maybe easier select all, then close projects you don't need
  
  git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
+
Here's a list of projects you could start with:
  http://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
+
* org.eclipse.cdt.codan.checkers
 +
* org.eclipse.cdt.codan.checkers.ui
 +
* org.eclipse.cdt.codan.core
 +
* org.eclipse.cdt.codan.core.cxx
 +
* org.eclipse.cdt.codan.ui
 +
* org.eclipse.cdt.codan.ui.cfgview
 +
* org.eclipse.cdt.codan.ui.cxx
 +
* org.eclipse.cdt.core
 +
* org.eclipse.cdt.core.native
 +
* org.eclipse.cdt.core.linux          (Platform specific, change accordingly)
 +
* org.eclipse.cdt.core.linux.x86_64  (Platform specific, change accordingly)
 +
* org.eclipse.cdt.core.win32          (Platform specific, change accordingly)
 +
* org.eclipse.cdt.core.win32.x86      (Platform specific, change accordingly)
 +
* org.eclipse.cdt.core.win32.x86_64  (Platform specific, change accordingly)
 +
* org.eclipse.cdt.debug.core
 +
* org.eclipse.cdt.debug.mi.core
 +
* org.eclipse.cdt.debug.mi.ui
 +
* org.eclipse.cdt.debug.ui
 +
* org.eclipse.cdt.dsf
 +
* org.eclipse.cdt.dsf.gdb
 +
* org.eclipse.cdt.dsf.gdb.ui
 +
* org.eclipse.cdt.dsf.ui
 +
* org.eclipse.cdt.gdb
 +
* org.eclipse.cdt.gdb.ui
 +
* org.eclipse.cdt.launch
 +
* org.eclipse.cdt.make.core
 +
* org.eclipse.cdt.make.ui
 +
* org.eclipse.cdt.managedbuilder.core
 +
* org.eclipse.cdt.managedbuilder.gnu.ui
 +
* org.eclipse.cdt.managedbuilder.ui
 +
* org.eclipse.cdt.ui
  
[http://git.eclipse.org/c/cdt/org.eclipse.cdt Click here] for further information on the Git repos available to to CDT developers
+
If you want to run tests, add the corresponding test project, for example, org.eclipse.cdt.core.tests.
  
== Screencasts  ==
+
==== Dependencies ====
 +
The easiest way to satisfy all dependencies for CDT is to set a target platform. The target platform will download all the dependencies so that you can compile and run your imported CDT plug-ins without having to install the dependencies in your Eclipse installation.
  
Doug Schaefer has posted numerous screencasts on using git with Eclipse<br>
+
To set the target platform:
 +
* Expand the "org.eclipse.cdt.target" project.
 +
* Double-click on cdt-e4.4.target (or the .target file that corresponds to the Eclipse version you want to target).
 +
* In the editor that just opened, click ''Set as Target Platform'' on the top right.
  
*[http://www.youtube.com/watch?v=DcM1xOiaidk&feature=related Using Git GUI with Eclipse Part I - Setting up the workspace] [http://www.youtube.com/watch?v=1OrPJClD92s&feature=related]<br>
+
Eclipse will now download the required dependencies, which may take some time the first time. Once this is done, it should trigger a full build of your workspace and a lot of errors should go away.
*[http://www.youtube.com/watch?v=1OrPJClD92s&feature=related Using Git GUI with Eclipse Part II - Pushing changes to the server] [http://www.youtube.com/watch?v=WU9xYP_NScQ]<br>
+
*[http://www.youtube.com/watch?v=WU9xYP_NScQ Setting up SSH authorized keys in Eclipse] [http://www.youtube.com/watch?v=Lhwi3z2DyzQ&feature=related]
+
*[http://www.youtube.com/watch?v=Lhwi3z2DyzQ&feature=related Creating and Applying Patches to CDT git repo] [http://www.youtube.com/watch?v=I5uq6dWdi0w&feature=related]
+
*[http://www.youtube.com/watch?v=I5uq6dWdi0w&feature=related CDT Pushing Changes to Master]
+
  
== Eclipse SDK  ==
+
If you wish to switch target platforms in the future, you can open a different .target file, or you can go to "Window -> Preferences -> Plug-in Development -> Target Platform".
 
+
The very first thing you'll need to do to work on the CDT sources is install an Eclipse SDK (officially known as the ''Eclipse Project''). The SDK contains the Eclipse platform plus other features that developers typically need to develop plug-ins, e.g., JDT and PDE. Which version of the SDK you need depends on which version of CDT you're building. To build the master branch of CDT today (June 25, 2011), you need Eclipse 3.7. To build an earlier version of CDT, you'll probably want to use an earlier version of Eclipse SDK. Visit the [http://www.eclipse.org/cdt/downloads.php CDT downloads page] to see which version of Eclipse/SDK matches a particular CDT version.
+
 
+
One thing to keep in mind is that as development enters the new year, the CDT team typically starts making use of new API in the platform. The platform releases new API first via milestone releases. If someone in the CDT development team commits code to the master branch that uses that new API, all CDT developers (working on the master branch) are required to use the latest Eclipse SDK milestone from that point on. Typically such decisions/changes are discussed on the CDT dev list, so check there when in doubt. Alternatively, just use the latest platform milestone for building the master branch of CDT.<br>
+
  
 
== Launching  ==
 
== Launching  ==
Line 36: Line 74:
 
After all the CDT projects have successfully built, you'll probably want to run and/or do source-level debugging of the CDT code. Open the PDE (Plug-in Development Environment) perspective:&nbsp; Window-&gt;Perspective-&gt;Other-&gt;"Plug in Development". There, you'll see a project with the name org.eclipse.cdt.ui, right click the org.eclipse.cdt.ui project, select "Run As"-&gt;"eclipse application". You should see a new instance of eclipse - with the latest version of eclipse CDT plugins.  
 
After all the CDT projects have successfully built, you'll probably want to run and/or do source-level debugging of the CDT code. Open the PDE (Plug-in Development Environment) perspective:&nbsp; Window-&gt;Perspective-&gt;Other-&gt;"Plug in Development". There, you'll see a project with the name org.eclipse.cdt.ui, right click the org.eclipse.cdt.ui project, select "Run As"-&gt;"eclipse application". You should see a new instance of eclipse - with the latest version of eclipse CDT plugins.  
  
Alternatively, you can create a Launcher: Go to Run - Debug Configurations... Select "Eclipse Application" and click New. Give the Debug Configuration a Name and the other defaults are OK. This appears to be a more widely used launching technique. You may also want to go to the Arguments tab and add "-console" to the list of Program arguments. This will open an OSGi console and allow you to (temporarily) insert system.out.println statements in the CDT code to sanity check your plug-in development procedure. Regardless of whether you're launching an Eclipse Application using Debug As... or Run As..., or "deploying" your modified plugin(s) by Exporting them into a target Eclipse installation, you should see your debug println statements. Until you are familiar with the CDT code base, however, using a Debug Launcher and experimenting with breakpoints is probably the best way to get a warm fuzzy feeling if you have doubts about modifications you are making.<br>
+
Alternatively, you can create a Launcher: Go to Run - Debug Configurations... Select "Eclipse Application" and click New. Give the Debug Configuration a Name and the other defaults are OK. This appears to be a more widely used launching technique.
  
Note: On Mac OS X, you might need an additional argument in the launch configuration, see [http://www.eclipse.org/swt/faq.php#cocoa32launch SWT FAQ]
+
Until you are familiar with the CDT code base, using a Debug Launcher and experimenting with breakpoints is probably the best way to get a warm fuzzy feeling if you have doubts about modifications you are making.<br>
  
== Submitting and Applying Patches ==
+
== Submitting and Applying Patches ==
  
 +
If you wish to contribute your changes to CDT see these [[CDT/contributing|instructions]].
  
If you wish to contribute your changes to CDT see these [[CDT/contributing|instructions]].
+
== Creating a runtime patch ==
  
In order to apply a patch, right click the relevant project, and select Team-&gt;Apply Patch...  
+
If you want just patch up your local installation you can export plugin(s) to which source patch is applied using Export-&gt;Plugins, export as archive and use your eclipse installation as destination. Make sure after this you have 2 version of the same plugin (one from installation and one new) in the plugins directory and version qualifier of your new plugin is higher.
  
Keep in mind that each patch is a list of "before" and "after" text changes to files. These are highly version-specific. If you are trying to apply an old patch to newer code, or vice versa, you will encounter problems in the Apply Patch Wizard. <br>
+
== Building the CDT p2 repository ==
  
In case you've applied a patch, and you wish to revert back to the latest HEAD branch - right click the project, then "Replace With-&gt;Latest From HEAD", answer Yes to the warning message, and the patch is gone.  
+
You can generate your own CDT zip using Maven.
  
== Creating a runtime patch ==
+
* Install Maven if not already installed (mvn command). Maven 3.0.5 or greater is required.
 +
* In command line, change the directory to the cdt git directory (the top folder that contains a pom.xml file)
 +
* Run "mvn package". This will take a lot longer the first time because it needs to download a lot of things. If it seems stuck on a download and you're behind a proxy, make sure that you set your [http://maven.apache.org/settings.html#Proxies Maven proxy settings].
 +
* If the build is succesfull, the zip will be in org.eclipse.cdt/releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip
 +
* Go to Install new software, click Add, Archive and browse for to the zip
  
 +
You should now be able to install or update CDT using your modified code.
  
Building a working cdt distribution is very difficult, but if you want just patch up your local installation you can export plugin(s) to which source patch is applied using Export-&gt;Plugins, export as archive and use your eclipse installation as destination. Make sure after this you have 2 version of the same plugin (one from installation and one new) in the plugins directory and version qualifier of your new plugin is higher.
+
[[Category:CDT]]

Revision as of 10:25, 26 September 2014

Eclipse SDK

The very first thing you'll need to do to work on the CDT sources is install an Eclipse SDK (officially known as the Eclipse Project). The SDK contains the Eclipse platform plus other features that developers typically need to develop plug-ins, e.g., JDT and PDE. Which version of the SDK you need depends on which version of CDT you're building. To build the master branch of CDT today (September 26, 2014), you need Eclipse 4.4 or above. To build an earlier version of CDT, you might need to use an earlier version of Eclipse SDK. Visit the CDT downloads page to see which version of Eclipse/SDK matches a particular CDT version.

Eclipse Setup

Setting up the Sources

For detailed information on how to setup git, and check out source of CDT as a committer, see CDT/git. Otherwise, follow the non-committer setup instructions below.

Clone the Repo

From the Git perspective, select Clone a Git Repository action

  • Cut & Paste following url in the first page of wizard for cloning: git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
  • It will ask you what branches to import. If you only care about head select master, if you want to work with other branches select a corresponding branch, for example cdt_8_4.
  • Press Next. As location where files are stored select a folder inside your workspaces, for example workspace/cdt-git
  • Press Finish (skip Gerrit page)
  • This should take about 3-5 minutes

From the repo, select Import Projects...

  • Select all the projects or individual. Project filter does not seems to work. It maybe easier select all, then close projects you don't need

Here's a list of projects you could start with:

  • org.eclipse.cdt.codan.checkers
  • org.eclipse.cdt.codan.checkers.ui
  • org.eclipse.cdt.codan.core
  • org.eclipse.cdt.codan.core.cxx
  • org.eclipse.cdt.codan.ui
  • org.eclipse.cdt.codan.ui.cfgview
  • org.eclipse.cdt.codan.ui.cxx
  • org.eclipse.cdt.core
  • org.eclipse.cdt.core.native
  • org.eclipse.cdt.core.linux (Platform specific, change accordingly)
  • org.eclipse.cdt.core.linux.x86_64 (Platform specific, change accordingly)
  • org.eclipse.cdt.core.win32 (Platform specific, change accordingly)
  • org.eclipse.cdt.core.win32.x86 (Platform specific, change accordingly)
  • org.eclipse.cdt.core.win32.x86_64 (Platform specific, change accordingly)
  • org.eclipse.cdt.debug.core
  • org.eclipse.cdt.debug.mi.core
  • org.eclipse.cdt.debug.mi.ui
  • org.eclipse.cdt.debug.ui
  • org.eclipse.cdt.dsf
  • org.eclipse.cdt.dsf.gdb
  • org.eclipse.cdt.dsf.gdb.ui
  • org.eclipse.cdt.dsf.ui
  • org.eclipse.cdt.gdb
  • org.eclipse.cdt.gdb.ui
  • org.eclipse.cdt.launch
  • org.eclipse.cdt.make.core
  • org.eclipse.cdt.make.ui
  • org.eclipse.cdt.managedbuilder.core
  • org.eclipse.cdt.managedbuilder.gnu.ui
  • org.eclipse.cdt.managedbuilder.ui
  • org.eclipse.cdt.ui

If you want to run tests, add the corresponding test project, for example, org.eclipse.cdt.core.tests.

Dependencies

The easiest way to satisfy all dependencies for CDT is to set a target platform. The target platform will download all the dependencies so that you can compile and run your imported CDT plug-ins without having to install the dependencies in your Eclipse installation.

To set the target platform:

  • Expand the "org.eclipse.cdt.target" project.
  • Double-click on cdt-e4.4.target (or the .target file that corresponds to the Eclipse version you want to target).
  • In the editor that just opened, click Set as Target Platform on the top right.

Eclipse will now download the required dependencies, which may take some time the first time. Once this is done, it should trigger a full build of your workspace and a lot of errors should go away.

If you wish to switch target platforms in the future, you can open a different .target file, or you can go to "Window -> Preferences -> Plug-in Development -> Target Platform".

Launching

After all the CDT projects have successfully built, you'll probably want to run and/or do source-level debugging of the CDT code. Open the PDE (Plug-in Development Environment) perspective:  Window->Perspective->Other->"Plug in Development". There, you'll see a project with the name org.eclipse.cdt.ui, right click the org.eclipse.cdt.ui project, select "Run As"->"eclipse application". You should see a new instance of eclipse - with the latest version of eclipse CDT plugins.

Alternatively, you can create a Launcher: Go to Run - Debug Configurations... Select "Eclipse Application" and click New. Give the Debug Configuration a Name and the other defaults are OK. This appears to be a more widely used launching technique.

Until you are familiar with the CDT code base, using a Debug Launcher and experimenting with breakpoints is probably the best way to get a warm fuzzy feeling if you have doubts about modifications you are making.

Submitting and Applying Patches

If you wish to contribute your changes to CDT see these instructions.

Creating a runtime patch

If you want just patch up your local installation you can export plugin(s) to which source patch is applied using Export->Plugins, export as archive and use your eclipse installation as destination. Make sure after this you have 2 version of the same plugin (one from installation and one new) in the plugins directory and version qualifier of your new plugin is higher.

Building the CDT p2 repository

You can generate your own CDT zip using Maven.

  • Install Maven if not already installed (mvn command). Maven 3.0.5 or greater is required.
  • In command line, change the directory to the cdt git directory (the top folder that contains a pom.xml file)
  • Run "mvn package". This will take a lot longer the first time because it needs to download a lot of things. If it seems stuck on a download and you're behind a proxy, make sure that you set your Maven proxy settings.
  • If the build is succesfull, the zip will be in org.eclipse.cdt/releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip
  • Go to Install new software, click Add, Archive and browse for to the zip

You should now be able to install or update CDT using your modified code.

Back to the top