diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-04-30 04:09:05 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-05-01 17:24:54 -0700 |
| commit | 20657a29ca8cc2aec104caca7703fcd72bf5746e (patch) | |
| tree | 800fc0675cf6e184303921c8adea8ea8fc297e56 /toolsrc/include/vcpkg_Build.h | |
| parent | a0d5b944953f14cb58121e76f7fe6140e8134ca3 (diff) | |
| download | vcpkg-20657a29ca8cc2aec104caca7703fcd72bf5746e.tar.gz vcpkg-20657a29ca8cc2aec104caca7703fcd72bf5746e.zip | |
[vcpkg] Split vcpkg::Commands::Build -> vcpkg::Build, vcpkg::Commands::BuildCommand
Diffstat (limited to 'toolsrc/include/vcpkg_Build.h')
| -rw-r--r-- | toolsrc/include/vcpkg_Build.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg_Build.h b/toolsrc/include/vcpkg_Build.h new file mode 100644 index 000000000..f4b9300c5 --- /dev/null +++ b/toolsrc/include/vcpkg_Build.h @@ -0,0 +1,60 @@ +#pragma once + +#include "PackageSpec.h" +#include "PostBuildLint_BuildPolicies.h" +#include "PostBuildLint_LinkageType.h" +#include "StatusParagraphs.h" +#include "VcpkgPaths.h" +#include "vcpkg_Files.h" +#include <map> +#include <string> +#include <unordered_map> +#include <vector> + +namespace vcpkg::Build +{ + enum class BuildResult + { + NULLVALUE = 0, + SUCCEEDED, + BUILD_FAILED, + POST_BUILD_CHECKS_FAILED, + CASCADED_DUE_TO_MISSING_DEPENDENCIES + }; + + static constexpr std::array<BuildResult, 4> BuildResult_values = { + BuildResult::SUCCEEDED, + BuildResult::BUILD_FAILED, + BuildResult::POST_BUILD_CHECKS_FAILED, + BuildResult::CASCADED_DUE_TO_MISSING_DEPENDENCIES}; + + const std::string& to_string(const BuildResult build_result); + std::string create_error_message(const BuildResult build_result, const PackageSpec& spec); + std::string create_user_troubleshooting_message(const PackageSpec& spec); + + std::wstring make_build_env_cmd(const Triplet& triplet, const Toolset& toolset); + + struct ExtendedBuildResult + { + BuildResult code; + std::vector<PackageSpec> unmet_dependencies; + }; + + ExtendedBuildResult build_package(const SourceParagraph& source_paragraph, + const PackageSpec& spec, + const VcpkgPaths& paths, + const fs::path& port_dir, + const StatusParagraphs& status_db); + + struct BuildInfo + { + static BuildInfo create(std::unordered_map<std::string, std::string> pgh); + + PostBuildLint::LinkageType crt_linkage; + PostBuildLint::LinkageType library_linkage; + + std::map<PostBuildLint::BuildPolicies, bool> policies; + }; + + BuildInfo read_build_info(const Files::Filesystem& fs, const fs::path& filepath); +} |
