diff options
Diffstat (limited to 'pkgs/development/compilers/vlang/default.nix')
-rw-r--r-- | pkgs/development/compilers/vlang/default.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/development/compilers/vlang/default.nix b/pkgs/development/compilers/vlang/default.nix new file mode 100644 index 00000000000..cbccca34b41 --- /dev/null +++ b/pkgs/development/compilers/vlang/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchFromGitHub, glfw, freetype, curl }: + +stdenv.mkDerivation rec { + pname = "vlang"; + version = "0.1.16"; + + src = fetchFromGitHub { + owner = "vlang"; + repo = "v"; + rev = "${version}"; + sha256 = "08zgwy9ac3wa5ixy8rdw6izpn1n1c3ydb9rl8z8graw0bgv719ma"; + }; + + # V compiler source translated to C for bootstrap. + vc = fetchFromGitHub { + owner = "vlang"; + repo = "vc"; + rev = "${version}"; + sha256 = "0k6c7v3r3cirypsqbaq10qlgg41v19rsnc1ygam4il2p8rsmfwz3"; + }; + + enableParallelBuilding = true; + buildInputs = [ glfw freetype curl ]; + + buildPhase = '' + runHook preBuild + cc -std=gnu11 -w -o v $vc/v.c -lm + ./v -prod -o v compiler + # -fPIC -pie required for examples/hot_code_reloading + make CFLAGS+="-fPIC -pie" thirdparty + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,lib/vlang,share/vlang} + cp -r examples $out/share/vlang + cp -r {vlib,thirdparty} $out/lib/vlang + cp v $out/lib/vlang + ln -s $out/lib/vlang/v $out/bin/v + runHook postInstall + ''; + + meta = with stdenv.lib; { + homepage = "https://vlang.io/"; + description = "Simple, fast, safe, compiled language for developing maintainable software"; + license = licenses.mit; + maintainers = with maintainers; [ chiiruno ]; + platforms = platforms.all; + }; +} |