new package: mruby (#8090)
This commit is contained in:
parent
b8b664e508
commit
b0db448429
37
packages/mruby/build.sh
Normal file
37
packages/mruby/build.sh
Normal file
@ -0,0 +1,37 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://mruby.org/
|
||||
TERMUX_PKG_DESCRIPTION="Lightweight implementation of the Ruby language"
|
||||
TERMUX_PKG_LICENSE="MIT"
|
||||
TERMUX_PKG_MAINTAINER="@termux"
|
||||
TERMUX_PKG_VERSION=3.0.0
|
||||
TERMUX_PKG_SRCURL=https://github.com/mruby/mruby/archive/${TERMUX_PKG_VERSION}.zip
|
||||
TERMUX_PKG_SHA256=c7d95fdc05efdc8f5a0df4d5f0fbad5092596d61927c39515d03b8dde4743a8e
|
||||
TERMUX_PKG_DEPENDS="ncurses, readline"
|
||||
TERMUX_PKG_BUILD_IN_SRC=true
|
||||
|
||||
termux_step_configure() {
|
||||
:
|
||||
}
|
||||
|
||||
termux_step_make() {
|
||||
export CC_FOR_TARGET="$CC"
|
||||
export CFLAGS_FOR_TARGET="$CPPFLAGS $CFLAGS -DMRB_USE_READLINE"
|
||||
export LDFLAGS_FOR_TARGET="$LDFLAGS -lncurses -lreadline"
|
||||
unset CPPFLAGS CFLAGS LDFLAGS
|
||||
export CC="$CC_FOR_BUILD"
|
||||
export LD="$CC_FOR_BUILD"
|
||||
|
||||
export ANDROID_NDK_HOME="$NDK"
|
||||
export MRUBY_CONFIG=android-termux
|
||||
rake
|
||||
}
|
||||
|
||||
termux_step_make_install() {
|
||||
cd "$TERMUX_PKG_BUILDDIR/build/android-termux"
|
||||
for f in bin/*; do
|
||||
install -Dm700 -t $TERMUX_PREFIX/bin $f
|
||||
done
|
||||
for f in lib/*.a; do
|
||||
install -Dm600 -t $TERMUX_PREFIX/lib $f
|
||||
done
|
||||
cp -a "$TERMUX_PKG_SRCDIR/include" $TERMUX_PREFIX/
|
||||
}
|
16
packages/mruby/build_config.patch
Normal file
16
packages/mruby/build_config.patch
Normal file
@ -0,0 +1,16 @@
|
||||
--- a/build_config/android-termux.rb
|
||||
+++ b/build_config/android-termux.rb
|
||||
@@ -0,0 +1,13 @@
|
||||
+MRuby::CrossBuild.new('android-termux') do |conf|
|
||||
+ params = {
|
||||
+ :toolchain => :clang,
|
||||
+ }
|
||||
+ toolchain :android, params
|
||||
+
|
||||
+ conf.cc.command = ENV['CC_FOR_TARGET'] || 'clang'
|
||||
+ conf.cc.flags << ENV['CFLAGS_FOR_TARGET'] || ''
|
||||
+ conf.linker.command = conf.cc.command
|
||||
+ conf.linker.flags << ENV['LDFLAGS_FOR_TARGET'] || ''
|
||||
+
|
||||
+ conf.gembox 'default'
|
||||
+end
|
72
packages/mruby/tasks-toolchains-android.rake.patch
Normal file
72
packages/mruby/tasks-toolchains-android.rake.patch
Normal file
@ -0,0 +1,72 @@
|
||||
--- a/tasks/toolchains/android.rake
|
||||
+++ b/tasks/toolchains/android.rake
|
||||
@@ -218,7 +218,7 @@
|
||||
end
|
||||
end
|
||||
if Integer(@platform.rpartition('-')[2]) < 21
|
||||
- case arch
|
||||
+ case nil
|
||||
when /arm64-v8a/, /x86_64/, /mips64/
|
||||
raise NotImplementedError, "Platform (#{@platform}) has no implementation for architecture (#{arch})"
|
||||
end
|
||||
@@ -252,7 +252,7 @@
|
||||
def ar
|
||||
case toolchain
|
||||
when :gcc then bin_gcc('ar')
|
||||
- when :clang then bin_gcc('ar')
|
||||
+ when :clang then bin('llvm-ar')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
when /mips/ then flags += %W(-march=mips32)
|
||||
end
|
||||
when :clang
|
||||
- case arch
|
||||
+ case nil
|
||||
when /armeabi-v7a/ then flags += %W(-target armv7-none-linux-androideabi)
|
||||
when /armeabi/ then flags += %W(-target armv5te-none-linux-androideabi)
|
||||
when /arm64-v8a/ then flags += %W(-target aarch64-none-linux-android)
|
||||
@@ -282,7 +282,7 @@
|
||||
end
|
||||
end
|
||||
|
||||
- case arch
|
||||
+ case nil
|
||||
when /armeabi-v7a/ then flags += %W(-mfpu=#{armeabi_v7a_mfpu} -mfloat-abi=#{armeabi_v7a_mfloat_abi})
|
||||
when /armeabi/ then flags += %W(-mtune=xscale -msoft-float)
|
||||
when /arm64-v8a/ then flags += %W()
|
||||
@@ -304,12 +304,12 @@
|
||||
flags += %W(-U_WIN32 -U_WIN64)
|
||||
end
|
||||
|
||||
- flags += %W(-MMD -MP -D__android__ -DANDROID --sysroot="#{sysroot}")
|
||||
+ flags += %W(-MMD -MP -D__android__ -DANDROID)
|
||||
flags += ctarget
|
||||
case toolchain
|
||||
when :gcc
|
||||
when :clang
|
||||
- flags += %W(-gcc-toolchain "#{gcc_toolchain_path}" -Wno-invalid-command-line-argument -Wno-unused-command-line-argument)
|
||||
+ flags += %W(-Wno-invalid-command-line-argument -Wno-unused-command-line-argument)
|
||||
end
|
||||
flags += %W(-fpic -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes)
|
||||
|
||||
@@ -319,8 +319,6 @@
|
||||
def ldflags
|
||||
flags = []
|
||||
|
||||
- flags += %W(--sysroot="#{sysroot}")
|
||||
-
|
||||
flags
|
||||
end
|
||||
|
||||
@@ -333,8 +331,7 @@
|
||||
when /armeabi-v7a/ then flags += %W(-Wl#{no_warn_mismatch})
|
||||
end
|
||||
when :clang
|
||||
- flags += %W(-gcc-toolchain "#{gcc_toolchain_path.to_s}")
|
||||
- case arch
|
||||
+ case nil
|
||||
when /armeabi-v7a/ then flags += %W(-target armv7-none-linux-androideabi -Wl,--fix-cortex-a8#{no_warn_mismatch})
|
||||
when /armeabi/ then flags += %W(-target armv5te-none-linux-androideabi)
|
||||
when /arm64-v8a/ then flags += %W(-target aarch64-none-linux-android)
|
Loading…
x
Reference in New Issue
Block a user