Manual build process - sblantipodi/firefly_luciferin GitHub Wiki
This guide is meant for developers who wants to customize or build Firefly Luciferin from sources.
Firefly Luciferin uses Java 14
Package API to create the Windows/Linux installer.
If you are running Windows 8 or Windows 10 you can use Desktop Duplication API (DDUPL), it's the fastest implementation yet, no lag, no stutter, very small usage of resources. DDUPL is accessed via JNA using the GStreamer bindings for Java.
GStreamer
is bundled with the installer thanks for the maven-compiler-plugin.
If you want to use your custom GStreamer SDK you need:
- GStreamer core
- GStreamer system plugins
- GStreamer system plugins for capturing
Wix Toolset binaries is in /build_tools/wixtools
folder, add it to the path if you want to create the binaries under Windows using jpackage.
Build Firefly Luciferin from source
- Simply git clone the project.
- mvn clean
- mvn package
Maven will create a FireflyLuciferin-jar-with-dependencies.jar
that will be bundled with the installer.
Generated jar is executable.
Create Firefly Luciferin binary installer for Windows/Linux
To create the binary installer, simply run:
For Windows
jpackage -i ./target --type exe --main-class org.dpsoftware.JavaFXStarter --main-jar FireflyLuciferin-jar-with-dependencies.jar --icon ./data/img/luciferin_logo.ico --win-menu --win-menu-group Ambilight --copyright "Davide Perini" --name "Firefly Luciferin" --vendor DPsoftware --win-dir-chooser --win-shortcut --win-per-user-install --win-shortcut --win-shortcut-prompt --java-options "-XX:+UseZGC -Xms64m -Xmx1024m"
For Linux
jpackage -i target --main-class org.dpsoftware.JavaFXStarter --main-jar FireflyLuciferin-jar-with-dependencies.jar --icon data/img/luciferin_logo.png --linux-shortcut --copyright "Davide Perini" --name FireflyLuciferin --vendor DPsoftware --app-version "${{steps.get-id.outputs.id}}" --java-options "-XX:+UseZGC -Xms64m -Xmx1024m"
Firefly Luciferin has a continuos integration pipeline that creates the Windows Linux installer on every Git Tag.
Another pipeline build the Glow Worm Luciferin firmware here.
Building Glow Worm Luciferin firmware
Glow Worm Luciferin firmware can be built with the PlatformIO platform.
pio pkg outdated
platformio run