mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #5386 from LanzaSchneider/master
Add example for cross-compiling to Nintendo Switch
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Cross Compiling configuration for the Nintendo Switch, it requires Nintendo SDK
|
||||
# Tested on windows
|
||||
MRuby::CrossBuild.new('nintendo_switch_32bit') do |conf|
|
||||
conf.toolchain :clang
|
||||
NINTENDO_SDK_PATH = ENV['NINTENDO_SDK_ROOT']
|
||||
|
||||
include_paths = [
|
||||
"#{NINTENDO_SDK_PATH}/Include",
|
||||
"#{NINTENDO_SDK_PATH}/Common/Configs/Targets/NX-NXFP2-a32/Include"
|
||||
]
|
||||
|
||||
conf.cc do |cc|
|
||||
cc.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++"
|
||||
cc.include_paths += include_paths
|
||||
cc.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float']
|
||||
cc.defines += 'NN_SDK_BUILD_RELEASE'
|
||||
end
|
||||
|
||||
conf.cxx do |cxx|
|
||||
cxx.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++"
|
||||
cxx.include_paths += include_paths
|
||||
cxx.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float']
|
||||
cxx.defines += 'NN_SDK_BUILD_RELEASE'
|
||||
end
|
||||
|
||||
conf.archiver do |archiver|
|
||||
archiver.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/armv7l/bin/llvm-ar"
|
||||
end
|
||||
|
||||
conf.linker do |linker|
|
||||
linker.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/armv7l/bin/clang++"
|
||||
linker.libraries = []
|
||||
end
|
||||
|
||||
# Add your mrbgems
|
||||
end
|
||||
|
||||
MRuby::CrossBuild.new('nintendo_switch_64bit') do |conf|
|
||||
conf.toolchain :clang
|
||||
NINTENDO_SDK_PATH = ENV['NINTENDO_SDK_ROOT']
|
||||
|
||||
include_paths = [
|
||||
"#{NINTENDO_SDK_PATH}/Include",
|
||||
"#{NINTENDO_SDK_PATH}/Common/Configs/Targets/NX-NXFP2-a64/Include"
|
||||
]
|
||||
|
||||
conf.cc do |cc|
|
||||
cc.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++"
|
||||
cc.include_paths += include_paths
|
||||
cc.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float']
|
||||
cc.flags << '--target=aarch64-nintendo-nx-elf'
|
||||
cc.defines += 'NN_SDK_BUILD_RELEASE'
|
||||
end
|
||||
|
||||
conf.cxx do |cxx|
|
||||
cxx.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/bin/nx-clang++"
|
||||
cxx.include_paths += include_paths
|
||||
cxx.flags += ['-fpic -fno-short-enums -ffunction-sections -fdata-sections -fno-common -fno-strict-aliasing -fomit-frame-pointer -fno-vectorize -funsigned-char -O2 -g -mno-implicit-float']
|
||||
cxx.flags << '--target=aarch64-nintendo-nx-elf'
|
||||
cxx.defines += 'NN_SDK_BUILD_RELEASE'
|
||||
end
|
||||
|
||||
conf.archiver do |archiver|
|
||||
archiver.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/aarch64/bin/llvm-ar"
|
||||
end
|
||||
|
||||
conf.linker do |linker|
|
||||
linker.command = "#{NINTENDO_SDK_PATH}/Compilers/NX/nx/aarch64/bin/clang++"
|
||||
linker.libraries = []
|
||||
end
|
||||
|
||||
# Add your mrbgems
|
||||
end
|
||||
Reference in New Issue
Block a user