- Timestamp:
- May 1, 2017, 7:53:04 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-1.2.0/tasks/mruby_build_commands.rake
r270 r281 1 1 require 'forwardable' 2 require 'digest/md5' 2 3 3 4 module MRuby … … 84 85 if MRUBY_BUILD_HOST_IS_CYGWIN 85 86 _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), 86 :infile => cygwin_filename(infile), :outfile => cygwin_filename(outfile) } 87 :infile => cygwin_filename(infile), :outfile => cygwin_filename(outfile), 88 :outdir => File.dirname(outfile), :outfilebase => File.basename(outfile, ".*") } 87 89 else 88 90 _run compile_options, { :flags => all_flags(_defineds, _include_paths, _flags), 89 :infile => filename(infile), :outfile => filename(outfile) } 91 :infile => filename(infile), :outfile => filename(outfile), 92 :outdir => File.dirname(outfile), :outfilebase => File.basename(outfile, ".*") } 90 93 end 91 94 end … … 178 181 :flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '), 179 182 :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '), 180 :libs => library_flags.join(' ') } 183 :libs => library_flags.join(' '), 184 :outdir => File.dirname(outfile), :outfilebase => File.basename(outfile, ".*") } 181 185 else 182 186 _run link_options, { :flags => all_flags(_library_paths, _flags), … … 184 188 :flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '), 185 189 :flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '), 186 :libs => library_flags.join(' ') } 190 :libs => library_flags.join(' '), 191 :outdir => File.dirname(outfile), :outfilebase => File.basename(outfile, ".*") } 187 192 end 188 193 end … … 201 206 FileUtils.mkdir_p File.dirname(outfile) 202 207 _pp "AR", outfile.relative_path 208 209 # reference from emar.py 210 outfilebase = File.dirname(outfile) 211 to_delete = [] 212 newargs = [] 213 objfiles.each do |orig_name| 214 dir_name = File.dirname(orig_name) 215 dir_name = dir_name.relative_path_from(Dir.pwd) 216 base_name = File.basename(orig_name) 217 parts = base_name.split('.') 218 # h = Digest::MD5.new.update(orig_name).to_s 219 h = Digest::MD5.new.update(orig_name).to_s.slice(0,4) 220 parts[0] += '_' + h 221 newname = parts.join('.') 222 full_newname = File.join(dir_name, newname) 223 if not File.exists?(full_newname) 224 begin # it is ok to fail here, we just don't get hashing 225 FileUtils.cp(orig_name, full_newname) 226 newargs << full_newname 227 to_delete << full_newname 228 rescue 229 end 230 end 231 end 232 203 233 if MRUBY_BUILD_HOST_IS_CYGWIN 204 _run archive_options, { :outfile => cygwin_filename(outfile), :objs => cygwin_filename(objfiles).join(' ') } 205 else 206 _run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).join(' ') } 234 _run archive_options, { :outfile => cygwin_filename(outfile), :objs => cygwin_filename(newargs).join(' '), :outdir => File.dirname(outfile), :outfilebase => File.basename(outfile, ".*") } 235 else 236 _run archive_options, { :outfile => filename(outfile), :objs => filename(newargs).join(' '), :outdir => File.dirname(outfile), :outfilebase => File.basename(outfile, ".*") } 237 end 238 239 to_delete.each do |d| 240 FileUtils.rm(d) 207 241 end 208 242 end
Note:
See TracChangeset
for help on using the changeset viewer.