From a27368df36fc47e67cfe0876ae4d75de066efded Mon Sep 17 00:00:00 2001 From: Cyn <70904206+itscynxx@users.noreply.github.com> Date: Thu, 14 Sep 2023 14:11:59 -0500 Subject: [PATCH] Linux build instructions in `BUILD.md` (#531) Adds Linux build instructions and corresponding Docker file. --- BUILD.md | 10 ++++++++++ Dockerfile | 26 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Dockerfile diff --git a/BUILD.md b/BUILD.md index b44817f2..06dc1fb9 100644 --- a/BUILD.md +++ b/BUILD.md @@ -3,6 +3,7 @@ The following steps will allow you to compile your own NorthstarLauncher executa *This guide assumes you have already installed Northstar as shown in [this page](https://r2northstar.gitbook.io/r2northstar-wiki/installing-northstar/basic-setup)* +## Windows ### Steps 1. **Install Git** from [this link](https://git-scm.com) 2. **Clone** the [R2Northstar/NorthstarLauncher](https://github.com/R2Northstar/NorthstarLauncher) repo with submodules using this command `git clone --recurse-submodules https://github.com/R2Northstar/NorthstarLauncher.git` @@ -39,3 +40,12 @@ Developers who can work a command line may be interested in using [Visual Studio - Run `cmake . -G "Ninja"` to generate build files. - Run `cmake --build .` to build the project. + +## Linux +### Steps +1. Clone the GitHub repo +2. Use `cd` to navigate to the cloned repo's directory +3. Then, run the following commands in order: +* `docker build --rm -t northstar-build-fedora .` +* `docker run --rm -it -e CC=cl -e CXX=cl --mount type=bind,source="$(pwd)",destination=/build northstar-build-fedora cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -G "Ninja"` +* `docker run --rm -it -e CC=cl -e CXX=cl --mount type=bind,source="$(pwd)",destination=/build northstar-build-fedora cmake --build .` diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..261d649f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM registry.fedoraproject.org/fedora-toolbox:38 +RUN dnf update -y && \ + dnf install -y \ + git \ + wine \ + wine-mono \ + python3 \ + msitools \ + python3-simplejson \ + python3-six \ + cmake \ + ninja-build \ + make \ + samba \ + libunwind && \ + dnf clean all && \ + mkdir /opt/msvc/ /build + +RUN git config --global --add safe.directory /build +RUN git clone https://github.com/mstorsjo/msvc-wine && \ + ./msvc-wine/vsdownload.py --accept-license --dest /opt/msvc/ && \ + ./msvc-wine/install.sh /opt/msvc/ && \ + rm -rf ~/.wine ./msvc-wine/ && \ + git config --global --add safe.directory '/build' +ENV PATH="/opt/msvc/bin/x64:${PATH}" +WORKDIR /build/