aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/install/init.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2023-03-23 06:18:26 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2023-03-23 06:18:26 +0200
commit5a763a5552184090602f0a9303b9266f5412f020 (patch)
tree0cf1fb0189157c4d02976156007fe4ee6ad7f1d1 /libbuild2/install/init.cxx
parentf62b8809d827a0474284e75ad5724cf201ed83b1 (diff)
Add support for relocatable installation manifest
Diffstat (limited to 'libbuild2/install/init.cxx')
-rw-r--r--libbuild2/install/init.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/libbuild2/install/init.cxx b/libbuild2/install/init.cxx
index a3155d1..7962171 100644
--- a/libbuild2/install/init.cxx
+++ b/libbuild2/install/init.cxx
@@ -480,7 +480,8 @@ namespace build2
// variable can only be specified as a global override. (While it
// could be handy to save this varible in config.build in some
// situations, supporting this will complicate the global override
- // case).
+ // case). Note that as a result the manifest file path may not be
+ // specified in terms of the config.install.* values.
//
// Note also that the manifest is produced even in the dry-run mode.
// However, in this case no directory creation is tracked.
@@ -530,6 +531,13 @@ namespace build2
// vector<filesystem_entry*> entries;
// };
//
+ // If installation is relocatable (see config.install.relocatable) and
+ // the installation manifest file path is inside config.install.root
+ // (including chroot), then absolute filesystem_entry::path's are
+ // saved as relative to the manifest file's directory (note that
+ // symlink_entry::target cannot be absolute in relocatable
+ // installation).
+ //
{
auto& v (vp.insert<path> ("config.install.manifest"));