From f0f932ed0cc6af3b1166e512f9071601364d90eb Mon Sep 17 00:00:00 2001 From: Christoph Caks Date: Wed, 5 Aug 2020 13:24:12 +0200 Subject: [PATCH] improving devel doc --- Development.md | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/Development.md b/Development.md index 4d3d5ca..0657f21 100644 --- a/Development.md +++ b/Development.md @@ -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)