this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

mruby toolchain switching from CMake

+79 -115
+21 -11
CMakeLists.txt
··· 9 9 if(CMAKE_BUILD_TYPE STREQUAL "Debug") 10 10 set(VERSION_BUILD ".dbg" ) 11 11 endif() 12 + if(CMAKE_BUILD_TYPE) 13 + string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE_UC) 14 + endif() 12 15 13 16 find_package(Git) 14 17 if(Git_FOUND) ··· 236 239 endif() 237 240 238 241 set(MRUBY_DIR ${THIRDPARTY_DIR}/mruby) 242 + set(MRUBY_CONFIG ${CMAKE_SOURCE_DIR}/mruby/tic_default.rb) 243 + set(MRUBY_LIB ${MRUBY_DIR}/build/target/lib/libmruby.a) 239 244 if(EMSCRIPTEN) 240 - set(MRUBY_TARGET wasm) 241 - else() 242 - set(MRUBY_TARGET host) 245 + set(MRUBY_TOOLCHAIN emscripten) 243 246 endif() 244 - set(MRUBY_CONFIG ${CMAKE_SOURCE_DIR}/mruby/tic_mruby_${MRUBY_TARGET}_build_config.rb) 245 - set(MRUBY_LIBRARIES ${MRUBY_DIR}/build/${MRUBY_TARGET}/lib/libmruby.a) 246 247 247 248 ExternalProject_Add(mruby_vendor 248 249 SOURCE_DIR ${MRUBY_DIR} 249 250 CONFIGURE_COMMAND "" 250 251 BUILD_IN_SOURCE TRUE 251 - BUILD_COMMAND ${CMAKE_COMMAND} -E env 252 - "BUILD_TYPE=${CMAKE_BUILD_TYPE}" 253 - ${RAKE} MRUBY_CONFIG=${MRUBY_CONFIG} 252 + BUILD_COMMAND 253 + ${CMAKE_COMMAND} -E env 254 + "TARGET_CC=${CMAKE_C_COMPILER}" 255 + "TARGET_CXX=${CMAKE_CXX_COMPILER}" 256 + "TARGET_LD=${CMAKE_C_LINK_EXECUTABLE}" 257 + "TARGET_AR=${CMAKE_AR}" 258 + "TARGET_CFLAGS=${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${BUILD_TYPE_UC}}" 259 + "TARGET_CXXFLAGS=${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BUILD_TYPE_UC}}" 260 + "TARGET_LDFLAGS=${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_LINKER_FLAGS_${BUILD_TYPE_UC}}" 261 + "BUILD_TYPE=${BUILD_TYPE_UC}" 262 + "MRUBY_TOOLCHAIN=${MRUBY_TOOLCHAIN}" 263 + ${RAKE} "MRUBY_CONFIG=${MRUBY_CONFIG}" 254 264 INSTALL_COMMAND "" 255 - BUILD_BYPRODUCTS ${MRUBY_LIBRARIES} 265 + BUILD_BYPRODUCTS ${MRUBY_LIB} 256 266 ) 257 267 258 268 add_library(mruby STATIC IMPORTED GLOBAL) 259 269 set_property(TARGET mruby APPEND 260 - PROPERTY IMPORTED_LOCATION ${MRUBY_LIBRARIES} 270 + PROPERTY IMPORTED_LOCATION ${MRUBY_LIB} 261 271 ) 262 272 set_property(TARGET mruby APPEND 263 273 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${MRUBY_DIR}/include ··· 538 548 set_target_properties(tic80_libretro PROPERTIES SUFFIX "_partial.a") 539 549 add_custom_command(TARGET tic80_libretro 540 550 POST_BUILD 541 - COMMAND ${CMAKE_SOURCE_DIR}/build/libretro/merge_static.sh $(AR) ${CMAKE_BINARY_DIR}/lib/tic80_libretro${LIBRETRO_SUFFIX}.a ${CMAKE_BINARY_DIR}/lib/tic80_libretro_partial.a ${CMAKE_BINARY_DIR}/lib/libtic80core.a ${CMAKE_BINARY_DIR}/lib/liblua.a ${CMAKE_BINARY_DIR}/lib/libblipbuf.a ${CMAKE_BINARY_DIR}/lib/libduktape.a ${CMAKE_BINARY_DIR}/lib/libwren.a ${CMAKE_BINARY_DIR}/lib/libsquirrel.a ${CMAKE_BINARY_DIR}/lib/libgiflib.a ${CMAKE_BINARY_DIR}/lib/liblpeg.a ${MRUBY_LIBRARIES}) 551 + COMMAND ${CMAKE_SOURCE_DIR}/build/libretro/merge_static.sh $(AR) ${CMAKE_BINARY_DIR}/lib/tic80_libretro${LIBRETRO_SUFFIX}.a ${CMAKE_BINARY_DIR}/lib/tic80_libretro_partial.a ${CMAKE_BINARY_DIR}/lib/libtic80core.a ${CMAKE_BINARY_DIR}/lib/liblua.a ${CMAKE_BINARY_DIR}/lib/libblipbuf.a ${CMAKE_BINARY_DIR}/lib/libduktape.a ${CMAKE_BINARY_DIR}/lib/libwren.a ${CMAKE_BINARY_DIR}/lib/libsquirrel.a ${CMAKE_BINARY_DIR}/lib/libgiflib.a ${CMAKE_BINARY_DIR}/lib/liblpeg.a ${MRUBY_LIB}) 542 552 else() 543 553 add_library(tic80_libretro SHARED 544 554 ${LIBRETRO_SRC}
+58
mruby/tic_default.rb
··· 1 + MRuby::Build.new do |conf| 2 + # load specific toolchain settings 3 + conf.toolchain 4 + 5 + # include the GEM box 6 + conf.gembox 'default' 7 + 8 + conf.enable_bintest 9 + conf.enable_test 10 + end 11 + 12 + MRuby::Toolchain.new('emscripten') do |conf| 13 + toolchain :clang 14 + 15 + conf.cc.command = ENV['TARGET_CC'] || 'emcc' 16 + conf.cxx.command = ENV['TARGET_CXX'] || 'emcc' 17 + conf.linker.command = ENV['TARGET_LD'] || 'emcc' 18 + conf.archiver.command = ENV['TARGET_AR'] || 'emar' 19 + end 20 + 21 + BuildClazz = (ENV['MRUBY_TOOLCHAIN'] || '').empty? ? MRuby::Build : MRuby::CrossBuild 22 + 23 + BuildClazz.new('target') do |conf| 24 + # load specific toolchain settings 25 + if (ENV['MRUBY_TOOLCHAIN'] || '').empty? 26 + conf.toolchain 27 + else 28 + toolchain ENV['MRUBY_TOOLCHAIN'] 29 + end 30 + 31 + # include the GEM box 32 + conf.gembox File.expand_path('tic', File.dirname(__FILE__)) 33 + 34 + # C compiler settings 35 + conf.cc do |cc| 36 + cc.flags = [ENV["TARGET_CFLAGS"] || %w()] 37 + unless ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] 38 + cc.flags << '-fPIC' 39 + end 40 + end 41 + 42 + # Linker settings 43 + conf.linker do |linker| 44 + linker.flags = [ENV['TARGET_LDFLAGS'] || []] 45 + end 46 + 47 + # file extensions 48 + conf.exts do |exts| 49 + exts.object = '.o' 50 + exts.library = '.a' 51 + # exts.executable = '' # '.exe' if Windows 52 + end 53 + 54 + # Turn on `enable_debug` for better debugging 55 + conf.enable_debug if /DEBUG/ =~ ENV["BUILD_TYPE"] 56 + conf.enable_bintest 57 + conf.enable_test 58 + end
-76
mruby/tic_mruby_host_build_config.rb
··· 1 - MRuby::Build.new do |conf| 2 - # load specific toolchain settings 3 - conf.toolchain 4 - 5 - # include the GEM box 6 - conf.gembox File.expand_path('tic', File.dirname(__FILE__)) 7 - 8 - # C compiler settings 9 - conf.cc do |cc| 10 - cc.flags << '-fPIC' unless ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] 11 - 12 - case ENV['BUILD_CONFIG'].upcase 13 - when /DEBUG/ 14 - unless ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] 15 - cc.flags << '-g' 16 - end 17 - else 18 - if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] 19 - cc.flags << '/O1' 20 - else 21 - cc.flags << '-Os' 22 - end 23 - end 24 - end 25 - 26 - # mrbc settings 27 - # conf.mrbc do |mrbc| 28 - # mrbc.compile_options = "-g -B%{funcname} -o-" # The -g option is required for line numbers 29 - # end 30 - 31 - # Linker settings 32 - # conf.linker do |linker| 33 - # linker.command = ENV['LD'] || 'gcc' 34 - # linker.flags = [ENV['LDFLAGS'] || []] 35 - # linker.flags_before_libraries = [] 36 - # linker.libraries = %w() 37 - # linker.flags_after_libraries = [] 38 - # linker.library_paths = [] 39 - # linker.option_library = '-l%s' 40 - # linker.option_library_path = '-L%s' 41 - # linker.link_options = "%{flags} -o "%{outfile}" %{objs} %{libs}" 42 - # end 43 - 44 - # Archiver settings 45 - # conf.archiver do |archiver| 46 - # archiver.command = ENV['AR'] || 'ar' 47 - # archiver.archive_options = 'rs "%{outfile}" %{objs}' 48 - # end 49 - 50 - # Parser generator settings 51 - # conf.yacc do |yacc| 52 - # yacc.command = ENV['YACC'] || 'bison' 53 - # yacc.compile_options = %q[-o "%{outfile}" "%{infile}"] 54 - # end 55 - 56 - # gperf settings 57 - # conf.gperf do |gperf| 58 - # gperf.command = 'gperf' 59 - # gperf.compile_options = %q[-L ANSI-C -C -p -j1 -i 1 -g -o -t -N mrb_reserved_word -k"1,3,$" "%{infile}" > "%{outfile}"] 60 - # end 61 - 62 - # file extensions 63 - conf.exts do |exts| 64 - exts.object = '.o' 65 - exts.library = '.a' 66 - # exts.executable = '' # '.exe' if Windows 67 - end 68 - 69 - # file separator 70 - # conf.file_separator = '/' 71 - 72 - # Turn on `enable_debug` for better debugging 73 - conf.enable_debug if /DEBUG/ =~ ENV['BUILD_CONFIG'].upcase 74 - conf.enable_bintest 75 - conf.enable_test 76 - end
-28
mruby/tic_mruby_wasm_build_config.rb
··· 1 - MRuby::Toolchain.new('emscripten') do |conf| 2 - toolchain :clang 3 - 4 - conf.cc.command = 'emcc' 5 - conf.cxx.command = 'emcc' 6 - conf.linker.command = 'emcc' 7 - conf.archiver.command = 'emar' 8 - end 9 - 10 - MRuby::CrossBuild.new('wasm') do |conf| 11 - toolchain :emscripten 12 - 13 - # include the GEM box 14 - conf.gembox File.expand_path('tic', File.dirname(__FILE__)) 15 - 16 - conf.cc do |cc| 17 - case ENV['BUILD_CONFIG'].upcase 18 - when /DEBUG/ 19 - cc.flags << '-g' 20 - else 21 - cc.flags << '-Os' 22 - end 23 - end 24 - 25 - conf.enable_debug if /DEBUG/ =~ ENV['BUILD_CONFIG'].upcase 26 - conf.enable_bintest 27 - conf.enable_test 28 - end