-
Linux:
- Ensure you have
gcc
,make
, andgit
. E.g. for Debian/Ubuntu:sudo apt install build-essential git
- Ensure you have
-
macOS:
-
Windows:
- Install Scoop.
- Then in a PowerShell, install Git and MinGW:
scoop install git mingw
In a terminal window (on Windows, use PowerShell or Git Bash, not Command Prompt), navigate to the Jaunch codebase, downloading it from the remote repository if needed:
git clone https://github.com/apposed/jaunch
cd jaunch
Then build it:
make dist
The build process will:
-
Build the native C code, generating a binary named
build/launcher
(build\launcher.exe
on Windows). -
Build the Kotlin Native code, generating a binary named
jaunch
(jaunch.exe
on Windows). -
Copy the needed files to the
dist
directory, including:- The two native binaries (1) and (2);
- The default TOML configuration files.
- The
Props.class
helper program.
Which cross-compilations are performed?
The Jaunch build system makes a best effort to build for all OS+arch targets, but only certain cross-compilations are possible:
Target | Host platform | |||||
---|---|---|---|---|---|---|
Linux arm64 | Linux x64 | macOS | Windows arm64 | Windows x64 | ||
launcher-linux-arm64 | ❔1 | ✅2 | ➖ | ➖ | ➖ | |
launcher-linux-x64 | ❔1 | ✅ | ➖ | ➖ | ➖ | |
launcher-macos-arm64 | ➖3 | ➖3 | ✅ | ➖3 | ➖3 | |
launcher-macos-x64 | ||||||
launcher-windows-arm64 | ❔1 | ✅4 | ➖ | ❔1 | ➖ | |
launcher-windows-x64 | ❔1 | ✅4 | ➖ | ➖ | ✅ | |
jaunch-linux-arm64 | ➖5 | ✅ | ➖ | ➖6 | ➖ | |
jaunch-linux-x64 | ➖5 | ✅ | ➖ | ➖6 | ➖ | |
jaunch-macos-arm64 | ➖3,5 | ➖3 | ✅ | ➖3,6 | ➖3 | |
jaunch-macos-x64 | ||||||
jaunch-windows-arm64 | ➖5,7 | ➖7 | ➖7 | ➖6,7 | ➖7 | |
jaunch-windows-x64 | ➖5 | ➖ | ➖ | ➖6 | ✅ |
1 Untested; build system almost certainly needs adjustment.
2 Requires aarch64-linux-gnu-gcc.
3 Only macOS tooling can target macOS.
4 Using llvm-mingw.
5 No Kotlin Native support for linux-arm64 host (KT-36871).
6 No Kotlin Native support for windows-arm64 host (KT-48420).
7 No Kotlin Native support for windows-arm64 target (KT-68504).
To cover all platforms, the Jaunch CI runs make dist
on linux-x64, macos-x64, and windows-x64 host nodes, then aggregates all results into one unified dist
folder. This covers all targets except jaunch-windows-arm64
, which is not currently possible to build due to lack of support in Kotlin Native.
Run the appropriate launcher
binary or script in the dist
folder.
If it doesn't work, run again with the --debug
flag,
which will show what's happening under the hood.
-
To play with Jaunch's demo applications, see EXAMPLES.md.
-
To use Jaunch as a launcher for your application, see SETUP.md.
-
To learn about the various operating-system-specific considerations, see LINUX.md, MACOS.md, and WINDOWS.md.