add piston nix pkg for mono-basic
This commit is contained in:
parent
daeed0ce5e
commit
9fe9b4db48
|
@ -1,32 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
PREFIX=$(realpath $(dirname $0))
|
||||
|
||||
mkdir -p build/mono build/mono-basic
|
||||
cd build
|
||||
|
||||
curl "https://download.mono-project.com/sources/mono/mono-6.12.0.122.tar.xz" -o mono.tar.xz
|
||||
curl -L "https://github.com/mono/mono-basic/archive/refs/tags/4.7.tar.gz" -o mono-basic.tar.gz
|
||||
tar xf mono.tar.xz --strip-components=1 -C mono
|
||||
tar xf mono-basic.tar.gz --strip-components=1 -C mono-basic
|
||||
|
||||
# Compiling Mono
|
||||
cd mono
|
||||
|
||||
./configure --prefix "$PREFIX"
|
||||
|
||||
make -j$(nproc)
|
||||
make install -j$(nproc)
|
||||
|
||||
export PATH="$PREFIX/bin:$PATH" # To be able to use mono commands
|
||||
|
||||
# Compiling mono-basic
|
||||
cd ../mono-basic
|
||||
./configure --prefix="$PREFIX"
|
||||
|
||||
make -j$(nproc) PLATFORM="linux" # Avoids conflict with the $PLATFORM variable we have
|
||||
make install -j$(nproc) PLATFORM="linux"
|
||||
|
||||
# Remove redundant files
|
||||
cd ../../
|
||||
rm -rf build
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
case "${PISTON_LANGUAGE}" in
|
||||
csharp)
|
||||
rename 's/$/\.cs/' "$@" # Add .cs extension
|
||||
csc -out:out *.cs
|
||||
;;
|
||||
basic)
|
||||
rename 's/$/\.vb/' "$@" # Add .vb extension
|
||||
vbnc -out:out *.vb
|
||||
;;
|
||||
*)
|
||||
echo "How did you get here? (${PISTON_LANGUAGE})"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -1 +0,0 @@
|
|||
export PATH=$PWD/bin:$PATH
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"language": "mono",
|
||||
"version": "6.12.0",
|
||||
"provides": [
|
||||
{
|
||||
"language": "csharp",
|
||||
"aliases": ["mono", "mono-csharp", "mono-c#", "mono-cs", "c#", "cs"]
|
||||
},
|
||||
{
|
||||
"language": "basic",
|
||||
"aliases": [
|
||||
"vb",
|
||||
"mono-vb",
|
||||
"mono-basic",
|
||||
"visual-basic",
|
||||
"visual basic"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
shift
|
||||
mono out "$@"
|
|
@ -1,9 +0,0 @@
|
|||
using System;
|
||||
|
||||
public class Test
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("OK");
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
Imports System
|
||||
|
||||
Module Module1
|
||||
|
||||
Sub Main()
|
||||
Console.WriteLine("OK")
|
||||
End Sub
|
||||
|
||||
End Module
|
|
@ -62,4 +62,5 @@ args: {
|
|||
"node-coffeescript" = import ./node-coffeescript.nix args;
|
||||
"jvm-scala" = import ./jvm-scala.nix args;
|
||||
"llvm_ir" = import ./llvm_ir.nix args;
|
||||
"mono-basic" = import ./mono-basic.nix args;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.mono;
|
||||
in piston.mkRuntime {
|
||||
language = "basic";
|
||||
version = pkg.version;
|
||||
runtime = "mono";
|
||||
|
||||
aliases = [
|
||||
"vb"
|
||||
"mono-vb"
|
||||
"mono-basic"
|
||||
"visual-basic"
|
||||
];
|
||||
|
||||
compile = ''
|
||||
rename 's/$/\.vb/' "$@" # Add .vb extension
|
||||
${pkg}/bin/vbc -out:out -sdkpath:${pkg}/lib/mono/4.8-api *.vb
|
||||
'';
|
||||
|
||||
run = ''
|
||||
shift
|
||||
${pkg}/bin/mono out.exe "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.vb" = ''
|
||||
Imports System
|
||||
|
||||
Module Module1
|
||||
|
||||
Sub Main()
|
||||
Console.WriteLine("OK")
|
||||
End Sub
|
||||
|
||||
End Module
|
||||
'';
|
||||
};
|
||||
args = [];
|
||||
stdin = "";
|
||||
packages = [];
|
||||
main = "test.vb";
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue