diff options
Diffstat (limited to 'tasks/toolchains')
| -rw-r--r-- | tasks/toolchains/android.rake | 51 | ||||
| -rw-r--r-- | tasks/toolchains/gcc.rake | 2 | ||||
| -rw-r--r-- | tasks/toolchains/visualcpp.rake | 2 |
3 files changed, 45 insertions, 10 deletions
diff --git a/tasks/toolchains/android.rake b/tasks/toolchains/android.rake index 0cc60a7a3..7759a3f9c 100644 --- a/tasks/toolchains/android.rake +++ b/tasks/toolchains/android.rake @@ -203,23 +203,53 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter def cflags flags = [] - flags += %W(-D__android__ --sysroot="#{sysroot}") + flags += %W(-MMD -MP) + flags += %W(-D__android__ -DANDROID --sysroot="#{sysroot}") 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 /armeabi-v7a/ then flags += %W(-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -fpic) + when /armeabi/ then flags += %W(-march=armv5te -mtune=xscale -msoft-float -fpic) + when /arm64-v8a/ then flags += %W(-march=armv8-a -fpic) 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) + when /mips64/ then flags += %W(-march=mips64r6 -fmessage-length=0 -fpic) + when /mips/ then flags += %W(-march=mips32 -fmessage-length=0 -fpic) end when :clang flags += %W(-gcc-toolchain "#{gcc_toolchain_path.to_s}") case arch - when /armeabi-v7a/ then flags += %W(-target armv7-none-linux-androideabi) + when /armeabi-v7a/ then flags += %W(-target armv7-none-linux-androideabi -fpic) + when /armeabi/ then flags += %W(-target armv5te-none-linux-androideabi -fpic) + when /arm64-v8a/ then flags += %W(-target aarch64-none-linux-android -fpic) + when /x86_64/ then flags += %W(-target x86_64-none-linux-android -fPIC) + when /x86/ then flags += %W(-target i686-none-linux-android -fPIC) + when /mips64/ then flags += %W(-target mips64el-none-linux-android -fmessage-length=0 -fpic) + when /mips/ then flags += %W(-target mipsel-none-linux-android -fmessage-length=0 -fpic) + end + flags += %W(-Wno-invalid-command-line-argument -Wno-unused-command-line-argument) + end + flags += %W(-ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes) + + flags + end + + def ldflags + flags = [] + + flags += %W(--sysroot="#{sysroot}") + + flags + end + + def ldflags_before_libraries + flags = [] + + case toolchain + when :clang + flags += %W(-gcc-toolchain "#{gcc_toolchain_path.to_s}") + case arch + when /armeabi-v7a/ then flags += %W(-target armv7-none-linux-androideabi -Wl,--fix-cortex-a8) when /armeabi/ then flags += %W(-target armv5te-none-linux-androideabi) when /arm64-v8a/ then flags += %W(-target aarch64-none-linux-android) when /x86_64/ then flags += %W(-target x86_64-none-linux-android) @@ -228,10 +258,10 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter when /mips/ then flags += %W(-target mipsel-none-linux-android) end end + flags += %W(-no-canonical-prefixes) flags end - end MRuby::Toolchain.new(:android) do |conf, params| @@ -246,5 +276,6 @@ MRuby::Toolchain.new(:android) do |conf, params| conf.archiver.command = android.ar conf.linker.command = android.cc - conf.linker.flags = [] + conf.linker.flags = android.ldflags + conf.linker.flags_before_libraries = android.ldflags_before_libraries end diff --git a/tasks/toolchains/gcc.rake b/tasks/toolchains/gcc.rake index 4897e8c52..59ae015ac 100644 --- a/tasks/toolchains/gcc.rake +++ b/tasks/toolchains/gcc.rake @@ -6,6 +6,7 @@ MRuby::Toolchain.new(:gcc) do |conf, _params| cc.option_include_path = '-I%s' cc.option_define = '-D%s' cc.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}' + cc.cxx_compile_flag = '-x c++ -std=c++03' end [conf.cxx].each do |cxx| @@ -15,6 +16,7 @@ MRuby::Toolchain.new(:gcc) do |conf, _params| cxx.option_include_path = '-I%s' cxx.option_define = '-D%s' cxx.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}' + cxx.cxx_compile_flag = '-x c++ -std=c++03' end conf.linker do |linker| diff --git a/tasks/toolchains/visualcpp.rake b/tasks/toolchains/visualcpp.rake index 52820656b..5f5bab9c2 100644 --- a/tasks/toolchains/visualcpp.rake +++ b/tasks/toolchains/visualcpp.rake @@ -7,6 +7,7 @@ MRuby::Toolchain.new(:visualcpp) do |conf, _params| cc.option_include_path = '/I%s' cc.option_define = '/D%s' cc.compile_options = "%{flags} /Fo%{outfile} %{infile}" + cc.cxx_compile_flag = '/TP' end conf.cxx do |cxx| @@ -16,6 +17,7 @@ MRuby::Toolchain.new(:visualcpp) do |conf, _params| cxx.option_include_path = '/I%s' cxx.option_define = '/D%s' cxx.compile_options = "%{flags} /Fo%{outfile} %{infile}" + cxx.cxx_compile_flag = '/TP' end conf.linker do |linker| |
