aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkglib.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-03-10 16:39:04 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-03-10 17:04:29 -0800
commitf93b3ccc4fb85bb9ef3f3f15d240647b44769fc4 (patch)
treeb9b350726a7a110633e853cde0e6691aaac131d6 /toolsrc/src/vcpkglib.cpp
parent0b30bc7243b7caf3cfce9130f3862607efe715bd (diff)
downloadvcpkg-f93b3ccc4fb85bb9ef3f3f15d240647b44769fc4.tar.gz
vcpkg-f93b3ccc4fb85bb9ef3f3f15d240647b44769fc4.zip
Introduce make_cmake_cmd() helper function
Diffstat (limited to 'toolsrc/src/vcpkglib.cpp')
-rw-r--r--toolsrc/src/vcpkglib.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/toolsrc/src/vcpkglib.cpp b/toolsrc/src/vcpkglib.cpp
index 2415372db..7ea33da0a 100644
--- a/toolsrc/src/vcpkglib.cpp
+++ b/toolsrc/src/vcpkglib.cpp
@@ -3,6 +3,7 @@
#include "vcpkg_Files.h"
#include "Paragraphs.h"
#include "metrics.h"
+#include "vcpkg_Strings.h"
namespace vcpkg
{
@@ -159,7 +160,7 @@ namespace vcpkg
x86-windows/include/FLAC++/all.h
x86-windows/include/FLAC++/decoder.h
x86-windows/include/FLAC++/encoder.h
- */
+ */
// Note that after sorting, the FLAC++/ group will be placed before the FLAC/ group
// The new format is lexicographically sorted
std::sort(lines->begin(), lines->end());
@@ -200,4 +201,15 @@ namespace vcpkg
return installed_files;
}
+
+ CMakeVariable::CMakeVariable(const std::wstring& varname, const wchar_t* varvalue) : s(Strings::wformat(LR"("-D%s=%s")", varname, varvalue)) { }
+ CMakeVariable::CMakeVariable(const std::wstring& varname, const std::string& varvalue) : CMakeVariable(varname, Strings::utf8_to_utf16(varvalue).c_str()) { }
+ CMakeVariable::CMakeVariable(const std::wstring& varname, const std::wstring& varvalue) : CMakeVariable(varname, varvalue.c_str()) {}
+ CMakeVariable::CMakeVariable(const std::wstring& varname, const fs::path& path) : CMakeVariable(varname, path.generic_wstring()) {}
+
+ std::wstring make_cmake_cmd(const fs::path& cmake_exe, const fs::path& cmake_script, const std::vector<CMakeVariable>& pass_variables)
+ {
+ std::wstring cmd_cmake_pass_variables = Strings::wjoin(L" ", pass_variables, [](auto&& v) { return v.s; });
+ return Strings::wformat(LR"("%s" %s -P "%s")", cmake_exe.native(), cmd_cmake_pass_variables, cmake_script.generic_wstring());
+ }
}