kdesrc-build: improve message about why a full refresh is needed

i.e. be more precise than "meets other building criteria"

REVIEW: 124613
wilder
David Faure 11 years ago
parent 8d118d2f6d
commit d480b86c65
  1. 26
      modules/ksb/BuildSystem.pm
  2. 5
      modules/ksb/IPC.pm
  3. 3
      modules/ksb/Module.pm
  4. 7
      modules/ksb/l10nSystem.pm

@ -60,7 +60,7 @@ sub module
# Subroutine to determine if a given module needs to have the build system
# recreated from scratch.
# If so, it returns boolean true.
# If so, it returns a non empty string
sub needsRefreshed
{
my $self = assert_isa(shift, 'ksb::BuildSystem');
@ -68,13 +68,23 @@ sub needsRefreshed
my $builddir = $module->fullpath('build');
my $confFileKey = $self->configuredModuleFileName();
return 1 if ((not -e "$builddir") ||
(-e "$builddir/.refresh-me") ||
$module->getOption("refresh-build") ||
(($module->getPersistentOption('failure-count') // 0) > 1) ||
(not -e "$builddir/$confFileKey"));
return 0;
if (not -e "$builddir") {
return "the build directory doesn't exist";
}
if (-e "$builddir/.refresh-me") {
return "the last configure failed"; # see Module.pm
}
if ($module->getOption("refresh-build")) {
return "the option refresh-build was set";
}
if (($module->getPersistentOption('failure-count') // 0) > 1) {
return "the module has failed to build " . $module->getPersistentOption('failure-count') . " times in a row";
}
if (not -e "$builddir/$confFileKey") {
return "$builddir/$confFileKey is missing";
}
return "";
}
# Returns true if the given subdirectory (reference from the module's root source directory)

@ -159,10 +159,11 @@ sub waitForModule
# Properly account for users manually doing --refresh-build or
# using .refresh-me.
$message = 'no files affected';
if ($module->buildSystem()->needsRefreshed())
my $refreshReason = $module->buildSystem()->needsRefreshed();
if ($refreshReason ne "")
{
$updated->{$buffer} = 'success';
note ("\tNo source update, but g[$module] meets other building criteria.");
note ("\tNo source update, but $refreshReason");
}
else
{

@ -473,7 +473,8 @@ sub setupBuildSystem
croak_internal('Build system determination still pending when build attempted.');
}
if ($buildSystem->needsRefreshed())
my $refreshReason = $buildSystem->needsRefreshed();
if ($refreshReason ne "")
{
# The build system needs created, either because it doesn't exist, or
# because the user has asked that it be completely rebuilt.

@ -24,7 +24,8 @@ sub new
# TODO: Support different localization branches?
$module->setOption('module-base-path', 'trunk/l10n-kde4');
return bless { module => $module, needsRefreshed => 1 }, $class;
my $refreshMessage = "an update happened";
return bless { module => $module, needsRefreshed => $refreshMessage }, $class;
}
sub module
@ -75,7 +76,7 @@ sub updateInternal
$self->check_module_validity();
my $count = $self->update_module_path(@dirs);
$self->{needsRefreshed} = 0 if $count == 0;
$self->{needsRefreshed} = '' if $count == 0;
return $count;
}
else {
@ -103,7 +104,7 @@ sub needsRefreshed
{
my $self = shift;
# Should be 1 except if no update happened.
# Should be a 'reason' string except if no update happened.
return $self->{needsRefreshed};
}

Loading…
Cancel
Save