System.Drawing: added email to icon and test file headers
[mono.git] / mcs / tools / corcompare / gen-infos.rb
1 #!/usr/bin/env ruby
2
3 require 'ftools'
4
5 $gac = 'C:/WINDOWS/assembly/GAC_MSIL'
6 $fx =  'C:/WINDOWS/Microsoft.NET/Framework'
7
8 $fx1_1 = File.join $fx, "v1.1.4322"
9 $fx2_0 = File.join $fx, "v2.0.50727"
10 $fx3_0 = 'C:/Program Files/Reference Assemblies/Microsoft/Framework/v3.0'
11 $fx3_5 = 'C:/Program Files/Reference Assemblies/Microsoft/Framework/v3.5'
12 $fx4_0 = File.join $fx, "v4.0.30319"
13 $fx4_0_wpf = File.join $fx4_0, "WPF"
14 $fx4_5 = File.join $fx, "v4.0.30319"
15 $fx4_5_wpf = File.join $fx4_0, "WPF"
16 $sl2_0 = 'C:/Program Files/Microsoft Silverlight/2.0.40115.0'
17 $sl2_0sdk = 'C:/Program Files/Microsoft SDKs/Silverlight/v2.0/Libraries/Client/'
18 $sl4 = 'C:/Program Files/Microsoft Silverlight/4.0.51204.0'
19 $sl4_sdk = 'C:/Program Files/Microsoft SDKs/Silverlight/v4.0/Libraries/Client'
20
21 $net_1_1 = [
22         "mscorlib",
23         "System",
24         "System.Data",
25         "System.Data.OracleClient",
26         "System.DirectoryServices",
27         "System.Drawing",
28         "System.Runtime.Remoting",
29         "System.Runtime.Serialization.Formatters.Soap",
30         "System.Security",
31         "System.ServiceProcess",
32         "System.Web",
33         "System.Web.Services",
34         "System.Windows.Forms",
35         "System.Xml",
36         "cscompmgd",
37         "Microsoft.VisualBasic",
38         "",
39         "System.Configuration.Install",
40         "System.Design",
41         "System.Drawing.Design",
42         "System.EnterpriseServices",
43         "System.Management",
44         "System.Messaging"
45 ]
46
47 $net_2_0 = [
48         "mscorlib",
49         "System",
50         "System.Configuration",
51         "System.Data",
52         "System.Data.OracleClient",
53         "System.DirectoryServices",
54         "System.Drawing",
55         "System.Runtime.Remoting",
56         "System.Runtime.Serialization.Formatters.Soap",
57         "System.Security",
58         "System.ServiceProcess",
59         "System.Transactions",
60         "System.Web",
61         "System.Web.Services",
62         "System.Windows.Forms",
63         "System.Xml",
64         "cscompmgd",
65         "Microsoft.VisualBasic",
66         "",
67         "Microsoft.Build.Engine",
68         "Microsoft.Build.Framework",
69         "Microsoft.Build.Tasks",
70         "Microsoft.Build.Utilities",
71         "",
72         "System.Configuration.Install",
73         "System.Design",
74         "System.Drawing.Design",
75         "System.EnterpriseServices",
76         "System.Management",
77         "System.Messaging",
78 ]
79
80 $net_3_0 = [
81         "PresentationCore",
82
83         "PresentationFramework",
84         "System.Speech",
85         "WindowsBase",
86         "",
87         "System.IdentityModel",
88         "System.IdentityModel.Selectors",
89         "System.IO.Log",
90         "System.Runtime.Serialization",
91         "System.ServiceModel",
92         "",
93         "System.Workflow.Activities",
94         "System.Workflow.ComponentModel",
95         "System.Workflow.Runtime",
96         "",
97         "PresentationBuildTasks",
98         "",
99         "PresentationFramework.Aero",
100         "PresentationFramework.Classic",
101         "PresentationFramework.Luna",
102         "PresentationFramework.Royale",
103         "ReachFramework",
104         "",
105         "System.Printing",
106 ]
107
108 $net_3_5 = [
109         "mscorlib",
110         "System",
111         "System.AddIn",
112         "System.AddIn.Contract",
113         "System.Configuration",
114         "System.Core",
115         "System.Configuration.Install",
116         "System.Data",
117         "System.Data.Linq",
118         "System.Data.OracleClient",
119         "System.DirectoryServices",
120         # "System.DirectoryServices.AccountManagement",
121         # "System.DirectoryServices.Protocols",
122         "System.Drawing",
123         "System.Net",
124         "System.Runtime.Remoting",
125         "System.Security",
126         "System.ServiceProcess",
127         "System.Transactions",
128         "System.Web",
129         "System.Web.Extensions",
130         "System.Web.Extensions.Design",
131         "System.Web.Mobile",
132         "System.Web.RegularExpressions",
133         "System.Web.Services",
134         "System.Windows.Forms",
135         "System.Xml",
136         "System.Xml.Linq",
137         "",
138         "System.Runtime.Serialization.Formatters.Soap",
139         "cscompmgd",
140         "Microsoft.VisualBasic",
141         "",
142         "Microsoft.Build.Engine",
143         "Microsoft.Build.Framework",
144         "Microsoft.Build.Tasks",
145         "Microsoft.Build.Utilities",
146         "Microsoft.Build.Conversion.v3.5",
147         "Microsoft.Build.Utilities.v3.5",
148         "",
149         "System.Configuration.Install",
150         "System.Design",
151         "System.Drawing.Design",
152         "System.EnterpriseServices",
153         "System.Management",
154         "System.Management.Instrumentation",
155         "System.Messaging",
156 ]
157
158 $net_4_0 = [
159         "mscorlib",
160
161         "Microsoft.Build.Conversion.v4.0",
162         "Microsoft.Build",
163         "Microsoft.Build.Engine",
164         "Microsoft.Build.Framework",
165         "Microsoft.Build.Tasks.v4.0",
166         "Microsoft.Build.Utilities.v4.0",
167         "Microsoft.CSharp",
168         "Microsoft.Data.Entity.Build.Tasks",
169         "Microsoft.JScript",
170         "Microsoft.VisualBasic.Compatibility.Data",
171         "Microsoft.VisualBasic.Compatibility",
172         "Microsoft.VisualBasic",
173 #       "Microsoft.VisualC.STLCLR",
174
175         "PresentationBuildTasks",
176         "PresentationCore",
177         "PresentationFramework.Aero",
178         "PresentationFramework.Classic",
179         "PresentationFramework",
180         "PresentationFramework.Luna",
181         "PresentationFramework.Royale",
182         "PresentationUI",
183         "ReachFramework",
184
185         "System.Activities",
186         "System.Activities.Core.Presentation",
187         "System.Activities.DurableInstancing",
188         "System.Activities.Presentation",
189         "System.AddIn.Contract",
190         "System.AddIn",
191         "System.ComponentModel.Composition",
192         "System.ComponentModel.DataAnnotations",
193         "System.configuration",
194         "System.Configuration.Install",
195         "System.Core",
196         "System.Data.DataSetExtensions",
197         "System.Data",
198         "System.Data.Entity.Design",
199         "System.Data.Entity",
200         "System.Data.Linq",
201         "System.Data.OracleClient",
202         "System.Data.Services.Client",
203         "System.Data.Services.Design",
204         "System.Data.Services",
205         "System.Data.SqlXml",
206         "System.Deployment",
207         "System.Design",
208         "System.Device",
209         "System.DirectoryServices.AccountManagement",
210         "System.DirectoryServices",
211         "System.DirectoryServices.Protocols",
212         "System",
213         "System.Drawing.Design",
214         "System.Drawing",
215         "System.Dynamic",
216         "System.EnterpriseServices",
217         "System.EnterpriseServices.Thunk",
218         "System.EnterpriseServices.Wrapper",
219         "System.IdentityModel",
220         "System.IdentityModel.Selectors",
221         "System.IO.Log",
222         "System.Management",
223         "System.Management.Instrumentation",
224         "System.Messaging",
225         "System.Net",
226         "System.Numerics",
227         "System.Printing",
228         "System.Runtime.Caching",
229         "System.Runtime.Remoting",
230         "System.Runtime.Serialization",
231         "System.Runtime.Serialization.Formatters.Soap",
232         "System.Security",
233         "System.ServiceModel.Activation",
234         "System.ServiceModel.Activities",
235         "System.ServiceModel.Channels",
236         "System.ServiceModel.Discovery",
237         "System.ServiceModel",
238         "System.ServiceModel.Routing",
239         "System.ServiceModel.Web",
240         "System.ServiceProcess",
241         "System.Speech",
242         "System.Transactions",
243         "System.Web.Abstractions",
244         "System.Web.ApplicationServices",
245         "System.Web.DataVisualization.Design",
246         "System.Web.DataVisualization",
247         "System.Web",
248         "System.Web.DynamicData.Design",
249         "System.Web.DynamicData",
250         "System.Web.Entity.Design",
251         "System.Web.Entity",
252         "System.Web.Extensions.Design",
253         "System.Web.Extensions",
254         "System.Web.Mobile",
255         "System.Web.RegularExpressions",
256         "System.Web.Routing",
257         "System.Web.Services",
258         "System.Windows.Forms.DataVisualization.Design",
259         "System.Windows.Forms.DataVisualization",
260         "System.Windows.Forms",
261         "System.Windows.Presentation",
262         "System.Workflow.Activities",
263         "System.Workflow.ComponentModel",
264         "System.Workflow.Runtime",
265         "System.WorkflowServices",
266         "System.Xaml",
267         "System.Xaml.Hosting",
268         "System.Xml",
269         "System.Xml.Linq",
270
271         "WindowsBase",
272         "XamlBuildTask"
273 ]
274
275 $net_4_5 = [
276         "mscorlib",
277         
278         "Microsoft.Activities.Build",
279         "Microsoft.Build.Conversion.v4.0",
280         "Microsoft.Build",
281         "Microsoft.Build.Engine",
282         "Microsoft.Build.Framework",
283         "Microsoft.Build.Tasks.v4.0",
284         "Microsoft.Build.Utilities.v4.0",
285         "Microsoft.CSharp",
286         "Microsoft.Data.Entity.Build.Tasks",
287         "Microsoft.JScript",
288         "Microsoft.VisualBasic.Activities.Compiler",
289         "Microsoft.VisualBasic.Compatibility.Data",
290         "Microsoft.VisualBasic.Compatibility",
291         "Microsoft.VisualBasic",
292         "Microsoft.Windows.ApplicationServer.Applications",
293         
294         "PresentationBuildTasks",
295         "PresentationCore",
296         "PresentationFramework.Aero",
297         "PresentationFramework.Classic",
298         "PresentationFramework",
299         "PresentationFramework.Luna",
300         "PresentationFramework.Royale",
301         "PresentationUI",
302         "ReachFramework",
303         "System.Printing",
304         "System.Speech",
305         "WindowsBase",
306         "XamlBuildTask",
307         
308         "System.Activities",
309         "System.Activities.Core.Presentation",
310         "System.Activities.DurableInstancing",
311         "System.Activities.Presentation",
312         "System.AddIn.Contract",
313         "System.AddIn",
314         "System.ComponentModel.Composition",
315         "System.ComponentModel.DataAnnotations",
316         "System.Configuration",
317         "System.Configuration.Install",
318         "System.Core",
319         "System.Data.DataSetExtensions",
320         "System.Data",
321         "System.Data.Entity.Design",
322         "System.Data.Entity",
323         "System.Data.Linq",
324         "System.Data.OracleClient",
325         "System.Data.Services.Client",
326         "System.Data.Services.Design",
327         "System.Data.Services",
328         "System.Data.SqlXml",
329         "System.Deployment",
330         "System.Design",
331         "System.Device",
332         "System.DirectoryServices.AccountManagement",
333         "System.DirectoryServices",
334         "System.DirectoryServices.Protocols",
335         "System",
336         "System.Drawing.Design",
337         "System.Drawing",
338         "System.Dynamic",
339         "System.EnterpriseServices",
340         "System.EnterpriseServices.Thunk",
341         "System.EnterpriseServices.Wrapper",
342         "System.IdentityModel",
343         "System.IdentityModel.Selectors",
344         "System.IdentityModel.Services",
345         "System.IO.Compression",
346         "System.IO.Compression.FileSystem",
347         "System.IO.Log",
348         "System.Management",
349         "System.Management.Instrumentation",
350         "System.Messaging",
351         "System.Net",
352         "System.Net.Http",
353         "System.Net.Http.WebRequest",
354         "System.Numerics",
355         "System.Reflection.context",
356         "System.Runtime.Caching",
357         "System.Runtime.Remoting",
358         "System.Runtime.Serialization",
359         "System.Runtime.Serialization.Formatters.Soap",
360         "System.Security",
361         "System.ServiceModel.Activation",
362         "System.ServiceModel.Activities",
363         "System.ServiceModel.Channels",
364         "System.ServiceModel.Discovery",
365         "System.ServiceModel",
366         "System.ServiceModel.Routing",
367         "System.ServiceModel.Web",
368         "System.ServiceProcess",
369         "System.Threading.Tasks.Dataflow",
370         "System.Transactions",
371         "System.Web.Abstractions",
372         "System.Web.ApplicationServices",
373         "System.Web.DataVisualization.Design",
374         "System.Web.DataVisualization",
375         "System.Web",
376         "System.Web.DynamicData.Design",
377         "System.Web.DynamicData",
378         "System.Web.Entity.Design",
379         "System.Web.Entity",
380         "System.Web.Extensions.Design",
381         "System.Web.Extensions",
382         "System.Web.Mobile",
383         "System.Web.RegularExpressions",
384         "System.Web.Services",
385         "System.Windows.Forms.DataVisualization.Design",
386         "System.Windows.Forms.DataVisualization",
387         "System.Windows.Forms",
388         "System.Windows.Presentation",
389         "System.Workflow.Activities",
390         "System.Workflow.ComponentModel",
391         "System.Workflow.Runtime",
392         "System.WorkflowServices",
393         "System.Xaml",
394         "System.Xaml.Hosting",
395         "System.Xml",
396         "System.Xml.Linq"
397 ]
398
399 $sl_2_0 = [
400         "mscorlib",
401         "System.Windows",
402         "Microsoft.VisualBasic",
403         "System",
404         "System.Core",
405         "System.Net",
406         "System.Runtime.Serialization",
407         "System.ServiceModel",
408         "System.Windows.Browser",
409         "System.Xml",
410         "",
411         "System.Xml.Linq",
412         "System.Windows.Controls",
413         "System.Windows.Controls.Data",
414 ]
415
416 $sl_4 = [
417         "mscorlib",
418         "Microsoft.VisualBasic",
419         "System",
420         "System.Core",
421         "System.Net",
422         "System.Runtime.Serialization",
423         "System.ServiceModel",
424         "System.ServiceModel.Web",
425         "System.Windows",
426         "System.Windows.Browser",
427         "System.Xml",
428         "",
429         "Microsoft.CSharp",
430         "System.ComponentModel.Composition",
431         "System.ComponentModel.Composition.Initialization",
432         "System.ComponentModel.DataAnnotations",
433         "System.Data.Services.Client",
434         "System.Json",
435         "System.Numerics",
436         "System.Runtime.Serialization.Json",
437         "System.ServiceModel.Extensions",
438         "System.ServiceModel.NetTcp",
439         "System.ServiceModel.PollingDuplex",
440         "System.ServiceModel.Syndication",
441         "System.ServiceModel.Web.Extensions",
442         "System.Windows.Controls.Data",
443         "System.Windows.Controls.Data.Input",
444         "System.Windows.Controls",
445         "System.Windows.Controls.Input",
446         "System.Windows.Controls.Navigation",
447         "System.Windows.Data",
448         "System.Xml.Linq",
449         "System.Xml.Serialization",
450         "System.Xml.Utils",
451         "System.Xml.XPath"
452 ]
453
454 def locate(assembly, fxs = nil)
455         if fxs
456                 fxs.each do |fx|
457                         file = File.join fx, assembly + ".dll"
458                         return file if File.file?(file)
459                 end
460         end
461
462         gac = File.join $gac, assembly, "**", "*.dll"
463
464         glob = Dir.glob gac
465
466         return glob.first if glob and glob.length > 0
467 end
468
469 def delete(glob)
470         Dir.glob(glob).each do |file|
471                 File.delete file
472         end
473 end
474
475 def clean(pattern, allow_create = false)
476         if allow_create and not File.directory? "masterinfos"
477                 Dir.mkdir("masterinfos")
478                 return
479         end
480
481         delete(File.join("masterinfos", pattern))
482 end
483
484 def generate(location, assembly)
485         out = File.join "masterinfos", assembly + ".xml"
486         system("./mono-api-info.exe \"#{location}\" > #{out}")
487 end
488
489 def process(profile, assemblies, fxs = nil)
490         clean("*", true)
491
492         assemblies.each do |assembly|
493                 if assembly != nil and assembly.length > 0
494                         puts assembly
495                         location = locate(assembly, fxs)
496                         if location
497                                 generate(location, assembly)
498                         else
499                                 puts "fail to locate " + assembly
500                         end
501                         #puts "   " + location if location
502                 end
503         end
504
505         clean("*.dll")
506
507         file = "masterinfos-#{profile}.tar"
508
509         system("tar -cf #{file} masterinfos")
510         system("gzip #{file}")
511
512         clean("*")
513
514         Dir.delete("masterinfos")
515 end
516
517 delete("*.tar.gz")
518
519 process("2.0", $net_2_0, [$fx2_0])
520 process("3.0", $net_3_0, [$fx3_0, $fx2_0])
521 process("3.5", $net_3_5, [$fx3_5, $fx2_0])
522 process("4.0", $net_4_0, [$fx4_0, $fx4_0_wpf])
523 process("4.5", $net_4_5, [$fx4_5, $fx4_5_wpf])
524 process("SL4", $sl_4, [$sl4, $sl4_sdk])