Skip to content

Latest commit

 

History

History
184 lines (160 loc) · 6.75 KB

BUILD.md

File metadata and controls

184 lines (160 loc) · 6.75 KB

Building Jaunch from source

Prerequisites

  • Linux:

    • Ensure you have gcc, make, and git. E.g. for Debian/Ubuntu:
      sudo apt install build-essential git
  • macOS:

  • Windows:

    • Install Scoop.
    • Then in a PowerShell, install Git and MinGW:
      scoop install git mingw

Building

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:

  1. Build the native C code, generating a binary named build/launcher (build\launcher.exe on Windows).

  2. Build the Kotlin Native code, generating a binary named jaunch (jaunch.exe on Windows).

  3. 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.

Running

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.

Next steps

  • 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.