Land updated layout tests with scroll info.
[WebKit-https.git] / WebKit / copy-webcore-files-to-webkit
1 #!/usr/bin/perl -w
2
3 use strict;
4 use Cwd;
5 use File::Basename;
6
7 my $ProgramName = 'copy-webcore-files-to-webkit';
8
9 my %WebCoreFiles = (
10     'kwq/DOM.h' => 'DOM.subproj/DOM.h',
11     'kwq/DOM-compat.h' => 'DOM.subproj/DOM-compat.h',
12     'kwq/DOMCSS.h' => 'DOM.subproj/DOMCSS.h',
13     'kwq/DOMCore.h' => 'DOM.subproj/DOMCore.h',
14     'kwq/DOMEvents.h' => 'DOM.subproj/DOMEvents.h',
15     'kwq/DOMExtensions.h' => 'DOM.subproj/DOMExtensions.h',
16     'kwq/DOMHTML.h' => 'DOM.subproj/DOMHTML.h',
17     'kwq/DOMPrivate.h' => 'DOM.subproj/DOMPrivate.h',
18     'kwq/DOMRange.h' => 'DOM.subproj/DOMRange.h',
19     'kwq/DOMStylesheets.h' => 'DOM.subproj/DOMStylesheets.h',
20     'kwq/DOMTraversal.h' => 'DOM.subproj/DOMTraversal.h',
21     'kwq/DOMViews.h' => 'DOM.subproj/DOMViews.h',
22     'kwq/WebDashboardRegion.h' => 'WebCoreSupport.subproj/WebDashboardRegion.h',
23 );
24
25 my %JavaScriptCoreFiles = (
26     'bindings/npruntime.h' => 'Plugins.subproj/npruntime.h',
27     'bindings/npapi.h' => 'Plugins.subproj/npapi.h',
28     'bindings/npsap.h' => 'Plugins.subproj/npsap.h',
29     'bindings/objc/WebScriptObject.h' => 'Plugins.subproj/WebScriptObject.h',
30 );
31
32 my $JavaScriptCorePath = '';
33 my $WebCorePath = '';
34 my $WebKitPath = '';
35
36 CheckInWebKit();
37 CheckWebCoreFound();
38 CheckJavaScriptCoreFound();
39 CopyFilesIfNeeded();
40
41 #=======================================================================================
42 # subroutines
43
44 sub Fail {
45     my ($say) = @_;
46     Say("*** $ProgramName: $say");
47     exit(-1);
48 }
49
50 sub Say {
51     my ($say) = @_;
52     print STDERR $say, "\n";
53 }
54
55 sub CheckInWebKit {
56     if (cwd() =~ /WebKit$/) {
57         # ok...we're in WebCore
58         $WebKitPath = cwd();
59     }
60     else {
61         Say("*** $ProgramName: not being run from WebKit directory. Cannot copy, exiting...");
62         exit(0);
63     }
64 }
65
66 sub CheckWebCoreFound {
67     my $path = cwd();
68     $path = dirname($path) . '/WebCore';
69     if (-d $path) {
70         # ok...WebCore is where we expect it
71         $WebCorePath = $path;
72     }
73     else {
74         Say("*** $ProgramName: WebCore is not a sibling directory to WebKit. Cannot copy, exiting...");
75         exit(0);
76     }
77 }
78
79 sub CheckJavaScriptCoreFound {
80     my $path = cwd();
81     $path = dirname($path) . '/JavaScriptCore';
82     if (-d $path) {
83         # ok...WebCore is where we expect it
84         $JavaScriptCorePath = $path;
85     }
86     else {
87         Say("*** $ProgramName: JavaScriptCore is not a sibling directory to WebKit. Cannot copy, exiting...");
88         exit(0);
89     }
90 }
91
92 sub CopyFilesIfNeeded {
93     # Only copy files if the dest file does not exist
94     # or the source file is different than the dest file
95     my $blab = 0;
96     
97     for my $file (keys(%WebCoreFiles)) {
98         my $source = "$WebCorePath/$file";
99         my $dest = "$WebKitPath/$WebCoreFiles{$file}";
100         if (! -f $source) {
101             Fail("$source is not a plain file");    
102         }
103         if (-e $dest && ! -f $dest) {
104             Fail("$dest is not a plain file");    
105         }
106
107         ExecuteCommand("sed -e 's%#import .*<WebCore/\\(.*\\)>%#import <WebKit/\\1>%' -e 's%#import .*<JavaScriptCore/\\(.*\\)>%#import <WebKit/\\1>%' $source > $dest-X");
108         if (! -e $dest || system("cmp $dest $dest-X > /dev/null 2>&1")){
109             ExecuteCommand("cp -f $dest-X $dest");
110        }
111        ExecuteCommand("rm $dest-X");
112
113     }
114
115     for my $file (keys(%JavaScriptCoreFiles)) {
116         my $source = "$JavaScriptCorePath/$file";
117         my $dest = "$WebKitPath/$JavaScriptCoreFiles{$file}";
118         if (! -f $source) {
119             Fail("$source is not a plain file");    
120         }
121         if (-e $dest && ! -f $dest) {
122             Fail("$dest is not a plain file");    
123         }
124         
125         ExecuteCommand("sed -e 's%#import .*<WebCore/\\(.*\\)>%#import <WebKit/\\1>%'  -e 's%#import .*<JavaScriptCore/\\(.*\\)>%#import <WebKit/\\1>%' $source > $dest-X");
126         if (! -e $dest || system("cmp $dest $dest-X > /dev/null 2>&1")){
127             ExecuteCommand("cp -f $dest-X $dest");
128        }
129        ExecuteCommand("rm $dest-X");
130     }
131 }
132
133 sub ExecuteCommand {
134     my ($cmd) = @_;
135     my $result = system($cmd);
136     if ($result != 0) {
137         Say($cmd);
138         Fail("error: $result");
139         exit($result);
140     }
141 }