diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4900343137..b03b29660f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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! @@ -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 diff --git a/NOTICE b/NOTICE index 84c2376732..830026454f 100644 --- a/NOTICE +++ b/NOTICE @@ -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 \ No newline at end of file +* https://github.com/eclipse-equinox/equinox.git +* https://github.com/eclipse-equinox/equinox.binaries.git +* https://github.com/eclipse-equinox/p2.git diff --git a/features/org.eclipse.equinox.executable.feature/README.md b/features/org.eclipse.equinox.executable.feature/README.md index e450974cda..8844a8d42e 100644 --- a/features/org.eclipse.equinox.executable.feature/README.md +++ b/features/org.eclipse.equinox.executable.feature/README.md @@ -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/` 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/` sub-directory of interest and run - `./build.sh` for Linux or MacOS - `.\build.bat` for Windows. @@ -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 ` 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 ` to build the executable and launcher-library for Windows on ARM.