Mercurial > projects > dwt2
annotate rakefile @ 36:d46287db17ed
rakefile reorg, swt win phobosification
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Tue, 24 Mar 2009 08:48:41 +0100 |
parents | a8a838017920 |
children | 9f32c409fe27 |
rev | line source |
---|---|
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
1 ########################################################################## |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
2 # DWT2 |
1 | 3 # |
4 require 'find' | |
5 require 'fileutils' | |
6 | |
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
7 ########################################################################## |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
8 # Helpers |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
9 # |
1 | 10 class String |
11 def to_path | |
25 | 12 if isWindows |
13 self.gsub( '/', '\\' ); | |
14 else | |
15 self | |
16 end | |
1 | 17 end |
18 end | |
19 | |
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
20 def isWindows |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
21 Config::CONFIG['host_os'] =~ /mswin/ |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
22 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
23 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
24 ########################################################################## |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
25 # Constants |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
26 # |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
27 DMD = "dmd" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
28 OBJDIR = File.expand_path("obj") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
29 DIMPDIR = File.expand_path("imp") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
30 LIBDIR = File.expand_path("lib") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
31 BINDIR = File.expand_path("bin") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
32 RSPNAME = File.expand_path("rsp") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
33 ALL_RESDIRS = [ "base/res", "res" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
34 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
35 LOG_STDOUT = File.expand_path("olog.txt") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
36 LOG_STDERR = File.expand_path("elog.txt") |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
37 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
38 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
39 if isWindows |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
40 BASEDIR_SWT = "org.eclipse.swt.win32.win32.x86" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
41 LIBEXT = ".lib" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
42 OBJEXT = ".obj" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
43 EXEEXT = ".exe" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
44 else |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
45 BASEDIR_SWT = "org.eclipse.swt.gtk.linux.x86" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
46 LIBEXT = ".a" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
47 OBJEXT = ".o" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
48 EXEEXT = "" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
49 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
50 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
51 ALL_RESDIRS << File.join(BASEDIR_SWT, "res" ) |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
52 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
53 if isWindows |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
54 LIBNAMES_BASIC = [ "advapi32", "comctl32", "comdlg32", "gdi32", "kernel32", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
55 "shell32", "ole32", "oleaut32", "olepro32", "oleacc", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
56 "user32", "usp10", "msimg32", "opengl32", "shlwapi", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
57 "dwt-base" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
58 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
59 else |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
60 LIBNAMES_BASIC = [ "gtk-x11-2.0", "gdk-x11-2.0", "atk-1.0", "gdk_pixbuf-2.0", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
61 "gthread-2.0", "pangocairo-1.0", "fontconfig", "Xtst", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
62 "Xext", "Xrender", "Xinerama", "Xi", "Xrandr", "Xcursor", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
63 "Xcomposite", "Xdamage", "X11", "Xfixes", "pango-1.0", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
64 "gobject-2.0", "gmodule-2.0", "dl", "glib-2.0", "cairo", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
65 "dwt-base" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
66 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
67 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
68 LIBNAMES_SWT = [ BASEDIR_SWT ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
69 LIBNAMES_EQUINOX = [ "org.eclipse.osgi", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
70 "org.eclipse.osgi.supplement", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
71 "org.eclipse.equinox.common" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
72 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
73 LIBNAMES_CORE = [ "org.eclipse.core.runtime", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
74 "org.eclipse.core.commands", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
75 "org.eclipse.core.jobs" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
76 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
77 LIBNAMES_JFACE = [ "org.eclipse.jface" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
78 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
79 LIBNAMES_JFACETEXT = [ "org.eclipse.text", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
80 "org.eclipse.jface.text.projection", |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
81 "org.eclipse.jface.text", ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
82 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
83 LIBNAMES_UIFORMS = [ "org.eclipse.ui.forms" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
84 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
85 LIBNAMES_DRAW2D = [ "org.eclipse.draw2d" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
86 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
87 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
88 ########################################################################## |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
89 # Routines |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
90 # |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
91 |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
92 def buildTree( basedir, srcdir, resdir, dcargs=nil, libname=nil ) |
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
93 if libname == nil |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
94 libname = basedir |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
95 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
96 puts "Building #{libname}" |
1 | 97 |
98 resdir_abs = File.expand_path( File.join( basedir, resdir )) | |
99 srcdir_abs = File.expand_path( File.join( basedir, srcdir )) | |
100 | |
28 | 101 FileUtils.mkdir_p DIMPDIR |
102 FileUtils.mkdir_p OBJDIR | |
1 | 103 |
28 | 104 rsp = File.new( RSPNAME, "w+" ) |
1 | 105 rsp.puts "-H" |
106 rsp.puts "-I#{srcdir_abs.to_path}" | |
28 | 107 rsp.puts "-I#{DIMPDIR.to_path}" |
1 | 108 rsp.puts "-J#{resdir_abs.to_path}" |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
109 if dcargs != nil |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
110 rsp.puts dcargs |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
111 end |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
112 ALL_RESDIRS.each do | dir | |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
113 rsp.puts "-J#{File.expand_path(dir).to_path}" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
114 end |
1 | 115 rsp.puts "-c" |
116 rsp.puts "-op" | |
117 Find.find( srcdir_abs ) do |path| | |
118 if path =~ /\.d$/ then | |
119 rsp.puts path.to_path | |
120 end | |
121 end | |
122 rsp.close | |
123 | |
124 Dir.chdir(basedir) do | |
25 | 125 if isWindows |
28 | 126 cmd = "#{DMD} @#{RSPNAME.to_path}" |
25 | 127 else |
28 | 128 cmd = "cat #{RSPNAME.to_path} | xargs #{DMD}" |
25 | 129 end |
130 sh cmd, :verbose => false do |ok, res| | |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
131 if !ok then |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
132 Find.find( srcdir_abs ) do |path| |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
133 if FileTest.file?(path) && path =~ /\.di$/ then |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
134 FileUtils.rm path |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
135 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
136 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
137 |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
138 raise "compile error" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
139 end |
1 | 140 end |
141 end | |
142 | |
143 Find.find( srcdir_abs ) do |path| | |
144 if FileTest.file?(path) && path =~ /\.di$/ then | |
28 | 145 trgfile = File.join( DIMPDIR, path[ srcdir_abs.length+1 .. -1 ]) |
1 | 146 FileUtils.mkdir_p File.dirname(trgfile) |
147 FileUtils.mv path, trgfile | |
148 end | |
149 end | |
150 | |
28 | 151 libobjs = Array.new |
1 | 152 srcdirparts = split_all( srcdir_abs ).length |
153 Find.find( srcdir_abs ) do |path| | |
154 if FileTest.file?(path) && path =~ /\.o(bj)?$/ then | |
155 trgfile = split_all( path )[ srcdirparts .. -1 ].join( "-" ) | |
28 | 156 FileUtils.mv path, File.join( OBJDIR, trgfile ) |
157 libobjs << File.join( OBJDIR, trgfile ) | |
158 end | |
159 end | |
160 | |
161 createLib( libobjs, libname ) | |
162 end | |
163 | |
164 def createLib( libobjs, name ) | |
165 FileUtils.mkdir_p LIBDIR.to_path | |
166 rsp = File.new( RSPNAME, "w+" ) | |
167 rsp.puts "-p512 -n -c #{LIBDIR}/#{name}#{LIBEXT}" | |
168 libobjs.each do |obj| | |
169 rsp.puts obj.to_path | |
170 end | |
171 rsp.close | |
172 cmd = "lib @#{RSPNAME} > #{LOG_STDOUT}" | |
173 sh cmd, :verbose => false do |ok, res| | |
174 if !ok then | |
175 raise "librarian error" | |
1 | 176 end |
177 end | |
178 | |
179 end | |
180 | |
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
181 def buildApp( basedir, srcdir, resdir, dflags, appname, filelist, libnames ) |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
182 puts "Building #{basedir}[#{appname}]" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
183 if filelist == nil |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
184 filelist = FileList[ "**/#{appname}.d" ] |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
185 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
186 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
187 srcdir_abs = File.expand_path( File.join( basedir, srcdir)) |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
188 resdir_abs = File.expand_path( File.join( basedir, resdir)) |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
189 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
190 rsp = File.new( RSPNAME, "w+" ) |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
191 rsp.puts "-I#{srcdir_abs.to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
192 rsp.puts "-I#{DIMPDIR.to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
193 rsp.puts "-J#{resdir_abs.to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
194 if dflags.size > 0 then |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
195 rsp.puts dflags |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
196 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
197 ALL_RESDIRS.each do | dir | |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
198 rsp.puts "-J#{File.expand_path(dir).to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
199 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
200 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
201 rsp.puts "-L/NOM" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
202 libnames.each do | libname | |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
203 rsp.puts "-L+#{libname}#{LIBEXT}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
204 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
205 rsp.puts "-L+tango-user-dmd.lib" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
206 rsp.puts "-L+zlib.lib" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
207 rsp.puts "-L+dwt-base.lib" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
208 rsp.puts "-L+#{BASEDIR_SWT}.lib" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
209 rsp.puts "-L+#{LIBDIR.to_path}\\" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
210 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
211 rsp.puts "-op" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
212 rsp.puts "-od#{OBJDIR.to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
213 applfile = File.join(BINDIR,appname+EXEEXT) |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
214 rsp.puts "-of#{applfile.to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
215 filelist.each do |path| |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
216 rsp.puts File.expand_path(path).to_path |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
217 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
218 rsp.close |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
219 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
220 Dir.chdir(basedir) do |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
221 if isWindows |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
222 cmd = "#{DMD} @#{RSPNAME.to_path}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
223 else |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
224 cmd = "cat #{RSPNAME.to_path} | xargs #{DMD}" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
225 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
226 sh cmd, :verbose => false do |ok, res| |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
227 if !ok then |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
228 raise "compile error" |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
229 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
230 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
231 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
232 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
233 end |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
234 |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
235 ########################################################################## |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
236 # Targets |
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
237 # |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
238 desc "Clean" |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
239 task :clean do |
20 | 240 puts "Cleaning" |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
241 FileUtils.rm_rf DIMPDIR |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
242 FileUtils.rm_rf OBJDIR |
28 | 243 FileUtils.rm_rf LIBDIR |
33
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
244 FileUtils.rm RSPNAME, :force => true |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
245 FileUtils.rm LOG_STDOUT, :force => true |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
246 FileUtils.rm LOG_STDERR, :force => true |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
247 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
248 |
27 | 249 desc "Build Base (Java Environment and Helpers)" |
250 task :base do | |
28 | 251 buildTree( "base", "src", "res", "", "dwt-base" ) |
1 | 252 end |
253 | |
254 desc "Build SWT" | |
255 task :swt do | |
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
256 buildTree( BASEDIR_SWT, "src", "res" ) |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
257 end |
1 | 258 |
20 | 259 desc "Build Equinox" |
260 task :equinox do | |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
261 buildTree( "org.eclipse.osgi", "src", "res" ) |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
262 buildTree( "org.eclipse.osgi", "supplement/src", "res", nil, "org.eclipse.osgi.supplement") |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
263 buildTree( "org.eclipse.equinox.common", "src", "res" ) |
20 | 264 end |
265 | |
266 desc "Build Eclipse Core" | |
267 task :core do | |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
268 buildTree( "org.eclipse.core.runtime", "src", "res" ) |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
269 buildTree( "org.eclipse.core.commands", "src", "res" ) |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
270 buildTree( "org.eclipse.core.jobs", "src", "res" ) |
20 | 271 end |
272 | |
273 desc "Build JFace" | |
274 task :jface do | |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
275 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
|
276 end |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
20
diff
changeset
|
277 |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
20
diff
changeset
|
278 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
|
279 task :jfacetext do |
12
bc29606a740c
Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents:
8
diff
changeset
|
280 buildTree( "org.eclipse.text", "src", "res" ) |
28 | 281 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
|
282 buildTree( "org.eclipse.jface.text", "src", "res" ) |
20 | 283 end |
284 | |
285 desc "Build UI Forms" | |
286 task :uiforms do | |
12
bc29606a740c
Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents:
8
diff
changeset
|
287 buildTree( "org.eclipse.ui.forms", "src", "res" ) |
20 | 288 end |
289 | |
290 desc "Build Draw2D" | |
291 task :draw2d do | |
12
bc29606a740c
Added dwt-addons in original directory structure of eclipse.org
Frank Benoit <benoit@tionex.de>
parents:
8
diff
changeset
|
292 buildTree( "org.eclipse.draw2d", "src", "res" ) |
3
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
293 end |
4c0057e71936
Made a class for StringBuffer
Frank Benoit <benoit@tionex.de>
parents:
1
diff
changeset
|
294 |
20 | 295 desc "Build ALL" |
27 | 296 task :all => [ :base, :swt, :equinox, :core, :jface, :jfacetext, :uiforms, |
36
d46287db17ed
rakefile reorg, swt win phobosification
Frank Benoit <benoit@tionex.de>
parents:
34
diff
changeset
|
297 :draw2d, :swtsnippets, :jfacesnippets ] |
20 | 298 |
21
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
20
diff
changeset
|
299 desc "Clean, then build ALL" |
20 | 300 task :default => [ :clean, :all ] |
301 | |
302 | |
29
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
303 desc "Build SWT Snippet Collection" |
30
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
304 task :swtsnippets, :explicit_snp do | t, args | |
29
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
305 |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
306 libnames = LIBNAMES_BASIC + LIBNAMES_SWT |
29
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
307 snps_browser = [ "Snippet128", "Snippet136" ] |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
308 snps_opengl = [ "Snippet174", "Snippet195" ] |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
309 |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
310 snps_exclude = snps_browser + snps_opengl |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
311 allsnippets = FileList[ File.join("org.eclipse.swt.snippets", "src", "**/Snippet*.d" )] |
30
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
312 if args.explicit_snp != nil |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
313 puts "Building #{args.explicit_snp}" |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
314 buildApp( "org.eclipse.swt.snippets", "src", "res", "", args.explicit_snp, nil, libnames ) |
30
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
315 else |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
316 allsnippets.each do | snp | |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
317 puts "Building #{snp}" |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
318 if snp =~ /.*(Snippet\w+)\.d$/ |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
319 snpname = $1 |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
320 if !snps_exclude.include? snpname |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
321 buildApp( "org.eclipse.swt.snippets", "src", "res", "", snpname, nil, libnames ) |
30
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
322 end |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
323 else |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
324 puts snp |
93b0e7382fd5
SWT Snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
29
diff
changeset
|
325 raise "Name does not match" |
29
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
326 end |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
327 end |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
328 end |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
329 end |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
330 |
33
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
331 desc "Build JFace Snippet Collection" |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
332 task :jfacesnippets, :explicit_snp do | t, args | |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
333 |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
334 libnames = LIBNAMES_BASIC + LIBNAMES_SWT + LIBNAMES_EQUINOX + LIBNAMES_CORE + LIBNAMES_JFACE |
33
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
335 snps_exclude = [] |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
336 allsnippets = FileList[ File.join("org.eclipse.jface.snippets", "EclipseJfaceSnippets", "**/*.d" )] |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
337 if args.explicit_snp != nil |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
338 puts "Building #{args.explicit_snp}" |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
339 buildApp( "org.eclipse.jface.snippets", "src", "res", "", args.explicit_snp, nil, libnames ) |
33
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
340 else |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
341 allsnippets.each do | snp | |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
342 if snp =~ /.*[\\\/](\w+)\.d$/ |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
343 snpname = $1 |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
344 puts "Building #{snpname}" |
33
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
345 if !snps_exclude.include? snpname |
34
a8a838017920
All JFace snippets build on windows
Frank Benoit <benoit@tionex.de>
parents:
33
diff
changeset
|
346 buildApp( "org.eclipse.jface.snippets", "src", "res", "", snpname, nil, libnames ) |
33
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
347 end |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
348 else |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
349 puts snp |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
350 raise "Name does not match" |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
351 end |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
352 end |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
353 end |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
354 end |
712f3c7f7660
make clean work without require existing files
Frank Benoit <benoit@tionex.de>
parents:
30
diff
changeset
|
355 |
29
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
356 |
4e5843b771cc
First snippets buildable on windows
Frank Benoit <benoit@tionex.de>
parents:
28
diff
changeset
|
357 |