diff options
| author | crimsonwoods <[email protected]> | 2013-03-14 23:51:44 +0900 |
|---|---|---|
| committer | crimsonwoods <[email protected]> | 2013-03-14 23:51:44 +0900 |
| commit | ef23ae4e417e952aed59694aeb9bf4bf62f68472 (patch) | |
| tree | e4c992bf98b3515ee4e7f2ca84f2af914e22831c /tasks/mruby_build_commands.rake | |
| parent | bb63eb04d02a723592e504f1b796b58154d3aa1c (diff) | |
| download | mruby-ef23ae4e417e952aed59694aeb9bf4bf62f68472.tar.gz mruby-ef23ae4e417e952aed59694aeb9bf4bf62f68472.zip | |
support 'Cygwin' as build platform.
Diffstat (limited to 'tasks/mruby_build_commands.rake')
| -rw-r--r-- | tasks/mruby_build_commands.rake | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index ec8a8d3e3..3795b47d4 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -4,7 +4,7 @@ module MRuby class Command include Rake::DSL extend Forwardable - def_delegators :@build, :filename, :objfile, :libfile, :exefile + def_delegators :@build, :filename, :objfile, :libfile, :exefile, :cygwin_filename attr_accessor :build, :command def initialize(build) @@ -49,7 +49,11 @@ module MRuby def all_flags(_defineds=[], _include_paths=[], _flags=[]) define_flags = [defines, _defineds].flatten.map{ |d| option_define % d } include_path_flags = [include_paths, _include_paths].flatten.map do |f| - option_include_path % filename(f) + if MRUBY_BUILD_HOST_IS_CYGWIN + option_include_path % cygwin_filename(f) + else + option_include_path % filename(f) + end end [flags, define_flags, include_path_flags, _flags].flatten.join(' ') end @@ -61,8 +65,13 @@ module MRuby option_include_path % filename(f) end _pp "CC", infile.relative_path, outfile.relative_path - _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), - :infile => filename(infile), :outfile => filename(outfile) } + if MRUBY_BUILD_HOST_IS_CYGWIN + _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), + :infile => cygwin_filename(infile), :outfile => cygwin_filename(outfile) } + else + _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), + :infile => filename(infile), :outfile => filename(outfile) } + end end def define_rules(build_dir, source_dir='') @@ -127,7 +136,11 @@ module MRuby def all_flags(_library_paths=[], _flags=[]) library_path_flags = [library_paths, _library_paths].flatten.map do |f| - option_library_path % filename(f) + if MRUBY_BUILD_HOST_IS_CYGWIN + option_library_path % cygwin_filename(f) + else + option_library_path % filename(f) + end end [flags, library_path_flags, _flags].flatten.join(' ') end @@ -142,11 +155,19 @@ module MRuby library_path_flags = [library_paths, _library_paths].flatten.map { |f| option_library_path % filename(f) } _pp "LD", outfile.relative_path - _run link_options, { :flags => all_flags(_library_paths, _flags), - :outfile => filename(outfile) , :objs => filename(objfiles).join(' '), - :flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '), - :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '), - :libs => library_flags.join(' ') } + if MRUBY_BUILD_HOST_IS_CYGWIN + _run link_options, { :flags => all_flags(_library_paths, _flags), + :outfile => cygwin_filename(outfile) , :objs => cygwin_filename(objfiles).join(' '), + :flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '), + :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '), + :libs => library_flags.join(' ') } + else + _run link_options, { :flags => all_flags(_library_paths, _flags), + :outfile => filename(outfile) , :objs => filename(objfiles).join(' '), + :flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '), + :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '), + :libs => library_flags.join(' ') } + end end end @@ -162,7 +183,11 @@ module MRuby def run(outfile, objfiles) FileUtils.mkdir_p File.dirname(outfile) _pp "AR", outfile.relative_path - _run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).join(' ') } + if MRUBY_BUILD_HOST_IS_CYGWIN + _run archive_options, { :outfile => cygwin_filename(outfile), :objs => cygwin_filename(objfiles).join(' ') } + else + _run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).join(' ') } + end end end |
