From 6f1b78c980b5250b2bb8408a5fe422997b52eb0e Mon Sep 17 00:00:00 2001 From: Matt Hoosier Date: Wed, 2 Dec 2015 14:02:02 -0600 Subject: Fix version script generation when cross-compiling from Windows to QNX Recent versions of Qt have apparently added sufficient numbers of headers that the command lines used to spawn a custom header- parsing tool, started overflowing Windows' maximum command-line length. This change restructures the mechanism to use a GCC-style command- line arguments file rather than passing filenames all directly in the argv[] vector. Although QNX is the usual ELF target whose cross-build is supported on Windows, the mechanics introduced in this patch happen to affect all other ELF Unix systems' builds too. Change-Id: I5a7383cf9f2ebf9dffde8dbfdcdeca888265e085 Reviewed-by: Thiago Macieira Reviewed-by: Oswald Buddenhagen --- mkspecs/features/data/unix/findclasslist.pl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'mkspecs/features/data') diff --git a/mkspecs/features/data/unix/findclasslist.pl b/mkspecs/features/data/unix/findclasslist.pl index 9113b4921c..ac010ae0a7 100644 --- a/mkspecs/features/data/unix/findclasslist.pl +++ b/mkspecs/features/data/unix/findclasslist.pl @@ -33,8 +33,21 @@ ############################################################################# use strict; -my $syntax = "findclasslist.pl [private header list]\n" . +my $syntax = "findclasslist.pl \n" . "Replaces \@CLASSLIST\@ with the classes found in the header files\n"; + +die("Expected exactly one argument") if (@ARGV != 1); + +my @headers = (); + +# Expand contents of the command-line arguments file +open ARGFILE, "<$ARGV[0]" or die("Could not open arguments file $ARGV[0]: $!"); +while (my $line = ) { + chomp($line); + push @headers, $line; +} +close ARGFILE; + $\ = $/; while () { chomp; @@ -44,7 +57,7 @@ while () { } # Replace @CLASSLIST@ with the class list - for my $header (@ARGV) { + for my $header (@headers) { open HDR, "<$header" or die("Could not open header $header: $!"); my $comment = " /* $header */"; while (my $line = ) { -- cgit v1.2.3