1#! /usr/bin/perl
2#
3#   This file is part of the WebKit project
4#
5#   Copyright (C) 2010 Andras Becsi (abecsi@inf.u-szeged.hu), University of Szeged
6#   Copyright (C) 2012 Apple Inc. All rights reserved.
7#
8#   This library is free software; you can redistribute it and/or
9#   modify it under the terms of the GNU Library General Public
10#   License as published by the Free Software Foundation; either
11#   version 2 of the License, or (at your option) any later version.
12#
13#   This library is distributed in the hope that it will be useful,
14#   but WITHOUT ANY WARRANTY; without even the implied warranty of
15#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16#   Library General Public License for more details.
17#
18#   You should have received a copy of the GNU Library General Public License
19#   along with this library; see the file COPYING.LIB.  If not, write to
20#   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21#   Boston, MA 02110-1301, USA.
22
23use strict;
24use File::Basename;
25
26my $outdir = $ARGV[0];
27shift;
28my $option = basename($ARGV[0],".gperf");
29
30if ($option eq "ColorData") {
31    my $colorDataGenerated         = "$outdir/ColorData.cpp";
32    my $colorDataGperf             = shift;
33    my $customGperf                = shift;
34
35    # gperf emits this filename literally in #line directives, but VS errors
36    # out because the filenames then contain unescaped \s, so replace the \
37    # with /.
38    $colorDataGperf =~ s/\\/\//g;
39    my $gperf = $ENV{GPERF} ? $ENV{GPERF} : ($customGperf ? $customGperf : "gperf");
40    system("\"$gperf\" --key-positions=\"*\" -D -s 2 $colorDataGperf --output-file=$colorDataGenerated") == 0 || die "calling gperf failed: $?";
41
42} else {
43    die "Unknown option.";
44}
45