Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jgneff/jfxbuild
Building JavaFX
https://github.com/jgneff/jfxbuild
javafx openjfx
Last synced: 21 days ago
JSON representation
Building JavaFX
- Host: GitHub
- URL: https://github.com/jgneff/jfxbuild
- Owner: jgneff
- License: gpl-3.0
- Created: 2022-05-07T16:40:18.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-15T15:41:29.000Z (over 1 year ago)
- Last Synced: 2024-11-19T21:33:07.979Z (3 months ago)
- Topics: javafx, openjfx
- Language: Shell
- Homepage:
- Size: 20.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
This repository contains my build environment and shell scripts for building JavaFX on Linux, macOS, and Windows. The files common to all systems are found in the root `bin` directory, while those that are platform-dependent are found in the `linux/bin`, `macos/bin`, and `win10/bin` directories.
I use these files to test pull request [openjdk/jfx#446](https://github.com/openjdk/jfx/pull/446), "8264449: Enable reproducible builds with SOURCE_DATE_EPOCH."
### Building
I set the environment variables with the "dot" command (`.`) and then run the build scripts as follows:
```console
$ . ~/bin/jfxbuild.env
$ ~/bin/develop.sh
$ ~/bin/actions.sh
$ ~/bin/release.sh
$ ~/bin/noepoch.sh
```where:
* **jfxbuild.env** defines the `SOURCE_DATE_EPOCH`, `JDK_HOME`, and `PATH` environment variables for the local copy of CMake, OpenJDK, and Apache Ant.
* **develop.sh** creates two developer builds with targets "`sdk jmods javadoc`" and runs the unit tests.
* **actions.sh** creates two GitHub Actions builds with target "`all`" and runs the unit tests.
* **release.sh** creates two production builds with targets "`sdk jmods javadoc`" and runs the unit tests.
* **noepoch.sh** creates a production build without `SOURCE_DATE_EPOCH` and runs the unit tests.
### Testing
After running the scripts, I test whether the build is reproducible by comparing the pair of builds created by each of the first three scripts:
```console
$ diff -r build1 build2
$ diff -r build3 build4
$ diff -r build5 build6
```The `noepoch.sh` script tests whether the production build still works after removing `SOURCE_DATE_EPOCH` from the environment.