aboutsummaryrefslogtreecommitdiff
path: root/bpkg/package.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-08-18 08:35:18 +0200
committerKaren Arutyunov <karen@codesynthesis.com>2021-08-18 11:54:44 +0300
commit4e9e142a6564b2a73848e735f9a1b5bb744d6a83 (patch)
tree940d36bf1136ddcecec7318032ae6d59b07e50f6 /bpkg/package.hxx
parentcd315fecaf4c7473950c1610e06417634b416954 (diff)
Also consider subproject directory names when calculating manifest checksums
Diffstat (limited to 'bpkg/package.hxx')
-rw-r--r--bpkg/package.hxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/bpkg/package.hxx b/bpkg/package.hxx
index da5c64a..cb1a401 100644
--- a/bpkg/package.hxx
+++ b/bpkg/package.hxx
@@ -1005,13 +1005,23 @@ namespace bpkg
optional<dir_path> src_root;
bool purge_src;
- // The checksum of the manifest file located in the source directory.
+ // The checksum of the manifest file located in the source directory and
+ // the subproject set. Changes to this information should trigger the
+ // package version revision increment. In particular, new subprojects
+ // should trigger the package reconfiguration.
//
// Must be present if the source directory is present, unless the object
// is created/updated during the package build simulation (see pkg-build
// for details). Note that during the simulation the manifest may not be
// available.
//
+ // @@ Currently we don't consider subprojects recursively (would most
+ // likely require extension to b info, also could be a performance
+ // concern).
+ //
+ // @@ We should probably rename it if/when ODB add support for that for
+ // SQlite.
+ //
optional<std::string> manifest_checksum;
// Path to the output directory of this package, if any. It is
@@ -1153,6 +1163,10 @@ namespace bpkg
// considered its iteration. Return the version of this iteration if that's
// the case and nullopt otherwise.
//
+ // Pass the build2 project info for the package, if available, to speed up
+ // the call and NULL otherwise (in which case it will be queried by the
+ // implementation).
+ //
// Notes:
//
// - The package directory is considered an iteration of the package if this
@@ -1190,6 +1204,7 @@ namespace bpkg
const dir_path&,
const package_name&,
const version&,
+ const package_info*,
bool check_external);
// certificate