Fixed detection of QtBase directory.

The old check would fail for an installed copy of Qt. Instead, base
the check on using QTDIR if it present, otherwise use the parent of
the bin directory, and then check that "mkspecs" is present.

Reviewed-by: Olivier Goffart
This commit is contained in:
axis 2011-05-10 10:30:30 +02:00
parent edd56d531b
commit ba3436cda1

View File

@ -27,8 +27,8 @@ our $quoted_basedir;
# normally the script location should be enough, if not fall back to # normally the script location should be enough, if not fall back to
# QTDIR environment variable. If that doesn't work, later ask the # QTDIR environment variable. If that doesn't work, later ask the
# user to use the -qtdir option explicitly. # user to use the -qtdir option explicitly.
my $qtbasedir = dirname(dirname($0)); my $qtbasedir = $ENV{"QTDIR"};
$qtbasedir = $ENV{"QTDIR"} if ($qtbasedir !~ /qtbase/); $qtbasedir = dirname(dirname($0)) if (!$qtbasedir);
$qtbasedir =~ s=\\=/=g if (defined $qtbasedir); $qtbasedir =~ s=\\=/=g if (defined $qtbasedir);
# will be defined based on the modules sync.profile # will be defined based on the modules sync.profile
@ -717,7 +717,7 @@ while ( @ARGV ) {
die "Cannot automatically detect/use provided path to QtBase's build directory!\n" . die "Cannot automatically detect/use provided path to QtBase's build directory!\n" .
"QTDIR detected/provided: " . (defined $qtbasedir ? $qtbasedir : "-none-") . "\n" . "QTDIR detected/provided: " . (defined $qtbasedir ? $qtbasedir : "-none-") . "\n" .
"Please -qtdir option to provide the correct path.\nsyncqt failed" "Please -qtdir option to provide the correct path.\nsyncqt failed"
if (!defined $qtbasedir || (!-e "$qtbasedir/.qmake.cache" && $qtbasedir !~ /qtbase/)); if (!$qtbasedir || !-d "$qtbasedir/mkspecs");
# if we have no $basedir we cannot be sure which sources you want, so die # if we have no $basedir we cannot be sure which sources you want, so die
die "Could not find any sync.profile for your module!\nPass <module directory> to syncqt to sync your header files.\nsyncqt failed" if (!$basedir); die "Could not find any sync.profile for your module!\nPass <module directory> to syncqt to sync your header files.\nsyncqt failed" if (!$basedir);