Mercurial > projects > dwt2
annotate rakefile @ 8:2847134a5fc0
more tango abstraction
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 05 Mar 2009 15:12:35 +0100 |
parents | 4c0057e71936 |
children | bc29606a740c |
rev | line source |
---|---|
1 | 1 # |
2 # RSP : Create a response file for the compiler, which lists all files from the packages | |
3 # Compile and create Headers | |
4 # Move objects to unique names | |
5 # | |
6 require 'find' | |
7 require 'fileutils' | |
8 | |
8 | 9 #DMD="c:\\project\\dmd-2.026\\dmd\\windows\\bin\\dmd.exe" |
10 DMD="dmd" | |
1 | 11 LOCALOBJDIR="obj" |
12 OBJDIR="obj" | |
13 DIMPDIR="imp" | |
14 RSPNAME="rsp" | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
15 ALL_RESDIRS= [ "java/res", "org.eclipse.swt.win32.win32.x86/res" ] |
1 | 16 |
17 class String | |
18 def to_path | |
19 self.gsub( '/', '\\' ); | |
20 end | |
21 end | |
22 | |
23 def buildTree( basedir, srcdir, resdir ) | |
24 | |
25 objdir_abs = File.expand_path( OBJDIR ) | |
26 dimpdir_abs = File.expand_path( DIMPDIR ) | |
27 resdir_abs = File.expand_path( File.join( basedir, resdir )) | |
28 srcdir_abs = File.expand_path( File.join( basedir, srcdir )) | |
29 rspfile_abs = File.expand_path( RSPNAME ) | |
30 | |
31 FileUtils.mkdir_p dimpdir_abs | |
32 FileUtils.mkdir_p objdir_abs | |
33 | |
34 puts "Create response file" | |
35 rsp = File.new( rspfile_abs, "w+" ) | |
36 rsp.puts "-H" | |
37 rsp.puts "-I#{srcdir_abs.to_path}" | |
38 rsp.puts "-I#{dimpdir_abs.to_path}" | |
39 rsp.puts "-J#{resdir_abs.to_path}" | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
40 ALL_RESDIRS.each do | dir | |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
41 rsp.puts "-J#{File.expand_path(dir).to_path}" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
42 end |
1 | 43 rsp.puts "-c" |
44 rsp.puts "-op" | |
45 Find.find( srcdir_abs ) do |path| | |
46 if path =~ /\.d$/ then | |
47 rsp.puts path.to_path | |
48 end | |
49 end | |
50 rsp.close | |
51 | |
52 Dir.chdir(basedir) do | |
53 puts "Compile" | |
54 sh "#{DMD} @#{rspfile_abs.to_path}" do |ok, res| | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
55 |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
56 if !ok then |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
57 Find.find( srcdir_abs ) do |path| |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
58 if FileTest.file?(path) && path =~ /\.di$/ then |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
59 FileUtils.rm path |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
60 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
61 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
62 |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
63 raise "compile error" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
64 end |
1 | 65 end |
66 end | |
67 | |
68 puts "Move D Headers" | |
69 Find.find( srcdir_abs ) do |path| | |
70 if FileTest.file?(path) && path =~ /\.di$/ then | |
71 trgfile = File.join( dimpdir_abs, path[ srcdir_abs.length+1 .. -1 ]) | |
72 FileUtils.mkdir_p File.dirname(trgfile) | |
73 FileUtils.mv path, trgfile | |
74 end | |
75 end | |
76 | |
77 puts "Move Objects" | |
78 srcdirparts = split_all( srcdir_abs ).length | |
79 Find.find( srcdir_abs ) do |path| | |
80 if FileTest.file?(path) && path =~ /\.o(bj)?$/ then | |
81 trgfile = split_all( path )[ srcdirparts .. -1 ].join( "-" ) | |
82 FileUtils.mv path, File.join( objdir_abs, trgfile ) | |
83 end | |
84 end | |
85 | |
86 end | |
87 | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
88 desc "Clean" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
89 task :clean do |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
90 FileUtils.rm_rf DIMPDIR |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
91 FileUtils.rm_rf OBJDIR |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
92 FileUtils.rm_rf RSPNAME |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
93 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
94 |
1 | 95 desc "Build Java" |
96 task :java do | |
97 buildTree( "java", "src", "res" ) | |
98 end | |
99 | |
100 desc "Build SWT" | |
101 task :swt do | |
102 buildTree( "org.eclipse.swt.win32.win32.x86", "src", "res" ) | |
103 end | |
104 | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
105 desc "Build jface" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
106 task :jface do |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
107 buildTree( "org.eclipse.jface", "src", "res" ) |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
108 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
109 |