annotate rakefile @ 29:4e5843b771cc

First snippets buildable on windows
author Frank Benoit <benoit@tionex.de>
date Sun, 22 Mar 2009 19:55:00 +0100
parents 69b1fa94a4a8
children 93b0e7382fd5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 #
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 # RSP : Create a response file for the compiler, which lists all files from the packages
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 # Compile and create Headers
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 # Move objects to unique names
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 #
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 require 'find'
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 require 'fileutils'
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8
8
2847134a5fc0 more tango abstraction
Frank Benoit <benoit@tionex.de>
parents: 3
diff changeset
9 #DMD="c:\\project\\dmd-2.026\\dmd\\windows\\bin\\dmd.exe"
2847134a5fc0 more tango abstraction
Frank Benoit <benoit@tionex.de>
parents: 3
diff changeset
10 DMD="dmd"
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
11 OBJDIR =File.expand_path("obj")
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
12 DIMPDIR =File.expand_path("imp")
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
13 LIBDIR =File.expand_path("lib")
29
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
14 BINDIR =File.expand_path("bin")
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
15 RSPNAME =File.expand_path("rsp")
27
1bf55a6eb092 Renamed java tree to base
Frank Benoit <benoit@tionex.de>
parents: 25
diff changeset
16 ALL_RESDIRS= [ "base/res", "res" ]
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
17
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
18 LOG_STDOUT = File.expand_path("olog.txt")
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
19 LOG_STDERR = File.expand_path("elog.txt")
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
20
25
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
21 def isWindows
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
22 Config::CONFIG['host_os'] =~ /mswin/
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
23 end
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
24
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
25 if isWindows
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
26 ALL_RESDIRS << "org.eclipse.swt.win32.win32.x86/res"
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
27 LIBEXT = ".lib"
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
28 OBJEXT = ".obj"
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
29 EXEEXT = ".exe"
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
30 else
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
31 ALL_RESDIRS << "org.eclipse.swt.gtk.linux.x86/res"
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
32 LIBEXT = ".a"
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
33 OBJEXT = ".o"
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
34 EXEEXT = ""
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
35 end
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 class String
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 def to_path
25
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
39 if isWindows
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
40 self.gsub( '/', '\\' );
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
41 else
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
42 self
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
43 end
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
47 def buildTree( basedir, srcdir, resdir, dcargs="", libname="" )
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
48 puts "Building #{basedir}/#{srcdir}"
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 resdir_abs = File.expand_path( File.join( basedir, resdir ))
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 srcdir_abs = File.expand_path( File.join( basedir, srcdir ))
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
53 FileUtils.mkdir_p DIMPDIR
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
54 FileUtils.mkdir_p OBJDIR
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
56 rsp = File.new( RSPNAME, "w+" )
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 rsp.puts "-H"
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 rsp.puts "-I#{srcdir_abs.to_path}"
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
59 rsp.puts "-I#{DIMPDIR.to_path}"
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 rsp.puts "-J#{resdir_abs.to_path}"
16
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
61 if dcargs.size > 0 then
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
62 rsp.puts dcargs
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
63 end
3
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
64 ALL_RESDIRS.each do | dir |
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
65 rsp.puts "-J#{File.expand_path(dir).to_path}"
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
66 end
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 rsp.puts "-c"
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 rsp.puts "-op"
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 Find.find( srcdir_abs ) do |path|
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 if path =~ /\.d$/ then
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 rsp.puts path.to_path
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 rsp.close
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 Dir.chdir(basedir) do
25
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
77 if isWindows
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
78 cmd = "#{DMD} @#{RSPNAME.to_path}"
25
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
79 else
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
80 cmd = "cat #{RSPNAME.to_path} | xargs #{DMD}"
25
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
81 end
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
82 sh cmd, :verbose => false do |ok, res|
3
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
83 if !ok then
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
84 Find.find( srcdir_abs ) do |path|
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
85 if FileTest.file?(path) && path =~ /\.di$/ then
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
86 FileUtils.rm path
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
87 end
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
88 end
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
89
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
90 raise "compile error"
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
91 end
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 Find.find( srcdir_abs ) do |path|
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 if FileTest.file?(path) && path =~ /\.di$/ then
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
97 trgfile = File.join( DIMPDIR, path[ srcdir_abs.length+1 .. -1 ])
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 FileUtils.mkdir_p File.dirname(trgfile)
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 FileUtils.mv path, trgfile
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
103 libobjs = Array.new
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 srcdirparts = split_all( srcdir_abs ).length
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 Find.find( srcdir_abs ) do |path|
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 if FileTest.file?(path) && path =~ /\.o(bj)?$/ then
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 trgfile = split_all( path )[ srcdirparts .. -1 ].join( "-" )
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
108 FileUtils.mv path, File.join( OBJDIR, trgfile )
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
109 libobjs << File.join( OBJDIR, trgfile )
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
110 end
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
111 end
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
112
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
113 if libname.size == 0
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
114 libname = basedir
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
115 end
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
116 createLib( libobjs, libname )
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
117 end
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
118
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
119 def createLib( libobjs, name )
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
120 FileUtils.mkdir_p LIBDIR.to_path
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
121 rsp = File.new( RSPNAME, "w+" )
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
122 rsp.puts "-p512 -n -c #{LIBDIR}/#{name}#{LIBEXT}"
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
123 libobjs.each do |obj|
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
124 rsp.puts obj.to_path
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
125 end
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
126 rsp.close
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
127 cmd = "lib @#{RSPNAME} > #{LOG_STDOUT}"
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
128 sh cmd, :verbose => false do |ok, res|
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
129 if !ok then
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
130 raise "librarian error"
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135
3
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
136 desc "Clean"
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
137 task :clean do
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
138 puts "Cleaning"
3
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
139 FileUtils.rm_rf DIMPDIR
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
140 FileUtils.rm_rf OBJDIR
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
141 FileUtils.rm_rf LIBDIR
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
142 FileUtils.rm RSPNAME
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
143 FileUtils.rm LOG_STDOUT
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
144 FileUtils.rm LOG_STDERR
3
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
145 end
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
146
27
1bf55a6eb092 Renamed java tree to base
Frank Benoit <benoit@tionex.de>
parents: 25
diff changeset
147 desc "Build Base (Java Environment and Helpers)"
1bf55a6eb092 Renamed java tree to base
Frank Benoit <benoit@tionex.de>
parents: 25
diff changeset
148 task :base do
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
149 buildTree( "base", "src", "res", "", "dwt-base" )
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 desc "Build SWT"
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 task :swt do
25
f713da8bc051 Added SWT Linux GTK
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
154 if isWindows
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
155 buildTree( "org.eclipse.swt.win32.win32.x86", "src", "res" )
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
156 else
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
157 buildTree( "org.eclipse.swt.gtk.linux.x86", "src", "res" )
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
158 end
1
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 end
0e8eed4cac02 add rakefile
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
161 desc "Build Equinox"
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
162 task :equinox do
16
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
163 buildTree( "org.eclipse.osgi", "src", "res" )
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
164 buildTree( "org.eclipse.osgi", "supplement/src", "res" )
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
165 buildTree( "org.eclipse.equinox.common", "src", "res" )
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
166 end
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
167
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
168 desc "Build Eclipse Core"
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
169 task :core do
16
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
170 buildTree( "org.eclipse.core.runtime", "src", "res" )
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
171 buildTree( "org.eclipse.core.commands", "src", "res" )
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
172 buildTree( "org.eclipse.core.jobs", "src", "res" )
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
173 end
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
174
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
175 desc "Build JFace"
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
176 task :jface do
16
dbfb303e8fb0 first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents: 12
diff changeset
177 buildTree( "org.eclipse.jface", "src", "res" )
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
178 end
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
179
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
180 desc "Build JFace.Text"
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
181 task :jfacetext do
12
bc29606a740c Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents: 8
diff changeset
182 buildTree( "org.eclipse.text", "src", "res" )
28
69b1fa94a4a8 Added SWT snippets
Frank Benoit <benoit@tionex.de>
parents: 27
diff changeset
183 buildTree( "org.eclipse.jface.text", "projection", "res", "-Isrc", "org.eclipse.jface.text.projection" )
12
bc29606a740c Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents: 8
diff changeset
184 buildTree( "org.eclipse.jface.text", "src", "res" )
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
185 end
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
186
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
187 desc "Build UI Forms"
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
188 task :uiforms do
12
bc29606a740c Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents: 8
diff changeset
189 buildTree( "org.eclipse.ui.forms", "src", "res" )
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
190 end
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
191
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
192 desc "Build Draw2D"
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
193 task :draw2d do
12
bc29606a740c Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents: 8
diff changeset
194 buildTree( "org.eclipse.draw2d", "src", "res" )
3
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
195 end
4c0057e71936 Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents: 1
diff changeset
196
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
197 desc "Build ALL"
27
1bf55a6eb092 Renamed java tree to base
Frank Benoit <benoit@tionex.de>
parents: 25
diff changeset
198 task :all => [ :base, :swt, :equinox, :core, :jface, :jfacetext, :uiforms,
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
199 :draw2d ]
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
200
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 20
diff changeset
201 desc "Clean, then build ALL"
20
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
202 task :default => [ :clean, :all ]
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
203
dccb717aa902 Remove more tango imports
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
204
29
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
205 desc "Build SWT Snippet Collection"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
206 task :swtsnippets do
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
207
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
208 snps_browser = [ "Snippet128", "Snippet136" ]
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
209 snps_opengl = [ "Snippet174", "Snippet195" ]
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
210
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
211 snps_exclude = snps_browser + snps_opengl
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
212 allsnippets = FileList[ File.join("org.eclipse.swt.snippets", "src", "**/Snippet*.d" )]
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
213 allsnippets.each do | snp |
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
214 puts "Building #{snp}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
215 if snp =~ /.*(Snippet\w+)\.d$/
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
216 snpname = $1
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
217 if !snps_exclude.include? snpname
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
218 buildApp( "org.eclipse.swt.snippets", "src", "res", "", snpname )
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
219 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
220 else
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
221 puts snp
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
222 raise "Name does not match"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
223 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
224 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
225 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
226
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
227 def buildApp( basedir, srcdir, resdir, dflags, appname, filelist=nil )
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
228 if filelist == nil
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
229 filelist = FileList[ "**/#{appname}.d" ]
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
230 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
231
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
232 srcdir_abs = File.expand_path( File.join( basedir, srcdir))
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
233 resdir_abs = File.expand_path( File.join( basedir, resdir))
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
234
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
235 rsp = File.new( RSPNAME, "w+" )
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
236 rsp.puts "-I#{srcdir_abs.to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
237 rsp.puts "-I#{DIMPDIR.to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
238 rsp.puts "-J#{resdir_abs.to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
239 if dflags.size > 0 then
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
240 rsp.puts dflags
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
241 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
242 ALL_RESDIRS.each do | dir |
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
243 rsp.puts "-J#{File.expand_path(dir).to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
244 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
245 rsp.print "-L"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
246 rsp.print "+advapi32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
247 rsp.print "+comctl32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
248 rsp.print "+comdlg32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
249 rsp.print "+gdi32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
250 rsp.print "+kernel32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
251 rsp.print "+shell32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
252 rsp.print "+ole32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
253 rsp.print "+oleaut32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
254 rsp.print "+olepro32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
255 rsp.print "+oleacc"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
256 rsp.print "+user32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
257 rsp.print "+usp10"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
258 rsp.print "+msimg32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
259 rsp.print "+opengl32"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
260 rsp.print "+shlwapi"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
261 rsp.print "+tango-user-dmd.lib"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
262 rsp.print "+zlib.lib"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
263 rsp.print "+dwt-base.lib"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
264 rsp.print "+org.eclipse.swt.win32.win32.x86.lib"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
265 rsp.print "+#{LIBDIR.to_path}\\"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
266 rsp.puts
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
267
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
268 rsp.puts "-op"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
269 rsp.puts "-od#{OBJDIR.to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
270 applfile = File.join(BINDIR,appname+EXEEXT)
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
271 rsp.puts "-of#{applfile.to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
272 filelist.each do |path|
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
273 rsp.puts File.expand_path(path).to_path
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
274 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
275 rsp.close
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
276
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
277 Dir.chdir(basedir) do
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
278 if isWindows
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
279 cmd = "#{DMD} @#{RSPNAME.to_path}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
280 else
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
281 cmd = "cat #{RSPNAME.to_path} | xargs #{DMD}"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
282 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
283 sh cmd, :verbose => false do |ok, res|
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
284 if !ok then
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
285 raise "compile error"
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
286 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
287 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
288 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
289
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
290 end
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
291
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
292
4e5843b771cc First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents: 28
diff changeset
293