Initial commit

This commit is contained in:
2026-07-27 06:13:37 +01:00
commit f9b969050f
8 changed files with 217 additions and 0 deletions
+16
View File
@@ -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
View File
@@ -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
}
+117
View File
@@ -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
'';
};
};
}
+53
View File
@@ -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/mruby added at 8ab5fc96d0