mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-18 12:53:02 +08:00
[vcpkg integrate] Naming convention fixes
This commit is contained in:
parent
03edddef24
commit
775dc8ce40
@ -8,10 +8,10 @@
|
||||
|
||||
namespace vcpkg::Commands::Integrate
|
||||
{
|
||||
static const std::array<fs::path, 2> old_system_target_files = {
|
||||
static const std::array<fs::path, 2> OLD_SYSTEM_TARGET_FILES = {
|
||||
System::get_program_files_32_bit() / "MSBuild/14.0/Microsoft.Common.Targets/ImportBefore/vcpkg.nuget.targets",
|
||||
System::get_program_files_32_bit() / "MSBuild/14.0/Microsoft.Common.Targets/ImportBefore/vcpkg.system.targets"};
|
||||
static const fs::path system_wide_targets_file =
|
||||
static const fs::path SYSTEM_WIDE_TARGETS_FILE =
|
||||
System::get_program_files_32_bit() / "MSBuild/Microsoft.Cpp/v4.0/V140/ImportBefore/Default/vcpkg.system.props";
|
||||
|
||||
static std::string create_appdata_targets_shortcut(const std::string& target_path) noexcept
|
||||
@ -82,7 +82,7 @@ namespace vcpkg::Commands::Integrate
|
||||
const std::string& nuget_id,
|
||||
const std::string& nupkg_version)
|
||||
{
|
||||
static constexpr auto content_template = R"(
|
||||
static constexpr auto CONTENT_TEMPLATE = R"(
|
||||
<package>
|
||||
<metadata>
|
||||
<id>@NUGET_ID@</id>
|
||||
@ -99,7 +99,7 @@ namespace vcpkg::Commands::Integrate
|
||||
</package>
|
||||
)";
|
||||
|
||||
std::string content = std::regex_replace(content_template, std::regex("@NUGET_ID@"), nuget_id);
|
||||
std::string content = std::regex_replace(CONTENT_TEMPLATE, std::regex("@NUGET_ID@"), nuget_id);
|
||||
content = std::regex_replace(content, std::regex("@VCPKG_DIR@"), vcpkg_root_dir.string());
|
||||
content = std::regex_replace(content, std::regex("@VERSION@"), nupkg_version);
|
||||
return content;
|
||||
@ -113,36 +113,36 @@ namespace vcpkg::Commands::Integrate
|
||||
|
||||
static ElevationPromptChoice elevated_cmd_execute(const std::string& param)
|
||||
{
|
||||
SHELLEXECUTEINFO shExInfo = {0};
|
||||
shExInfo.cbSize = sizeof(shExInfo);
|
||||
shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
|
||||
shExInfo.hwnd = nullptr;
|
||||
shExInfo.lpVerb = "runas";
|
||||
shExInfo.lpFile = "cmd"; // Application to start
|
||||
SHELLEXECUTEINFO sh_ex_info = {0};
|
||||
sh_ex_info.cbSize = sizeof(sh_ex_info);
|
||||
sh_ex_info.fMask = SEE_MASK_NOCLOSEPROCESS;
|
||||
sh_ex_info.hwnd = nullptr;
|
||||
sh_ex_info.lpVerb = "runas";
|
||||
sh_ex_info.lpFile = "cmd"; // Application to start
|
||||
|
||||
shExInfo.lpParameters = param.c_str(); // Additional parameters
|
||||
shExInfo.lpDirectory = nullptr;
|
||||
shExInfo.nShow = SW_HIDE;
|
||||
shExInfo.hInstApp = nullptr;
|
||||
sh_ex_info.lpParameters = param.c_str(); // Additional parameters
|
||||
sh_ex_info.lpDirectory = nullptr;
|
||||
sh_ex_info.nShow = SW_HIDE;
|
||||
sh_ex_info.hInstApp = nullptr;
|
||||
|
||||
if (!ShellExecuteExA(&shExInfo))
|
||||
if (!ShellExecuteExA(&sh_ex_info))
|
||||
{
|
||||
return ElevationPromptChoice::NO;
|
||||
}
|
||||
if (shExInfo.hProcess == nullptr)
|
||||
if (sh_ex_info.hProcess == nullptr)
|
||||
{
|
||||
return ElevationPromptChoice::NO;
|
||||
}
|
||||
WaitForSingleObject(shExInfo.hProcess, INFINITE);
|
||||
CloseHandle(shExInfo.hProcess);
|
||||
WaitForSingleObject(sh_ex_info.hProcess, INFINITE);
|
||||
CloseHandle(sh_ex_info.hProcess);
|
||||
return ElevationPromptChoice::YES;
|
||||
}
|
||||
|
||||
static fs::path get_appdata_targets_path()
|
||||
{
|
||||
static const fs::path local_app_data =
|
||||
static const fs::path LOCAL_APP_DATA =
|
||||
fs::path(System::get_environment_variable(L"LOCALAPPDATA").value_or_exit(VCPKG_LINE_INFO));
|
||||
return local_app_data / "vcpkg" / "vcpkg.user.targets";
|
||||
return LOCAL_APP_DATA / "vcpkg" / "vcpkg.user.targets";
|
||||
}
|
||||
|
||||
static void integrate_install(const VcpkgPaths& paths)
|
||||
@ -150,7 +150,7 @@ namespace vcpkg::Commands::Integrate
|
||||
auto& fs = paths.get_filesystem();
|
||||
|
||||
// TODO: This block of code should eventually be removed
|
||||
for (auto&& old_system_wide_targets_file : old_system_target_files)
|
||||
for (auto&& old_system_wide_targets_file : OLD_SYSTEM_TARGET_FILES)
|
||||
{
|
||||
if (fs.exists(old_system_wide_targets_file))
|
||||
{
|
||||
@ -174,7 +174,7 @@ namespace vcpkg::Commands::Integrate
|
||||
fs.create_directory(tmp_dir, ec);
|
||||
|
||||
bool should_install_system = true;
|
||||
const Expected<std::string> system_wide_file_contents = fs.read_contents(system_wide_targets_file);
|
||||
const Expected<std::string> system_wide_file_contents = fs.read_contents(SYSTEM_WIDE_TARGETS_FILE);
|
||||
if (auto contents_data = system_wide_file_contents.get())
|
||||
{
|
||||
std::regex re(R"###(<!-- version (\d+) -->)###");
|
||||
@ -193,9 +193,9 @@ namespace vcpkg::Commands::Integrate
|
||||
fs.write_contents(sys_src_path, create_system_targets_shortcut());
|
||||
|
||||
const std::string param = Strings::format(R"(/c mkdir "%s" & copy "%s" "%s" /Y > nul)",
|
||||
system_wide_targets_file.parent_path().string(),
|
||||
SYSTEM_WIDE_TARGETS_FILE.parent_path().string(),
|
||||
sys_src_path.string(),
|
||||
system_wide_targets_file.string());
|
||||
SYSTEM_WIDE_TARGETS_FILE.string());
|
||||
ElevationPromptChoice user_choice = elevated_cmd_execute(param);
|
||||
switch (user_choice)
|
||||
{
|
||||
@ -207,9 +207,9 @@ namespace vcpkg::Commands::Integrate
|
||||
}
|
||||
|
||||
Checks::check_exit(VCPKG_LINE_INFO,
|
||||
fs.exists(system_wide_targets_file),
|
||||
fs.exists(SYSTEM_WIDE_TARGETS_FILE),
|
||||
"Error: failed to copy targets file to %s",
|
||||
system_wide_targets_file.string());
|
||||
SYSTEM_WIDE_TARGETS_FILE.string());
|
||||
}
|
||||
|
||||
const fs::path appdata_src_path = tmp_dir / "vcpkg.user.targets";
|
||||
|
Loading…
Reference in New Issue
Block a user