Skip to content

Latest commit

 

History

History
executable file
·
42 lines (27 loc) · 3.33 KB

building.md

File metadata and controls

executable file
·
42 lines (27 loc) · 3.33 KB

Building Radiance

Radiance libraries are built with Gradle. Each library has its own build.gradle file, and the top-level build.gradle has tasks to build, package and deploy Radiance artifacts.

Java requirements

Radiance is built with Java 11. Search for "Java 11 download" in your favorite search engine, or browse this page (and perhaps the archives that it points to) to get the JDK distribution for your environment.

Local artifacts

Radiance artifacts are split into three groups - core, demo and tools. Core artifacts are binaries that provide application-facing functionality of Common, Animation, Theming, Components etc. Demo artifacts are binaries that provide the bundled test / demo applications for local testing of the various core Radiance libraries. Tools artifacts are binaries for general maintenance of various Radiance libraries.

To build library artifacts, run ./gradlew in your terminal. After this command completes, the packaged jar files will be under the matching library folders. To copy all the jars under one location, run ./gradlew copyJars command. For version X.Y of Radiance (see version in build.gradle), the artifacts will be copied under:

  • drop/X.Y/core for core artifacts
  • drop/X.Y/demo for demo artifacts
  • drop/X.Y/tools for tools artifacts

Local third-party dependencies

Some Radiance libraries have third-party dependencies. To print the full dependency tree, run ./gradlew printRuntimeDependencies. Here is a snippet that shows the dependencies for SVG Transcoder:

-------------- svg-transcoder ---------------
org.apache.xmlgraphics:batik-all:1.17
org.pushing-pixels:common:7.5.0

To locally copy these dependencies (in case you do not want to pull them at build time with Gradle, Maven or other similar build tools in your own environment), use the following:

  • ./gradlew getCoreDependencies to copy third-party dependencies for core artifacts into build/libs-core
  • ./gradlew getDemoDependencies to copy third-party dependencies for demo artifacts into build/libs-demo
  • ./gradlew getToolsDependencies to copy third-party dependencies for tools artifacts into build/libs-tools
  • ./gradlew getAllDependencies to copy third-party dependencies for all artifacts into the folders above

For a more detailed tree of dependencies, run ./gradlew tools:svg-transcoder:dependencies - substituting the relevant module name.

Third-party dependencies of core Radiance libraries are kept to a minimum:

  • Common, Animation, Theming and Component are self-contained within Radiance.
  • Kotlin libraries (Swing-ktx, Animation-ktx, Theming-ktx, Component-ktx) require Kotlin standard library and coroutines library.

Radiance demos and tools rely on a number of third-party libraries, mainly FormLayout from JGoodies, and Retrofit2 from Square, as well as Apache Batik for SVG Transcoder. Those dependencies can be seen in the relevant build.gradle files.