1{
2 lib,
3 stdenv,
4 ruby,
5 rake,
6 fetchFromGitHub,
7 testers,
8}:
9
10stdenv.mkDerivation (finalAttrs: {
11 pname = "mruby";
12 version = "3.3.0";
13
14 src = fetchFromGitHub {
15 owner = "mruby";
16 repo = "mruby";
17 rev = finalAttrs.version;
18 sha256 = "sha256-rCoEC1ioX6bOocPoPi+Lsn4PM8gY0DjKja1/MJvJ1n8=";
19 };
20
21 nativeBuildInputs = [ rake ];
22
23 nativeCheckInputs = [ ruby ];
24
25 # Necessary so it uses `gcc` instead of `ld` for linking.
26 # https://github.com/mruby/mruby/blob/e502fd88b988b0a8d9f31b928eb322eae269c45a/tasks/toolchains/gcc.rake#L30
27 preBuild = "unset LD";
28
29 installPhase = ''
30 mkdir $out
31 cp -R include build/host/{bin,lib} $out
32 '';
33
34 doCheck = true;
35
36 checkTarget = "test";
37
38 passthru.tests = {
39 version = testers.testVersion {
40 package = finalAttrs.finalPackage;
41 };
42 };
43
44 meta = with lib; {
45 description = "Embeddable implementation of the Ruby language";
46 homepage = "https://mruby.org";
47 maintainers = with maintainers; [ nicknovitski ];
48 license = licenses.mit;
49 platforms = platforms.all;
50 mainProgram = "mruby";
51 };
52})