From 97c0a8c063ca61061d5947785ad45344a171c0ea Mon Sep 17 00:00:00 2001 From: Jonathan Marler Date: Mon, 7 Mar 2022 21:12:55 -0700 Subject: [PATCH] Toolchain: Move nix script from Documentation into Toolchain Moves the nix script to setup the build environment from Documentation into the Toolchain as a callable script. I also modified the script to accept a "pkgs" argument to make it easy to override the nixpkgs version from the command-line when calling the script. --- Documentation/BuildInstructionsOther.md | 41 ++----------------------- Toolchain/serenity.nix | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+), 38 deletions(-) create mode 100644 Toolchain/serenity.nix diff --git a/Documentation/BuildInstructionsOther.md b/Documentation/BuildInstructionsOther.md index 357cf351d0..8cb9ad558a 100644 --- a/Documentation/BuildInstructionsOther.md +++ b/Documentation/BuildInstructionsOther.md @@ -26,46 +26,11 @@ apt-get install curl cmake libmpc-devel gmp-devel e2fsprogs libmpfr-devel ninja- ## NixOS -You can use a `nix-shell` script like the following to set up the correct environment: - -myshell.nix: +You can use the `nix-shell` script [`Toolchain/serenity.nix`](../Toolchain/serenity.nix) to set up the environment: +```console +nix-shell Toolchain/serenity.nix ``` -with import {}; - -stdenv.mkDerivation { - name = "cpp-env"; - nativeBuildInputs = [ - gcc11 - curl - cmake - mpfr - ninja - gmp - libmpc - e2fsprogs - patch - ccache - rsync - unzip - - # Example Build-time Additional Dependencies - pkgconfig - ]; - buildInputs = [ - # Example Run-time Additional Dependencies - openssl - x11 - qemu - # glibc - ]; - hardeningDisable = [ "format" "fortify" ]; -} -``` - -Then use this script: `nix-shell myshell.nix`. - -Once you're in nix-shell, you should be able to follow the build directions. ## Alpine Linux diff --git a/Toolchain/serenity.nix b/Toolchain/serenity.nix new file mode 100644 index 0000000000..3f70aab34f --- /dev/null +++ b/Toolchain/serenity.nix @@ -0,0 +1,31 @@ +{ pkgs ? import { } }: +with pkgs; + +stdenv.mkDerivation { + name = "cpp-env"; + nativeBuildInputs = [ + gcc11 + curl + cmake + mpfr + ninja + gmp + libmpc + e2fsprogs + patch + ccache + rsync + unzip + + # Example Build-time Additional Dependencies + pkgconfig + ]; + buildInputs = [ + # Example Run-time Additional Dependencies + openssl + x11 + qemu + # glibc + ]; + hardeningDisable = [ "format" "fortify" ]; +}