The plugins are categorized as follows:
- org.eclipse.tracecompass.analysis.* | Generic extensions to the base framework
- org.eclipse.tracecompass.btf.* | Best Trace Format (BTF) integration
- org.eclipse.tracecompass.ctf.* | Common Trace Format (CTF) reader library
- org.eclipse.tracecompass.gdbtrace.* | Support for reading and viewing GDB traces
- org.eclipse.tracecompass.lttng2.* | LTTng 2.x integration
- org.eclipse.tracecompass.pcap.* | libpcap integration
- org.eclipse.tracecompass.rcp.* | Code specific to the RCP version
- org.eclipse.tracecompass.statesystem.* | State System library
- org.eclipse.tracecompass.tmf.* | Core framework
-
-See the `plugins.svg` file for a diagram showing the dependencies between the
-different plugins.
+ analysis/ | Generic extensions to the base framework
+ btf/ | Best Trace Format (BTF) integration
+ common/ | Generic utilities that can be used by other plugins
+ ctf/ | Common Trace Format (CTF) reader library
+ doc/ | Documentation and code examples
+ gdbtrace/ | Support for reading and viewing GDB traces
+ lttng/ | LTTng integration
+ pcap/ | libpcap integration
+ rcp/ | Code specific to the RCP version
+ releng/ | Releng-related plugins
+ statesystem/ | State System library
+ tmf/ | Core framework
+
+See the `components.svg` file for a diagram showing the dependencies between the
+different components.
Setting up the development environment
Compiling manually
------------------
-To build the plugins manually using Maven, simply run the following command from
+The Maven project build requires version 3.3 or later. It can be downloaded from
+<http://maven.apache.org> or from the package management system of your distro.
+
+To build the project manually using Maven, simply run the following command from
the top-level directory:
mvn clean install
mvn clean install -Dmaven.test.skip=true
+Stand-alone application (RCP) packages will be placed in
+`rcp/org.eclipse.tracecompass.rcp.product/target/products`.
+
+The p2 update site, used for installation as plugins inside Eclipse, will be
+placed in `releng/org.eclipse.tracecompass.releng-site/target/repository`.
+
+
+Maven profiles and properties
+-----------------------------
+
+The following Maven profiles and properties are defined in
+the build system. You can set them by using `-P[profile name]` and
+`-D[property name]=[value]` in `mvn` commands.
+
+* `-Dtarget-platform=[target]`
+
+ Defines which target to use. This is used to build against various versions of
+ the Eclipse platform. Available ones are in
+ `releng/org.eclipse.tracecompass.target`. The default is usually the latest
+ stable platform. To use the staging target for example, use
+ `-Dtarget-platform=tracecompass-eStaging`.
+
+* `-Pctf-grammar`
+
+ Re-compiles the CTF grammar files. This should be enabled if you modify the
+ `.g` files in the `ctf.parser` plugin.
+
+* `-P -build-rcp`
+
+ Disables the "build-rcp" profile to skip building the RCP archives.
+
+* `-Prun-custom-test-suite`
+
+ Runs a test suite present in `releng/org.eclipse.tracecompass.alltests`. The
+ test suite to run has to be defined by `-DcustomTestSuite=[name]`, for example
+ `-DcustomTestSuite=RunAllPerfTests`.
+
+* `-Pdeploy-rcp`
-The RCP is not built by default, to build it you need to add `-Pbuild-rcp` to
-the `mvn` command:
+ Mainly for use on build servers. Copies the generated RCP archives, as well as
+ the RCP-specific update site, to the paths specified by
+ `-DrcpDestination=/absolute/path/to/destination` and
+ `-DrcpSiteDestination=/absolute/path/to/destination`, respectively.
+ Must be used with `-Pbuild-rcp`!
- mvn clean install -Pbuild-rcp -Dmaven.test.skip=true
+* `-Pdeploy-update-site`
-This will build the RCP for all supported architectures. The resulting archives
-will be placed in `org.eclipse.tracecompass.rcp.product/target/products`.
+ Mainly for use on build servers. Copies the standard update site (for the
+ Eclipse plugin installation) to the destination specified by
+ `-DsiteDestination=/absolute/path/to/destination`.
+* `-Psign-update-site`
-To build a local p2 update site:
+ Mainly for use on build servers. Signs all the generated update sites using
+ the Eclipse signing server.
- mvn clean install -Pdeploy-update-site "-DsiteDestination=/path/to/destination"
+* `-Pdeploy-doc`
-where `/path/to/destination` is the **absolute** path to destination directory
-on your disk.
+ Mainly for use on build servers. Copies the generated HTML documentation to
+ the destination specified by `-DdocDestination=/absolute/path/to/destination`.
+ Some directories may need to already exist at the destination (or Maven will
+ throw related errors).