isle/docs/dev/building.md

1.5 KiB

Building Isle

Building from source requires nix.

(NOTE The first time you run some of these builds a lot of things will be built from scratch. If you have not otherwise configured it, nix might be using a tmpfs as its build directory, and the capacity of this tmpfs will probably be exceeded by this build. You can change your build directory to somewhere on-disk by setting the TMPDIR environment variable for nix-daemon (see this github issue.))

Current System

You can build an AppImage for your current system by running the following from the project's root:

nix-build -A build.appImage

The resulting binary can be found under result/bin.

Cross-Compile

An AppImage can be cross-compiled by passing the hostSystem argument:

nix-build --argstr hostSystem "x86_64-linux" -A build.appImage

Supported system strings are enumerated in nix/pkgs.nix.

Alternative Build Targets

Besides AppImage, Isle supports building alternative package types which are targetted at different specific operating systems. Each of these has its own build.* target.

  • AppImage (all OSs): nix-build -A build.appImage
  • Arch Linux package: nix-build -A build.archPkg

All targets theoretically support passing in a hostSystem argument to cross-compile to a different architecture or OS, but some targets may not make sense with some hostSystem values.