diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2020-03-09 09:19:05 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2020-03-09 09:19:05 -0700 |
| commit | 6b55c62144b120f3c5fc0d3cd8163f309241a18a (patch) | |
| tree | 125aa435dff79db545fc4b08ab0c3cb537bc725c /toolsrc/include | |
| parent | e21400c7cae2c2df3a9dce6ef8e3c4bf7109aaac (diff) | |
| parent | d0b1f2a9e8ed1ea53d181d13c69e15cf775148db (diff) | |
| download | vcpkg-6b55c62144b120f3c5fc0d3cd8163f309241a18a.tar.gz vcpkg-6b55c62144b120f3c5fc0d3cd8163f309241a18a.zip | |
Merge remote-tracking branch 'origin/master' into HEAD
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/vcpkg/cmakevars.h | 53 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg/textrowcol.h | 4 |
2 files changed, 14 insertions, 43 deletions
diff --git a/toolsrc/include/vcpkg/cmakevars.h b/toolsrc/include/vcpkg/cmakevars.h index 8d131d45e..1c02376b9 100644 --- a/toolsrc/include/vcpkg/cmakevars.h +++ b/toolsrc/include/vcpkg/cmakevars.h @@ -1,15 +1,21 @@ #pragma once -#include <vcpkg/base/hash.h> -#include <vcpkg/base/system.process.h> +#include <vcpkg/base/optional.h> #include <vcpkg/portfileprovider.h> #include <vcpkg/vcpkgpaths.h> +namespace vcpkg::Dependencies +{ + struct ActionPlan; +} + namespace vcpkg::CMakeVars { struct CMakeVarProvider { + virtual ~CMakeVarProvider() = default; + virtual Optional<const std::unordered_map<std::string, std::string>&> get_generic_triplet_vars( Triplet triplet) const = 0; @@ -25,45 +31,10 @@ namespace vcpkg::CMakeVars virtual void load_tag_vars(Span<const FullPackageSpec> specs, const PortFileProvider::PortFileProvider& port_provider) const = 0; - }; - - struct TripletCMakeVarProvider : Util::ResourceBase, CMakeVarProvider - { - private: - fs::path create_tag_extraction_file( - const Span<const std::pair<const FullPackageSpec*, std::string>>& spec_abi_settings) const; - - fs::path create_dep_info_extraction_file(const Span<const PackageSpec> specs) const; - - void launch_and_split(const fs::path& script_path, - std::vector<std::vector<std::pair<std::string, std::string>>>& vars) const; - public: - explicit TripletCMakeVarProvider(const vcpkg::VcpkgPaths& paths) : paths(paths) {} - - void load_generic_triplet_vars(Triplet triplet) const override; - - void load_dep_info_vars(Span<const PackageSpec> specs) const override; - - void load_tag_vars(Span<const FullPackageSpec> specs, - const PortFileProvider::PortFileProvider& port_provider) const override; - - Optional<const std::unordered_map<std::string, std::string>&> get_generic_triplet_vars( - Triplet triplet) const override; - - Optional<const std::unordered_map<std::string, std::string>&> get_dep_info_vars( - const PackageSpec& spec) const override; - - Optional<const std::unordered_map<std::string, std::string>&> get_tag_vars( - const PackageSpec& spec) const override; - - private: - const VcpkgPaths& paths; - const fs::path& cmake_exe_path = paths.get_tool_exe(Tools::CMAKE); - const fs::path get_tags_path = paths.scripts / "vcpkg_get_tags.cmake"; - const fs::path get_dep_info_path = paths.scripts / "vcpkg_get_dep_info.cmake"; - mutable std::unordered_map<PackageSpec, std::unordered_map<std::string, std::string>> dep_resolution_vars; - mutable std::unordered_map<PackageSpec, std::unordered_map<std::string, std::string>> tag_vars; - mutable std::unordered_map<Triplet, std::unordered_map<std::string, std::string>> generic_triplet_vars; + void load_tag_vars(const vcpkg::Dependencies::ActionPlan& action_plan, + const PortFileProvider::PortFileProvider& port_provider) const; }; + + std::unique_ptr<CMakeVarProvider> make_triplet_cmake_var_provider(const vcpkg::VcpkgPaths& paths); } diff --git a/toolsrc/include/vcpkg/textrowcol.h b/toolsrc/include/vcpkg/textrowcol.h index cd2b223e2..90c50d887 100644 --- a/toolsrc/include/vcpkg/textrowcol.h +++ b/toolsrc/include/vcpkg/textrowcol.h @@ -4,8 +4,8 @@ namespace vcpkg::Parse {
struct TextRowCol
{
- TextRowCol() = default;
- TextRowCol(int row, int column) : row(row), column(column) {}
+ constexpr TextRowCol() noexcept = default;
+ constexpr TextRowCol(int row, int column) noexcept : row(row), column(column) {}
/// '0' indicates uninitialized; '1' is the first row.
int row = 0;
/// '0' indicates uninitialized; '1' is the first column.
|
