1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-03-28 14:56:28 +01:00

Bug 551817 - Add missing CONTRIBUTING file to CDT

This also includes the minimum legal requirements for basic build
instructions (or links to them)

Change-Id: Ib95bf44a2ada75069e0a190aaf3d68fccc6f1282
This commit is contained in:
Jonah Graham 2020-01-16 12:32:21 -05:00
parent 0c5b5771b9
commit 84b9be2dcb
3 changed files with 175 additions and 0 deletions

72
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,72 @@
# Contributing to Eclipse C/C++ Development Tools
Thanks for your interest in this project.
## Project description
The Eclipse CDT Project provides a fully functional C and C++ Integrated
Development Environment based on the Eclipse platform. Features include: support
for project creation and managed build for various toolchains, standard make
build, source navigation, various source knowledge tools, such as type
hierarchy, call graph, include browser, macro definition browser, code editor
with syntax highlighting, folding and hyperlink navigation, source code
refactoring and code generation, visual debugging tools, including memory,
registers, and disassembly viewers.
* https://projects.eclipse.org/projects/tools.cdt
## Developer resources
### Building CDT
The recommended flow for most users is to follow instructions on [getting started with CDT development](https://wiki.eclipse.org/Getting_started_with_CDT_development).
For information on building CDT from the command line using maven, refer to the [README](README.md)'s Command-line Build instructions with Maven section.
Additional information is available on:
* https://github.com/eclipse-cdt/cdt-infra/wiki
* https://projects.eclipse.org/projects/tools.cdt/developer
The project maintains the following source code repositories
* https://git.eclipse.org/r/plugins/gitiles/cdt/org.eclipse.cdt
* https://git.eclipse.org/r/plugins/gitiles/cdt/org.eclipse.cdt.edc
* http://git.eclipse.org/c/cdt/org.eclipse.cdt.master.git
* https://git.eclipse.org/r/plugins/gitiles/cdt/org.eclipse.launchbar
* https://git.eclipse.org/r/plugins/gitiles/cdt/org.eclipse.tools.templates
* https://github.com/eclipse-cdt/cdt-gdb-adapter
* https://github.com/eclipse-cdt/cdt-gdb-vscode
* https://github.com/eclipse-cdt/cdt-vscode
* https://github.com/eclipse-cdt/cdt-infra
This project uses Bugzilla to track ongoing development and issues.
* Search for issues: https://bugs.eclipse.org/bugs/buglist.cgi?product=CDT
* Create a new report: https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT
Be sure to search for existing bugs before you create another one. Remember that
contributions are always welcome!
## Eclipse Contributor Agreement
Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).
* http://www.eclipse.org/legal/ECA.php
Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.
For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit
## Contact
Contact the project developers via the project's "dev" list.
* https://dev.eclipse.org/mailman/listinfo/cdt-dev

93
README.md Normal file
View file

@ -0,0 +1,93 @@
# Eclipse CDT
## Contributing
Please see [CONTRIBUTING.md] for contributing information
## Developing CDT
Most developers, developing CDT in the Eclipse IDE, should use https://wiki.eclipse.org/Getting_started_with_CDT_development.
## Command-line Build instructions with Maven
Eclipse CDT uses the standard Maven and Tycho workflow for building CDT using Maven 3.6.0 and Java 8. Therefore to package CDT do:
```
mvn package
```
and the resulting p2 repository will be in `releng/org.eclipse.cdt.repo/target/repository`
The current set of options to Maven used for building on the CI can be seen in the Jenkinsfiles
on cdt-infra: https://github.com/eclipse-cdt/cdt-infra/tree/master/jenkins/pipelines/cdt
To build CDT plug-ins you need a standard Maven & Java developement environment. The Dockerfiles used for CDT's images are
published in cdt-infra https://github.com/eclipse-cdt/cdt-infra/tree/master/docker. The requirements for running all tests
successfully and for rebuilding non-Java parts of CDT are much more extensive than standard Maven & Java and include
items such as GCC, GDB, yarn, Node, etc. Refer to the Dockerfiles for the current versions of those dependencies.
### Profiles
There are a number of profiles (-P to mvn) to control the behaviour of the build.
#### cdtRepo, simrelRepo, defaultCdtTarget
Individual p2 repos can be turned on and off to allow building CDT, or parts of CDT against
different target platforms easily.
For example, you can:
- test CDT against a pre-built CDT by using the cdtRepo profile.
- build the standalone rcp debugger against the latest simrel `mvn verify -DuseSimrelRepo -f debug/org.eclipse.cdt.debug.application.product`
#### build-standalone-debugger-rcp
Using the `build-standalone-debugger-rcp` profile will include the standalone debugger, located
in `debug/org.eclipse.cdt.debug.application.product`
#### skip-all-tests, skip-tests-except-cdt-ui, skip-tests-except-dsf-gdb, skip-tests-except-lsp, skip-tests-except-cdt-other
Using any of the above profiles can skip large sets of tests. The CI build uses this to parallelize tests. See https://ci.eclipse.org/cdt/view/Gerrit/
#### baseline-compare-and-replace
`baseline-compare-and-replace` profile controls whether baseline replace and compare
is performed. On a local build you want to avoid baseline replace and compare,
especially if you have different versions of Java than the baseline was built with.
If you have the same version of Java as the build machine you can run baseline comparison and
replace. To do that run with the `baseline-compare-and-replace` profile.
Requires verify phase of maven to run, i.e. will not run with `mvn package` even if profile is specified.
#### production
Runs the production steps of the build. This profile can only be run on the CDT CI machines
as access to Eclipse key signing server is needed to sign the jars.
### Profiles
There are a number of properties (-D to mvn) to control the behaviour of the build. Refer to the
pom.xml for the full list. Many of the properties are not intended to be set at the command
line.
#### skipDoc
Documentation generation for CDT can be time consuming. For local builds this can be skipped
with `-DskipDoc=true`
#### skipTests
Running tests for CDT can be time consuming. For local builds this can be skipped
with `-DskipTests=true`.
#### jgit.dirtyWorkingTree-cdtDefault
Running a build with uncommitted changes will normally cause an error. To run a build with
uncommited changes use `-Djgit.dirtyWorkingTree-cdtDefault=warning`
#### dsf.gdb.tests.gdbPath
For running CDT's DSF-GDB tests, this specifies the path to the location of gdb.
#### cdt.tests.dsf.gdb.versions
For running CDT's DSF-GDB tests, this specifies the executable names of the gdbs to run, comma-separated.

10
pom.xml
View file

@ -1,4 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2011, 2020 Wind River Systems, Inc. and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">