new package: mruby (#8090)
This commit is contained in:
parent
b8b664e508
commit
b0db448429
|
@ -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/
|
||||||
|
}
|
|
@ -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
|
|
@ -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…
Reference in New Issue