Warn everywhere, not just Unix
[mirror/qt/qt5.git] / configure
1 #!/usr/bin/perl
2 ####################################################################################################
3 #
4 # Mother script for Qt Modularization
5 #
6 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
7 # Contact: Nokia Corporation (qt-info@nokia.com)
8 #
9 ####################################################################################################
10 use strict;
11 use warnings;
12
13 use File::Basename;
14 use File::Path;
15 use Cwd;
16 use Cwd 'abs_path';
17 use Config;
18
19 # Makes sure the arguments are directories, and creates them if not.
20 # Will die if there is an error.
21 sub ensureDir {
22     foreach (@_) {
23         if (-e $_) {
24             if (-d $_) {
25                 next;
26             } else {
27                 die ("$_ exists, but is not a directory");
28             }
29         }
30         File::Path::mkpath($_) or die("Could not create $_");
31     }
32 }
33
34 # `system', but also print the command
35 sub system_v
36 {
37     print "+ ";
38     print @_;
39     print "\n";
40     return system(@_);
41 }
42
43 my $relpath = dirname(abs_path($0));
44 $relpath =~ s,\\,/,g;
45 # the current directory is the "build tree" or "object tree"
46 my $outpath = getcwd();
47
48 if (! -e "$relpath/qtbase/configure") {
49     die("$relpath/qtbase/configure not found. Did you forget to run \"init-repository\"?");
50 }
51
52 ensureDir("$outpath/qtbase");
53 chdir("$outpath/qtbase");
54 system_v("$relpath/qtbase/configure @ARGV");
55
56 chdir("$outpath");
57
58 open QMAKE_CACHE, ">.qmake.cache" || die "Could not open .qmake.cache for writing!\n";
59 print QMAKE_CACHE "include(\$\$PWD/qtbase/.qmake.cache)\n";
60 close QMAKE_CACHE;
61
62 system_v("$outpath/qtbase/bin/qmake $relpath/qt.pro");
63
64 exit 0;