aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-04 16:25:17 -0700
committerGitHub <noreply@github.com>2017-10-04 16:25:17 -0700
commit875a1269be98971d492f0761e0ed3502957b5673 (patch)
tree5d6748c384cb46f0df59ced1f7f8dab4bd983bea /toolsrc/include
parent40d531e911618c6e2517d9646c39ad538fd0d352 (diff)
parentc98db7541594eadccf6823d4fdde2ff8c53c5fe9 (diff)
downloadvcpkg-875a1269be98971d492f0761e0ed3502957b5673.tar.gz
vcpkg-875a1269be98971d492f0761e0ed3502957b5673.zip
Merge pull request #1734 from podsvirov/export-ifw
WIP: Export IFW (Beta)
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/Span.h2
-rw-r--r--toolsrc/include/VcpkgPaths.h6
-rw-r--r--toolsrc/include/vcpkg_Commands_Export.h8
-rw-r--r--toolsrc/include/vcpkg_Commands_Export_IFW.h25
4 files changed, 41 insertions, 0 deletions
diff --git a/toolsrc/include/Span.h b/toolsrc/include/Span.h
index b2c9acdbc..a43e8f992 100644
--- a/toolsrc/include/Span.h
+++ b/toolsrc/include/Span.h
@@ -2,6 +2,7 @@
#include <array>
#include <cstddef>
+#include <initializer_list>
#include <vector>
template<class T>
@@ -17,6 +18,7 @@ public:
constexpr Span(std::nullptr_t) noexcept : Span() {}
constexpr Span(T* ptr, size_t count) noexcept : m_ptr(ptr), m_count(count) {}
constexpr Span(T* ptr_begin, T* ptr_end) noexcept : m_ptr(ptr_begin), m_count(ptr_end - ptr_begin) {}
+ constexpr Span(std::initializer_list<T> l) noexcept : m_ptr(l.begin()), m_count(l.size()) {}
template<size_t N>
constexpr Span(T (&arr)[N]) noexcept : Span(arr, N)
diff --git a/toolsrc/include/VcpkgPaths.h b/toolsrc/include/VcpkgPaths.h
index 3c1955204..4b4527434 100644
--- a/toolsrc/include/VcpkgPaths.h
+++ b/toolsrc/include/VcpkgPaths.h
@@ -58,6 +58,9 @@ namespace vcpkg
const fs::path& get_cmake_exe() const;
const fs::path& get_git_exe() const;
const fs::path& get_nuget_exe() const;
+ const fs::path& get_ifw_installerbase_exe() const;
+ const fs::path& get_ifw_binarycreator_exe() const;
+ const fs::path& get_ifw_repogen_exe() const;
/// <summary>Retrieve a toolset matching a VS version</summary>
/// <remarks>
@@ -71,6 +74,9 @@ namespace vcpkg
Lazy<fs::path> cmake_exe;
Lazy<fs::path> git_exe;
Lazy<fs::path> nuget_exe;
+ Lazy<fs::path> ifw_installerbase_exe;
+ Lazy<fs::path> ifw_binarycreator_exe;
+ Lazy<fs::path> ifw_repogen_exe;
Lazy<std::vector<Toolset>> toolsets;
Lazy<std::vector<Toolset>> toolsets_vs2017_v140;
};
diff --git a/toolsrc/include/vcpkg_Commands_Export.h b/toolsrc/include/vcpkg_Commands_Export.h
new file mode 100644
index 000000000..6e698c1b4
--- /dev/null
+++ b/toolsrc/include/vcpkg_Commands_Export.h
@@ -0,0 +1,8 @@
+#pragma once
+
+#include "VcpkgPaths.h"
+
+namespace vcpkg::Commands::Export
+{
+ void export_integration_files(const fs::path& raw_exported_dir_path, const VcpkgPaths& paths);
+}
diff --git a/toolsrc/include/vcpkg_Commands_Export_IFW.h b/toolsrc/include/vcpkg_Commands_Export_IFW.h
new file mode 100644
index 000000000..7bee45eaf
--- /dev/null
+++ b/toolsrc/include/vcpkg_Commands_Export_IFW.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "VcpkgPaths.h"
+#include "vcpkg_Dependencies.h"
+#include "vcpkg_Files.h"
+
+#include <string>
+#include <vector>
+
+namespace vcpkg::Commands::Export::IFW
+{
+ struct Options
+ {
+ Optional<std::string> maybe_repository_url;
+ Optional<std::string> maybe_packages_dir_path;
+ Optional<std::string> maybe_repository_dir_path;
+ Optional<std::string> maybe_config_file_path;
+ Optional<std::string> maybe_installer_file_path;
+ };
+
+ void do_export(const std::vector<Dependencies::ExportPlanAction>& export_plan,
+ const std::string& export_id,
+ const Options& ifw_options,
+ const VcpkgPaths& paths);
+}