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