Files
qt5/configure
Oswald Buddenhagen 1317419aa2 create top-level .qmake.super instead of .qmake.cache
at this point, the cache is needed only to aggregate the modules,
not to "export" qtbase internals. the modules now have private caches
for "real" config data.

Change-Id: I4c70d220bbc054023710680545a04c171e238aff
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-29 03:41:41 +02:00

113 lines
3.4 KiB
Perl
Executable File

#!/usr/bin/perl
#############################################################################
##
## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
## Contact: http://www.qt-project.org/
##
## This file is part of the build tools of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL$
## GNU Lesser General Public License Usage
## This file may be used under the terms of the GNU Lesser General Public
## License version 2.1 as published by the Free Software Foundation and
## appearing in the file LICENSE.LGPL included in the packaging of this
## file. Please review the following information to ensure the GNU Lesser
## General Public License version 2.1 requirements will be met:
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## In addition, as a special exception, Nokia gives you certain additional
## rights. These rights are described in the Nokia Qt LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## GNU General Public License Usage
## Alternatively, this file may be used under the terms of the GNU General
## Public License version 3.0 as published by the Free Software Foundation
## and appearing in the file LICENSE.GPL included in the packaging of this
## file. Please review the following information to ensure the GNU General
## Public License version 3.0 requirements will be met:
## http://www.gnu.org/copyleft/gpl.html.
##
## Other Usage
## Alternatively, this file may be used in accordance with the terms and
## conditions contained in a signed written agreement between you and Nokia.
##
##
##
##
##
##
## $QT_END_LICENSE$
##
#############################################################################
####################################################################################################
#
# Mother script for Qt Modularization
#
####################################################################################################
use strict;
use warnings;
use File::Basename;
use File::Path;
use Cwd;
use Cwd 'abs_path';
use Config;
# Makes sure the arguments are directories, and creates them if not.
# Will die if there is an error.
sub ensureDir {
foreach (@_) {
if (-e $_) {
if (-d $_) {
next;
} else {
die ("$_ exists, but is not a directory");
}
}
File::Path::mkpath($_) or die("Could not create $_");
}
}
# `system', but also print the command
sub system_v
{
print "+ ";
print @_;
print "\n";
return system(@_);
}
my $relpath = dirname(abs_path($0));
$relpath =~ s,\\,/,g;
# the current directory is the "build tree" or "object tree"
my $outpath = getcwd();
if (! -e "$relpath/qtbase/configure") {
die("$relpath/qtbase/configure not found. Did you forget to run \"init-repository\"?");
}
ensureDir("$outpath/qtbase");
chdir("$outpath/qtbase");
if (-e ".qmake.cache") {
# Remove this so we can detect if configure finished properly
unlink ".qmake.cache";
}
my $ret = system_v("$relpath/qtbase/configure @ARGV");
if ($ret != 0) {
print "*** qtbase/configure exited with non-zero status.\n";
exit ($ret>>8) ;
}
if (! -e ".qmake.cache") {
# Even though there was no error code, this file wasn't created
# so configure didn't finish properly. This is probably because
# the user passed -help
exit 0;
}
chdir("$outpath");
$ret = system_v("$outpath/qtbase/bin/qmake $relpath/qt.pro");
exit ($ret>>8);