| #!/usr/bin/env perl |
| |
| # Based on make_names.pl |
| # |
| # Copyright (C) 2005, 2006, 2007, 2009 Apple Inc. All rights reserved. |
| # Copyright (C) 2009, Julien Chaffraix <jchaffraix@webkit.org> |
| # Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) |
| # Copyright (C) 2009 Robert Hogan <robert@roberthogan.net> |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions |
| # are met: |
| # |
| # 1. Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # 2. Redistributions in binary form must reproduce the above copyright |
| # notice, this list of conditions and the following disclaimer in the |
| # documentation and/or other materials provided with the distribution. |
| # 3. Neither the name of Apple Inc. ("Apple") nor the names of |
| # its contributors may be used to endorse or promote products derived |
| # from this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |
| # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| # This script reads Version.xcconfig and returns either or both of the major and minor |
| # WebKit version numbers. It is currently used by WebKit.pri. |
| |
| use strict; |
| |
| use Config; |
| use Getopt::Long; |
| use File::Path; |
| |
| my $usage = "generate-webkitversion --config WebKit/mac/Configurations/Version.xcconfig --outputDir <outputdir>"; |
| |
| my $major_version = ""; |
| my $minor_version = ""; |
| # The appropriate Apple-maintained Version.xcconfig file for WebKit version information is in WebKit/mac/Configurations/. |
| my $configFile = "./Source/WebKit/mac/Configurations/Version.xcconfig"; |
| my $outputDir = ""; |
| |
| GetOptions('config=s' => \$configFile, |
| 'outputDir=s' => \$outputDir); |
| |
| die "You must specify a --config <file> " unless (length($configFile)); |
| die "You must specify a --outputDir <outputdir> " unless (length($outputDir)); |
| |
| die "./Source/WebKit/mac/Configurations/Version.xcconfig does not exist: use --config <file> to specify its correct location." unless (-e $configFile); |
| die "$outputDir/ does not exist: use --outputDir <directory> to specify the location of an output directory that exists" unless (-e "$outputDir"); |
| |
| unless (open INPUT, "<", $configFile) { print STDERR "File does not exist: $configFile\n";} |
| while (my $line = <INPUT>) { |
| chomp $line; |
| if ($line =~ /^MAJOR_VERSION\s+=\s+\d+;/) { |
| $line =~ s/^(MAJOR_VERSION)\s+(=)\s+(\d+);/$3/; |
| $major_version = $line; |
| } |
| if ($line =~ /^MINOR_VERSION\s+=\s+\d+;/) { |
| $line =~ s/^(MINOR_VERSION)\s+(=)\s+(\d+);/$3/; |
| $minor_version = $line; |
| } |
| } |
| |
| $major_version = "531" unless (length($major_version)); |
| $minor_version = "3" unless (length($minor_version)); |
| |
| my $webKitVersionPath = "$outputDir/WebKitVersion.h"; |
| |
| printWebKitVersionHeaderFile("$webKitVersionPath"); |
| |
| sub printLicenseHeader |
| { |
| my $F = shift; |
| print F "/* |
| * THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT. |
| * |
| * |
| * Copyright (C) 2009 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| |
| "; |
| } |
| |
| sub printWebKitVersionHeaderFile |
| { |
| my $headerPath = shift; |
| my $F; |
| open F, ">$headerPath"; |
| |
| printLicenseHeader($F); |
| |
| print F "#ifndef WebKitVersion_h\n"; |
| print F "#define WebKitVersion_h\n\n"; |
| |
| print F "#define WEBKIT_MAJOR_VERSION $major_version\n"; |
| print F "#define WEBKIT_MINOR_VERSION $minor_version\n\n"; |
| |
| print F "#endif //WebKitVersion_h\n"; |
| |
| close F; |
| } |
| |
| |
| |