mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-14 22:30:22 +00:00
gdk/broadway/toarray.pl: Fix Code Generation for MSVC
The current implementation of this script generate headers with \x-escaped strings that can become too long (> 65535 characters) for Visual Studio to consume, hence the build of broadwayd would break on Visual Studio. This changes the script to instead format the string as an array of hex characters, not unlike what GResource does, so that builds can continue as normal on Visual Studio builds as well. https://bugzilla.gnome.org/show_bug.cgi?id=739001
This commit is contained in:
parent
7b6a6c9421
commit
35486e7990
@ -1,17 +1,22 @@
|
|||||||
#!/usr/bin/perl -w
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
my $ARRAYNAME = $ARGV[0];
|
my $ARRAYNAME = $ARGV[0];
|
||||||
print "static const char $ARRAYNAME\[\] = \"";
|
my $first = 0;
|
||||||
|
print "static const char $ARRAYNAME\[\] = {";
|
||||||
|
|
||||||
for ($i = 1; $i <= $#ARGV; $i = $i + 1) {
|
for ($i = 1; $i <= $#ARGV; $i = $i + 1) {
|
||||||
my $FILENAME = $ARGV[$i];
|
my $FILENAME = $ARGV[$i];
|
||||||
open FILE, $FILENAME or die "Cannot open $FILENAME";
|
open FILE, $FILENAME or die "Cannot open $FILENAME";
|
||||||
while (my $line = <FILE>) {
|
while (my $line = <FILE>) {
|
||||||
foreach my $c (split //, $line) {
|
foreach my $c (split //, $line) {
|
||||||
printf ("\\x%02x", ord ($c));
|
if ($first == 1) {
|
||||||
|
printf (",\n");
|
||||||
|
}
|
||||||
|
printf ("0x%02x", ord ($c));
|
||||||
|
$first = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print "\";\n";
|
print "};\n";
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user