Skip to content

Commit

Permalink
improving devel doc
Browse files Browse the repository at this point in the history
  • Loading branch information
redrezo committed Aug 5, 2020
1 parent ae610a4 commit f0f932e
Showing 1 changed file with 34 additions and 12 deletions.
46 changes: 34 additions & 12 deletions Development.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,45 @@

## Build system

The project uses gradle.
The gradle wrapper is included in the source code so just a java vm is required. However since it is a Java 8 + Java 11 multi release build both versions are needed.

The project uses gradle to build the native and the java code.

## General Requirements
### Environment

#### Java
You need Java 8 with fx and Java 11 without fx.
You can for example use the zulu packages:
* jdk8fx: https://www.azul.com/downloads/zulu-community/?version=java-8-lts&architecture=x86-64-bit&package=jdk-fx
* jdk11: https://www.azul.com/downloads/zulu-community/?version=java-11-lts&architecture=x86-64-bit&package=jdk

The following environment variables need to be set:
* `JAVA_HOME_8` needs to point to a jdk8fx
* `JAVA_HOME_11` needs to point to a jdk11
* `JAVA_HOME` needs to point to the jdk11 for gradle to work

## My setup
#### native code toolchains

## Native
### Project structure
The java code is split in 3 projects. This is needed since IDEs like eclipse only support one jdk per project.

* visual studio
* `org.eclipse.fx.drift` the base project with most of the code
* `org.eclipse.fx.drift.java8` the java8 only overlay
* `org.eclipse.fx.drift.java11` the java11 only overlay

## Java
`./gradle buildMultireleaseJar` assembles the jar from those 3 projects.

* `org.eclipse.fx.drift.native` contains the native code of driftfx
* `native-driftcpp` contains the cpp binding

### IDEs

Gradle can generate the project files for many IDEs.

examples:
```
./gradlew eclipse
./gradlew :org.eclipse.fx.drift.native:visualStudio
./gradlew :org.eclipse.fx.drift.native:xcode
```

* Java 8 JDK + JavaFX
* Java 11 JDK (without JavaFX)

I use the zulu fx packages (https://www.azul.com/downloads/zulu-community/?architecture=x86-64-bit&package=jdk-fx)

0 comments on commit f0f932e

Please sign in to comment.