Mercurial > projects > dwt2
view rakefile @ 1:0e8eed4cac02
add rakefile
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 02 Mar 2009 14:44:56 +0100 |
parents | |
children | 4c0057e71936 |
line wrap: on
line source
# # RSP : Create a response file for the compiler, which lists all files from the packages # Compile and create Headers # Move objects to unique names # require 'find' require 'fileutils' DMD="dmd.exe" LOCALOBJDIR="obj" OBJDIR="obj" DIMPDIR="imp" RSPNAME="rsp" class String def to_path self.gsub( '/', '\\' ); end end def buildTree( basedir, srcdir, resdir ) objdir_abs = File.expand_path( OBJDIR ) dimpdir_abs = File.expand_path( DIMPDIR ) resdir_abs = File.expand_path( File.join( basedir, resdir )) srcdir_abs = File.expand_path( File.join( basedir, srcdir )) rspfile_abs = File.expand_path( RSPNAME ) FileUtils.mkdir_p dimpdir_abs FileUtils.mkdir_p objdir_abs puts "Create response file" rsp = File.new( rspfile_abs, "w+" ) rsp.puts "-H" rsp.puts "-I#{srcdir_abs.to_path}" rsp.puts "-I#{dimpdir_abs.to_path}" rsp.puts "-J#{resdir_abs.to_path}" rsp.puts "-c" rsp.puts "-op" rsp.puts "-version=TANGOSVN" Find.find( srcdir_abs ) do |path| if path =~ /\.d$/ then rsp.puts path.to_path end end rsp.close Dir.chdir(basedir) do puts "Compile" sh "#{DMD} @#{rspfile_abs.to_path}" do |ok, res| raise "compile error" unless ok end end puts "Move D Headers" Find.find( srcdir_abs ) do |path| if FileTest.file?(path) && path =~ /\.di$/ then trgfile = File.join( dimpdir_abs, path[ srcdir_abs.length+1 .. -1 ]) FileUtils.mkdir_p File.dirname(trgfile) FileUtils.mv path, trgfile end end puts "Move Objects" srcdirparts = split_all( srcdir_abs ).length Find.find( srcdir_abs ) do |path| if FileTest.file?(path) && path =~ /\.o(bj)?$/ then trgfile = split_all( path )[ srcdirparts .. -1 ].join( "-" ) FileUtils.mv path, File.join( objdir_abs, trgfile ) end end end desc "Build Java" task :java do buildTree( "java", "src", "res" ) end desc "Build SWT" task :swt do buildTree( "org.eclipse.swt.win32.win32.x86", "src", "res" ) end