I think we've all gotten caught with this problem.
How about the following attached hack in build.pl so that if a normal
dmake fails when launched from build.pl, then do a dmake depend=t and
retry.
To reproduce the original problem do something like
a) cd tools/source/ref
touch hacktest.hxx
edit pstm.cxx to include hacktest.hxx
build
all ok
b) now
rm hacktest.hxx
edit pstm.cxx to remove hacktest.hxx
build
"hacktest.hxx" not found and can't be made, due to the dependency
generation. All a bit nasty.
C.
diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl
index 43c0188..d5b4609 100755
--- a/solenv/bin/build.pl
+++ b/solenv/bin/build.pl
@@ -783,6 +783,16 @@ sub dmake_dir {
remove_from_dependencies($job_name, \%local_deps_hash) if (!$child);
return if ($cmd_file || $show);
$error_code = run_job($dmake, $job_name);
+
+ if ($error_code && ($ENV{nodep} eq '') && ($ENV{depend} eq '')) {
+ print "Forcing regeneration of dependency info\n";
+ $ENV{depend} = 't';
+ run_job($dmake, $job_name);
+ print "Retrying $job_name\n";
+ $ENV{depend} = '';
+ $error_code = run_job($dmake, $job_name);
+ }
+
html_store_job_info(\%local_deps_hash, $job_name, $error_code) if (!$child);
};
if ($error_code && $ignore) {
Context
- [Libreoffice] When a file is removed, dependency info is stale and not regenerated · Caolán McNamara
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.