forked from idris-lang/Idris2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6d2dd93
commit 7a7504c
Showing
8 changed files
with
133 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: Nix | ||
on: | ||
push: | ||
branches: | ||
- '*' | ||
tags: | ||
- '*' | ||
pull_request: | ||
branches: | ||
- master | ||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
- uses: cachix/install-nix-action@v12 | ||
with: | ||
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-3.0pre20200820_4d77513/install | ||
extra_nix_config: | | ||
experimental-features = nix-command flakes | ||
- run: nix build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ nixpkgs ? import <nixos> {} }: with nixpkgs; | ||
|
||
callPackage ./package.nix {} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
description = "Idris2 flake"; | ||
|
||
outputs = { self, nixpkgs }: { | ||
|
||
packages.x86_64-linux.idris2 = import ./default.nix { nixpkgs = nixpkgs.legacyPackages.x86_64-linux; }; | ||
|
||
defaultPackage.x86_64-linux = self.packages.x86_64-linux.idris2; | ||
|
||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
{ stdenv, fetchFromGitHub, makeWrapper | ||
, clang, chez | ||
}: | ||
|
||
# Uses scheme to bootstrap the build of idris2 | ||
stdenv.mkDerivation rec { | ||
pname = "idris2"; | ||
version = "0.3.0"; | ||
|
||
src = ./.; | ||
|
||
strictDeps = true; | ||
nativeBuildInputs = [ makeWrapper clang chez ]; | ||
buildInputs = [ chez ]; | ||
|
||
prePatch = '' | ||
patchShebangs --build tests | ||
''; | ||
|
||
makeFlags = [ "PREFIX=$(out)" ] | ||
++ stdenv.lib.optional stdenv.isDarwin "OS="; | ||
|
||
# The name of the main executable of pkgs.chez is `scheme` | ||
buildFlags = [ "bootstrap-build" "SCHEME=scheme" ]; | ||
|
||
checkTarget = "bootstrap-test"; | ||
|
||
# TODO: Move this into its own derivation, such that this can be changed | ||
# without having to recompile idris2 every time. | ||
postInstall = let | ||
includedLibs = [ "base" "contrib" "network" "prelude" ]; | ||
name = "${pname}-${version}"; | ||
packagePaths = builtins.map (l: "$out/${name}/" + l) includedLibs; | ||
additionalIdris2Paths = builtins.concatStringsSep ":" packagePaths; | ||
in '' | ||
# Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH | ||
rm $out/bin/idris2 | ||
# Move actual idris2 binary | ||
mv $out/bin/idris2_app/idris2.so $out/bin/idris2 | ||
# After moving the binary, there is nothing left in idris2_app that isn't | ||
# either contained in lib/ or is useless to us. | ||
rm $out/bin/idris2_app/* | ||
rmdir $out/bin/idris2_app | ||
# idris2 needs to find scheme at runtime to compile | ||
# idris2 installs packages with --install into the path given by PREFIX. | ||
# Since PREFIX is in nix-store, it is immutable so --install does not work. | ||
# If the user redefines PREFIX to be able to install packages, idris2 will | ||
# not find the libraries and packages since all paths are relative to | ||
# PREFIX by default. | ||
# We explicitly make all paths to point to nix-store, such that they are | ||
# independent of what IDRIS2_PREFIX is. This allows the user to redefine | ||
# IDRIS2_PREFIX and use --install as expected. | ||
# TODO: Make support libraries their own derivation such that | ||
# overriding LD_LIBRARY_PATH is unnecessary | ||
# TODO: Maybe set IDRIS2_PREFIX to the users home directory | ||
wrapProgram "$out/bin/idris2" \ | ||
--set-default CHEZ "${chez}/bin/scheme" \ | ||
--suffix IDRIS2_LIBS ':' "$out/${name}/lib" \ | ||
--suffix IDRIS2_DATA ':' "$out/${name}/support" \ | ||
--suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \ | ||
--suffix LD_LIBRARY_PATH ':' "$out/${name}/lib" | ||
''; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/nix/store/nw0mm1z2afpxv5rgf6w3apxc8pxwgd6h-idris2-0.3.0 |