963a16f4eb59295df61c6d5cb9d8db3e2c750144
[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 GetOptions('svg' => \$includeSVG);
36
37 # Check that we're in the right directory.
38 if (! -d "WebKitTools") {
39     if (-d "../WebKitTools") {
40         chdir ".." or die;
41     }
42     if (! -d "WebKitTools") {
43         die "No WebKitTools directory found. Please run this script from the directory containing WebKitTools.\n";
44     }
45 }
46
47 # Read the CVS root out of the project that's already checked out.
48 open ROOT, "WebKitTools/CVS/Root" or die;
49 my $root = <ROOT>;
50 chomp $root;
51 close ROOT;
52
53 # Check out all the sources.
54 print "CVS root is $root\n";
55 print "Checking out WebKitTools (again), JavaScriptCore, WebCore, WebKitLibraries";
56 if ($includeSVG) {
57     print ", WebKit and SVGSupport\n";
58 } else {
59     print " and WebKit\n";
60 }
61 my $directories = "WebKitTools JavaScriptCore WebCore WebKitLibraries WebKit";
62 $directories .= " SVGSupport" if $includeSVG;
63 open CVS, "cvs -d '$root' co -P $directories |" or die;
64 while (<CVS>) {
65     print;
66 }
67 close CVS;
68
69 if ($includeSVG) {
70     # Make the necessary symlinks
71     print "\nCreating symlinks (kdom, kcanvas, ksvg2, WebCore+SVG, svg-tests) from WebCore into SVGSupport\n";
72     symlink("../SVGSupport/kdom", "WebCore/kdom");
73     symlink("../SVGSupport/kcanvas", "WebCore/kcanvas");
74     symlink("../SVGSupport/ksvg2", "WebCore/ksvg2");
75     symlink("../SVGSupport/WebCore+SVG", "WebCore/WebCore+SVG");
76     symlink("../SVGSupport/layout-tests", "WebCore/svg-tests");
77 }
78
79 # Ready to build.
80 print "\n";
81 print "===============================================================\n";
82 print " Web Kit sources are now checked out and ready to build.\n";
83 print " You can build by projects in Xcode or with the build-webkit\n";
84 print " script. The build-webkit script is inside WebKitTools/Scripts\n";
85 print " along with other useful scripts; it's a good idea to put that\n";
86 print " directory into your shell's search path.\n";
87 print "===============================================================\n";