Skip to content

Commit

Permalink
Enhance native build documentation and adjust CONTRIBUTING section
Browse files Browse the repository at this point in the history
  • Loading branch information
HannesWell committed Jun 12, 2024
1 parent 6d3d80f commit 6274bd7
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 12 deletions.
13 changes: 8 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,17 @@ and other infrastructure for running OSGi-based systems.
Information regarding source code management, builds, coding standards, and
more.

* https://projects.eclipse.org/projects/eclipse.equinox/developer

The project maintains the following source code repositories

* https://github.com/eclipse-equinox/equinox.binaries
* https://github.com/eclipse-equinox/equinox
* https://github.com/eclipse-equinox/equinox.binaries
* https://github.com/eclipse-equinox/p2

This project uses GitHub to track ongoing development and issues.

* Search for issues: https://github.com/eclipse-equinox/equinox.binaries/issues
* Search for issues: https://github.com/eclipse-equinox/equinox/issues
* Search for historical issues: https://eclipse.org/bugs/buglist.cgi?product=Equinox
* Create a new report: https://github.com/eclipse-equinox/equinox.binaries/issues/new
* Create a new report: https://github.com/eclipse-equinox/equinox/issues/new

Be sure to search for existing bugs before you create another one. Remember that
contributions are always welcome!
Expand All @@ -39,6 +37,11 @@ and run:

`mvn clean verify -Pbuild-individual-bundles -Pbree-libs -Ptck`

### Building the native executable and launcher library binaries

The source code to build the platform specific executables and launcher libraries for Equinox is located in [org.eclipse.equinox.executable.feature](features/org.eclipse.equinox.executable.feature).
For details see its [README.md](features/org.eclipse.equinox.executable.feature/README.md).

## Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must
Expand Down
7 changes: 3 additions & 4 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ SPDX-License-Identifier: EPL-2.0

The project maintains the following source code repositories:

* http://git.eclipse.org/c/equinox/rt.equinox.binaries.git
* http://git.eclipse.org/c/equinox/rt.equinox.bundles.git
* http://git.eclipse.org/c/equinox/rt.equinox.framework.git
* http://git.eclipse.org/c/equinox/rt.equinox.p2.git
* https://github.com/eclipse-equinox/equinox.git
* https://github.com/eclipse-equinox/equinox.binaries.git
* https://github.com/eclipse-equinox/p2.git
34 changes: 31 additions & 3 deletions features/org.eclipse.equinox.executable.feature/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,31 @@
This feature contains the eclipse executables and includes the equinox launcher bundle and its fragments.
It also host the native C source files to build the executable and launcher binaries for all supported platforms.
It also hosts the native C source files to build the launcher executable and launcher library binaries for all supported platforms.

## Building the native executable and launcher binaries
The _Equinox launcher executable_ is the executable binary file that can be used launch an Equinox based applications like Eclipse and is for example named `eclipse.exe` (on Windows) or `eclipse` (on Linux and Mac).
The _launcher library_ is the native dynamic/shared library (eclipse.dll, eclipse.so, ...) that contains the compiled native code called from the `JNIBridge` in [`org.eclipse.equinox.launcher`](../../bundles/org.eclipse.equinox.launcher).

To just build the native binaries navigate to the `library/<window-system>` sub-directory of interest and run
# Building the native executable and launcher binaries

## Required software

The software listed below is required to build the Equinox native binaries on the current platform targeting the same OS and processor arch.

- common
- a JDK 1.8 or later (more recent versions are usually not a problem)
- Windows:
- Microsoft Visual C Compiler 2019 or later (earlier version maybe also work), the 'Visual Studio Community Edition' is sufficient.
- Linux:
- GTK development files. The Package `libgtk-3-dev` is sufficient.
- MacOS:
- XCode Command Line Tools (already present in XCode)

## Running the build

The simplest way to build and install the native binaries for the running platform is to launch the Maven launch-configuration
named `Build-Equinox-native-binaries-for-running-platform` from this project (requires Eclipse M2E being installed).
It assumes the [`equinox.binaries`](https://github.com/eclipse-equinox/equinox.binaries.git) repository is checked out located next to this repository and is named `equinox.binaries`.

To just build the native binaries for a specific platform navigate to the `library/<window-system>` sub-directory of interest and run
- `./build.sh` for Linux or MacOS
- `.\build.bat` for Windows.

Expand All @@ -18,3 +40,9 @@ The `install` target additionally moves the just built binaries into the `equino
The environment variable `BINARIES_DIR` can be set to specify an alternative path of the `equinox.binaries` repository to which the built binaries are moved.
To specify the exact directory where the native executable or launcher library is moved, set the variable `EXE_OUTPUT_DIR` respectively `LIB_OUTPUT_DIR`.
For more options and details see the `build.sh/bat` files and corresponding make-files.

### Cross compilation

On some platforms cross-compilation for other CPU architecutres is possible by invoking the `build.sh/bat` scripts with an explicit `-arch <target-arch>` argument.
Of course the required tools for the targeted architecture have to be available.
For example on a Windows computer with x86_64 CPU, one can call `build.bat -arch aarch64 -java <path-to-arm-jdk>` to build the executable and launcher-library for Windows on ARM.

0 comments on commit 6274bd7

Please sign in to comment.