Reviewed by Darin Adler.
[WebKit-https.git] / WebKitTools / checkout
1 #!/usr/bin/perl -w
2
3 # Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 #
9 # 1.  Redistributions of source code must retain the above copyright
10 #     notice, this list of conditions and the following disclaimer. 
11 # 2.  Redistributions in binary form must reproduce the above copyright
12 #     notice, this list of conditions and the following disclaimer in the
13 #     documentation and/or other materials provided with the distribution. 
14 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15 #     its contributors may be used to endorse or promote products derived
16 #     from this software without specific prior written permission. 
17 #
18 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 # First time check-out script for Web Kit Open Source Project.
30
31 use strict;
32 use Getopt::Long;
33
34 my $includeSVG = 0;
35 my $includeTests = 1;
36 GetOptions('svg' => \$includeSVG,
37            'tests!' => \$includeTests);
38
39 # Check that we're in the right directory.
40 if (! -d "WebKitTools") {
41     if (-d "../WebKitTools") {
42         chdir ".." or die;
43     }
44     if (! -d "WebKitTools") {
45         die "No WebKitTools directory found. Please run this script from the directory containing WebKitTools.\n";
46     }
47 }
48
49 # Read the CVS root out of the project that's already checked out.
50 open ROOT, "WebKitTools/CVS/Root" or die;
51 my $root = <ROOT>;
52 chomp $root;
53 close ROOT;
54
55 # Check out all the sources.
56 print "CVS root is $root\n";
57 print "Checking out WebKitTools (again), JavaScriptCore, WebCore, WebKitLibraries";
58 print ", LayoutTests" if $includeTests;
59 if ($includeSVG) {
60     print ", WebKit and SVGSupport\n";
61 } else {
62     print " and WebKit\n";
63 }
64 my $directories = "WebKitTools JavaScriptCore WebCore WebKitLibraries WebKit";
65 $directories .= " LayoutTests" if $includeTests;
66 $directories .= " SVGSupport" if $includeSVG;
67 open CVS, "cvs -d '$root' co -P $directories |" or die;
68 while (<CVS>) {
69     print;
70 }
71 close CVS;
72
73 if ($includeSVG) {
74     # Make the necessary symlinks
75     print "\nCreating symlinks (kdom, kcanvas, ksvg2, WebCore+SVG, svg-tests) from WebCore into SVGSupport\n";
76     symlink("../SVGSupport/kdom", "WebCore/kdom");
77     symlink("../SVGSupport/kcanvas", "WebCore/kcanvas");
78     symlink("../SVGSupport/ksvg2", "WebCore/ksvg2");
79     symlink("../SVGSupport/WebCore+SVG", "WebCore/WebCore+SVG");
80     symlink("../SVGSupport/layout-tests", "WebCore/svg-tests");
81 }
82
83 # Ready to build.
84 print "\n";
85 print "===============================================================\n";
86 print " Web Kit sources are now checked out and ready to build.\n";
87 print " You can build by projects in Xcode or with the build-webkit\n";
88 print " script. The build-webkit script is inside WebKitTools/Scripts\n";
89 print " along with other useful scripts; it's a good idea to put that\n";
90 print " directory into your shell's search path.\n";
91 print "===============================================================\n";