Initial commit
This commit is contained in:
+16
@@ -0,0 +1,16 @@
|
|||||||
|
[submodule "libs/mgems/mruby-marshal-c"]
|
||||||
|
path = libs/mgems/mruby-marshal-c
|
||||||
|
url = https://github.com/LanzaSchneider/mruby-marshal-c.git
|
||||||
|
ignore = dirty
|
||||||
|
[submodule "libs/mgems/mruby-env"]
|
||||||
|
path = libs/mgems/mruby-env
|
||||||
|
url = https://github.com/iij/mruby-env.git
|
||||||
|
ignore = dirty
|
||||||
|
[submodule "libs/mgems/mruby-process"]
|
||||||
|
path = libs/mgems/mruby-process
|
||||||
|
url = https://github.com/katzer/mruby-process
|
||||||
|
ignore = dirty
|
||||||
|
[submodule "libs/mruby"]
|
||||||
|
path = libs/mruby
|
||||||
|
url = https://github.com/mruby/mruby.git
|
||||||
|
ignore = dirty
|
||||||
Generated
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1785090369,
|
||||||
|
"narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "624af665418d3c65d544145b4d34ad696439570e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
{
|
||||||
|
description = "Crib - An IDE.";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
self.submodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ nixpkgs, ... }:
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system}.pkgsStatic;
|
||||||
|
hostPkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
|
mruby = pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "mruby";
|
||||||
|
version = "0.0.1";
|
||||||
|
|
||||||
|
src = pkgs.lib.cleanSourceWith {
|
||||||
|
src = ./libs;
|
||||||
|
name = "mruby-src";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./libs/changes.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = with hostPkgs; [
|
||||||
|
ruby
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
cd mruby
|
||||||
|
rake
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
|
||||||
|
cp -r build/host/lib $out/lib
|
||||||
|
cp -r build/host/include $out/include
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp build/host/bin/mrbc $out/bin/mrbc
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
crib = pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "crib";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with hostPkgs; [
|
||||||
|
pkg-config
|
||||||
|
gnumake
|
||||||
|
xxd
|
||||||
|
bash
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
libgrapheme
|
||||||
|
|
||||||
|
mruby
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make \
|
||||||
|
MRBC=${mruby}/bin/mrbc \
|
||||||
|
MRUBY_INCLUDE=${mruby}/include \
|
||||||
|
MRUBY_LIB=${mruby}/lib/libmruby.a
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp bin/crib $out/bin/crib
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages.${system} = {
|
||||||
|
default = crib;
|
||||||
|
crib = crib;
|
||||||
|
mruby = mruby;
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
|
inputsFrom = [ crib ];
|
||||||
|
|
||||||
|
packages = [
|
||||||
|
hostPkgs.clang-tools
|
||||||
|
hostPkgs.pkg-config
|
||||||
|
hostPkgs.ccache
|
||||||
|
hostPkgs.gnumake
|
||||||
|
hostPkgs.bear
|
||||||
|
hostPkgs.ruby
|
||||||
|
hostPkgs.xxd
|
||||||
|
hostPkgs.gdb
|
||||||
|
hostPkgs.binutils
|
||||||
|
|
||||||
|
pkgs.libgrapheme
|
||||||
|
pkgs.pcre2
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export CC="ccache gcc"
|
||||||
|
export CXX="ccache g++"
|
||||||
|
|
||||||
|
export MRBC=${mruby}/bin/mrbc
|
||||||
|
export MRUBY_INCLUDE=${mruby}/include
|
||||||
|
export MRUBY_LIB=${mruby}/lib/libmruby.a
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
--- ./mruby/build_config/default.rb
|
||||||
|
+++ ./mruby/build_config/default.rb
|
||||||
|
@@ -1,6 +1,18 @@
|
||||||
|
MRuby::Build.new do |conf|
|
||||||
|
# load specific toolchain settings
|
||||||
|
- conf.toolchain
|
||||||
|
+ conf.toolchain :gcc
|
||||||
|
+
|
||||||
|
+ conf.cc do |cc|
|
||||||
|
+ cc.command = ENV['CC']
|
||||||
|
+ end
|
||||||
|
+
|
||||||
|
+ conf.cxx do |cxx|
|
||||||
|
+ cxx.command = ENV['CXX']
|
||||||
|
+ end
|
||||||
|
+
|
||||||
|
+ conf.linker do |linker|
|
||||||
|
+ linker.command = ENV['CXX']
|
||||||
|
+ end
|
||||||
|
|
||||||
|
# Use mrbgems
|
||||||
|
# conf.gem 'examples/mrbgems/ruby_extension_example'
|
||||||
|
@@ -16,6 +28,10 @@
|
||||||
|
# include the GEM box
|
||||||
|
conf.gembox 'default'
|
||||||
|
|
||||||
|
+ conf.gem '../mgems/mruby-env'
|
||||||
|
+ conf.gem '../mgems/mruby-process'
|
||||||
|
+ conf.gem '../mgems/mruby-marshal-c'
|
||||||
|
+
|
||||||
|
# C compiler settings
|
||||||
|
# conf.cc do |cc|
|
||||||
|
# cc.command = ENV['CC'] || 'gcc'
|
||||||
|
@@ -79,5 +79,5 @@
|
||||||
|
# Turn on `enable_debug` for better debugging
|
||||||
|
# conf.enable_debug
|
||||||
|
- conf.enable_bintest
|
||||||
|
- conf.enable_test
|
||||||
|
+ # conf.enable_bintest
|
||||||
|
+ # conf.enable_test
|
||||||
|
end
|
||||||
|
--- ./mgems/mruby-process/mrbgem.rake
|
||||||
|
+++ ./mgems/mruby-process/mrbgem.rake
|
||||||
|
@@ -54,4 +54,9 @@
|
||||||
|
else
|
||||||
|
spec.objs.delete objfile("#{build_dir}/src/win32")
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+ spec.objs.delete objfile("#{build_dir}/src/internal")
|
||||||
|
+ spec.objs.delete objfile("#{build_dir}/src/dln")
|
||||||
|
+ spec.objs.delete objfile("#{build_dir}/src/signal")
|
||||||
|
+ spec.objs.delete objfile("#{build_dir}/src/status")
|
||||||
|
end
|
||||||
Submodule
+1
Submodule libs/mgems/mruby-env added at 056ae32445
Submodule
+1
Submodule libs/mgems/mruby-marshal-c added at fc40e2ec0f
Submodule
+1
Submodule libs/mgems/mruby-process added at 715014b1d9
Submodule
+1
Submodule libs/mruby added at 8ab5fc96d0
Reference in New Issue
Block a user