diff options
author | Matt Hoosier <matt.hoosier@garmin.com> | 2015-12-02 14:02:02 -0600 |
---|---|---|
committer | Matt Hoosier <matt.hoosier@garmin.com> | 2015-12-21 16:18:29 +0000 |
commit | 6f1b78c980b5250b2bb8408a5fe422997b52eb0e (patch) | |
tree | 69905c13b1115e1b2e2b2e0bdf7097f0252e4c6f /mkspecs/features/data/unix | |
parent | a206583da1bee8fdc90b58bbc8d067ba724de203 (diff) |
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 <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'mkspecs/features/data/unix')
-rw-r--r-- | mkspecs/features/data/unix/findclasslist.pl | 17 |
1 files changed, 15 insertions, 2 deletions
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 <file (containing private header list)>\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 = <ARGFILE>) { + chomp($line); + push @headers, $line; +} +close ARGFILE; + $\ = $/; while (<STDIN>) { chomp; @@ -44,7 +57,7 @@ while (<STDIN>) { } # 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 = <HDR>) { |