Commit 8488425e authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto Committed by GitHub

Merge pull request #3223 from AltimitSystems/android.rake-ndk-clang

Android Task GCC support re-added
parents 364761f4 c3f271a8
...@@ -13,7 +13,7 @@ class MRuby::Toolchain::Android ...@@ -13,7 +13,7 @@ class MRuby::Toolchain::Android
~/Library/Android/ndk ~/Library/Android/ndk
} }
TOOLCHAINS = [:clang] # TODO : Add gcc support TOOLCHAINS = [:clang, :gcc]
ARCHITECTURES = %w{ ARCHITECTURES = %w{
armeabi armeabi-v7a arm64-v8a armeabi armeabi-v7a arm64-v8a
...@@ -46,22 +46,18 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter ...@@ -46,22 +46,18 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter
end end
def bin_gcc(command) def bin_gcc(command)
case toolchain command = command.to_s
when :gcc then bin(command)
when :clang
command = command.to_s
command = case arch command = case arch
when /armeabi/ then 'arm-linux-androideabi-' when /armeabi/ then 'arm-linux-androideabi-'
when /arm64-v8a/ then 'aarch64-linux-android-' when /arm64-v8a/ then 'aarch64-linux-android-'
when /x86_64/ then 'x86_64-linux-android-' when /x86_64/ then 'x86_64-linux-android-'
when /x86/ then 'i686-linux-android-' when /x86/ then 'i686-linux-android-'
when /mips64/ then 'mips64el-linux-android-' when /mips64/ then 'mips64el-linux-android-'
when /mips/ then 'mipsel-linux-android-' when /mips/ then 'mipsel-linux-android-'
end + command end + command
gcc_toolchain_path.join('bin', command).to_s gcc_toolchain_path.join('bin', command).to_s
end
end end
def bin(command) def bin(command)
...@@ -88,6 +84,8 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter ...@@ -88,6 +84,8 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter
def toolchain_path def toolchain_path
@toolchain_path ||= case toolchain @toolchain_path ||= case toolchain
when :gcc
gcc_toolchain_path
when :clang when :clang
home_path.join('toolchains', 'llvm' , 'prebuilt', host_platform) home_path.join('toolchains', 'llvm' , 'prebuilt', host_platform)
end end
...@@ -190,12 +188,14 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter ...@@ -190,12 +188,14 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter
def cc def cc
case toolchain case toolchain
when :gcc then bin_gcc('gcc')
when :clang then bin('clang') when :clang then bin('clang')
end end
end end
def ar def ar
case toolchain case toolchain
when :gcc then bin_gcc('ar')
when :clang then bin_gcc('ar') when :clang then bin_gcc('ar')
end end
end end
...@@ -205,6 +205,17 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter ...@@ -205,6 +205,17 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter
flags += %W(-D__android__ --sysroot="#{sysroot}") flags += %W(-D__android__ --sysroot="#{sysroot}")
case toolchain case toolchain
when :gcc
flags += %W(-mandroid)
case arch
when /armeabi-v7a/ then flags += %W(-march=armv7-a)
when /armeabi/ then flags += %W(-march=armv5te)
when /arm64-v8a/ then flags += %W(-march=armv8-a)
when /x86_64/ then flags += %W(-march=x86-64)
when /x86/ then flags += %W(-march=i686)
when /mips64/ then flags += %W(-march=mips64)
when /mips/ then flags += %W(-march=mips32)
end
when :clang when :clang
flags += %W(-gcc-toolchain "#{gcc_toolchain_path.to_s}") flags += %W(-gcc-toolchain "#{gcc_toolchain_path.to_s}")
case arch case arch
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment