spiegel-keyman/docs/build/linux-ubuntu.md
Steven R. Loomis 4816e590cf feat(linux): Dockerfile for linux builder
- add Dockerfile in linux/Dockerfile, referencing linux/debian/control
- add docs in docs/build/linux-ubuntu.md

Fixes: #7102
2022-08-26 17:08:56 -05:00

2.2 KiB

Setup your Keyman build environment on Ubuntu

Target Projects

On Linux, you can build the following projects:

  • Keyman for Android
  • Keyman Core (wasm targets)
  • Common/Web
  • KeymanWeb

The following projects cannot be built on Linux:

  • Keyman for Windows
  • Keyman Developer
  • Keyman for macOS
  • Keyman for iOS

System Requirements

  • Minimum Ubuntu version: Ubuntu 18.04

Other Linux distributions will also work if appropriate dependencies are installed.

Repository Paths

Recommended filesystem layout:

$HOME/keyman/
  keyman/              this repository (https://github.com/keymanapp/keyman)
  keyboards/           https://github.com/keymanapp/keyboards
  sites/
    keyman.com/        https://github.com/keymanapp/keyman.com
    ...

Prerequisites

The current list of dependencies can be found in the Build-Depends section of linux/debian/control. They are most easily installed with the mk-build-deps tool:

sudo apt update
sudo apt install devscripts equivs
sudo mk-build-deps --install linux/debian/control

Keyman for Linux

All dependencies are already installed if you followed the instructions under Prerequisites.

Building:

Keyman Core

All dependencies are already installed if you followed the instructions under Prerequisites.

Building:

Docker Builder

The Docker builder allows you to perform a linux build from anywhere Docker is supported. To build the docker image:

cd ../../linux
docker pull ubuntu:latest
docker build . -t keymanapp/keyman-linux-builder:latest

Once the image is built, it may be used to build parts of Keyman.

cd ../core
# keep linux build artifacts separate
mkdir -p build/linux
docker run -it --rm -v $(pwd)/..:/home/build -v $(pwd)/build/linux:/home/build/core/build keyman-linux-builder:latest bash -c 'cd core; bash build.sh -d'