diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2016-11-05 01:02:15 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2016-11-05 01:02:15 -0700 |
| commit | 7f336c746776daf2af95914ed25ff3d50a96b387 (patch) | |
| tree | 2251824d5db437212c34dd80229e8241964dd774 /toolsrc/include | |
| parent | e5152851f2bb070eb4bcc2b8968d40d48226b04e (diff) | |
| download | vcpkg-7f336c746776daf2af95914ed25ff3d50a96b387.tar.gz vcpkg-7f336c746776daf2af95914ed25ff3d50a96b387.zip | |
Enable qualified dependencies. Fix bug in internal 'build' command.
Added capability for CONTROL files to specify qualified dependencies, which are substring searched inside triplet names.
Fixed bug in internal 'build' command where if a package is already built, that built package's dependencies will be used to determine requirements for the build instead of the port directory's CONTROL file.
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/SourceParagraph.h | 17 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg.h | 1 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg_Dependencies.h | 2 | ||||
| -rw-r--r-- | toolsrc/include/vcpkglib_helpers.h | 2 |
4 files changed, 18 insertions, 4 deletions
diff --git a/toolsrc/include/SourceParagraph.h b/toolsrc/include/SourceParagraph.h index bac005144..5ae9b38b8 100644 --- a/toolsrc/include/SourceParagraph.h +++ b/toolsrc/include/SourceParagraph.h @@ -5,6 +5,16 @@ namespace vcpkg { + struct triplet; + + struct dependency + { + std::string name; + std::string qualifier; + }; + + std::ostream& operator<<(std::ostream& os, const dependency& p); + struct SourceParagraph { SourceParagraph(); @@ -15,6 +25,11 @@ namespace vcpkg std::string version; std::string description; std::string maintainer; - std::vector<std::string> depends; + std::vector<dependency> depends; }; + + std::vector<std::string> filter_dependencies(const std::vector<vcpkg::dependency>& deps, const triplet& t); + + std::vector<vcpkg::dependency> expand_qualified_dependencies(const std::vector<std::string>& depends); + std::vector<std::string> parse_depends(const std::string& depends_string); } diff --git a/toolsrc/include/vcpkg.h b/toolsrc/include/vcpkg.h index a4a0682cf..dc5933f10 100644 --- a/toolsrc/include/vcpkg.h +++ b/toolsrc/include/vcpkg.h @@ -21,6 +21,7 @@ namespace vcpkg StatusParagraphs database_load_check(const vcpkg_paths& paths); std::vector<std::string> get_unmet_package_dependencies(const vcpkg_paths& paths, const package_spec& spec, const StatusParagraphs& status_db); + std::vector<std::string> get_unmet_package_build_dependencies(const vcpkg_paths& paths, const package_spec& spec, const StatusParagraphs& status_db); void install_package(const vcpkg_paths& paths, const BinaryParagraph& binary_paragraph, StatusParagraphs& status_db); void deinstall_package(const vcpkg_paths& paths, const package_spec& spec, StatusParagraphs& status_db); diff --git a/toolsrc/include/vcpkg_Dependencies.h b/toolsrc/include/vcpkg_Dependencies.h index 9dc32fc41..94aa51f99 100644 --- a/toolsrc/include/vcpkg_Dependencies.h +++ b/toolsrc/include/vcpkg_Dependencies.h @@ -9,5 +9,5 @@ namespace vcpkg {namespace Dependencies { std::vector<package_spec> create_dependency_ordered_install_plan(const vcpkg_paths& paths, const std::vector<package_spec>& specs, const StatusParagraphs& status_db); - std::unordered_set<package_spec> find_unmet_dependencies(const vcpkg_paths& paths, const package_spec& spec, const StatusParagraphs& status_db); + std::unordered_set<package_spec> find_unmet_dependencies(const vcpkg_paths& paths, const std::vector<package_spec>& specs, const StatusParagraphs& status_db); }} diff --git a/toolsrc/include/vcpkglib_helpers.h b/toolsrc/include/vcpkglib_helpers.h index 05c9e17df..640fab555 100644 --- a/toolsrc/include/vcpkglib_helpers.h +++ b/toolsrc/include/vcpkglib_helpers.h @@ -9,6 +9,4 @@ namespace vcpkg {namespace details std::string required_field(const std::unordered_map<std::string, std::string>& fields, const std::string& fieldname); std::string remove_required_field(std::unordered_map<std::string, std::string>* fields, const std::string& fieldname); - - std::vector<std::string> parse_depends(const std::string& depends_string); }} |
