aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/vcpkg_Build.h
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-04-30 04:09:05 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-05-01 17:24:54 -0700
commit20657a29ca8cc2aec104caca7703fcd72bf5746e (patch)
tree800fc0675cf6e184303921c8adea8ea8fc297e56 /toolsrc/include/vcpkg_Build.h
parenta0d5b944953f14cb58121e76f7fe6140e8134ca3 (diff)
downloadvcpkg-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.h60
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);
+}