Mercurial > projects > dwt2
annotate rakefile @ 3:4c0057e71936
Made a class for StringBuffer
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 04 Mar 2009 22:35:46 +0100 |
parents | 0e8eed4cac02 |
children | 2847134a5fc0 |
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 | |
9 DMD="dmd.exe" | |
10 LOCALOBJDIR="obj" | |
11 OBJDIR="obj" | |
12 DIMPDIR="imp" | |
13 RSPNAME="rsp" | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
14 ALL_RESDIRS= [ "java/res", "org.eclipse.swt.win32.win32.x86/res" ] |
1 | 15 |
16 class String | |
17 def to_path | |
18 self.gsub( '/', '\\' ); | |
19 end | |
20 end | |
21 | |
22 def buildTree( basedir, srcdir, resdir ) | |
23 | |
24 objdir_abs = File.expand_path( OBJDIR ) | |
25 dimpdir_abs = File.expand_path( DIMPDIR ) | |
26 resdir_abs = File.expand_path( File.join( basedir, resdir )) | |
27 srcdir_abs = File.expand_path( File.join( basedir, srcdir )) | |
28 rspfile_abs = File.expand_path( RSPNAME ) | |
29 | |
30 FileUtils.mkdir_p dimpdir_abs | |
31 FileUtils.mkdir_p objdir_abs | |
32 | |
33 puts "Create response file" | |
34 rsp = File.new( rspfile_abs, "w+" ) | |
35 rsp.puts "-H" | |
36 rsp.puts "-I#{srcdir_abs.to_path}" | |
37 rsp.puts "-I#{dimpdir_abs.to_path}" | |
38 rsp.puts "-J#{resdir_abs.to_path}" | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
39 ALL_RESDIRS.each do | dir | |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
40 rsp.puts "-J#{File.expand_path(dir).to_path}" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
41 end |
1 | 42 rsp.puts "-c" |
43 rsp.puts "-op" | |
44 rsp.puts "-version=TANGOSVN" | |
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 |