From ce3530033d2618ee368b4dd649c25706118c20d5 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Mon, 3 Jul 2023 16:45:17 +0200 Subject: [PATCH] Vcpkg: Detect vcpkg root from path Change-Id: Ieff796b228fba9cb5bddc6a012da0eacb1bfa43f Reviewed-by: Cristian Adam --- src/plugins/vcpkg/vcpkgconstants.h | 1 + src/plugins/vcpkg/vcpkgsettings.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/vcpkg/vcpkgconstants.h b/src/plugins/vcpkg/vcpkgconstants.h index 644dfab95f9..19136ba9f53 100644 --- a/src/plugins/vcpkg/vcpkgconstants.h +++ b/src/plugins/vcpkg/vcpkgconstants.h @@ -8,6 +8,7 @@ namespace Vcpkg::Constants { const char TOOLSSETTINGSPAGE_ID[] = "Vcpkg.VcpkgSettings"; const char WEBSITE_URL[] = "https://vcpkg.io/"; const char ENVVAR_VCPKG_ROOT[] = "VCPKG_ROOT"; +const char VCPKG_COMMAND[] = "vcpkg"; const char VCPKGMANIFEST_EDITOR_ID[] = "Vcpkg.VcpkgManifestEditor"; const char VCPKGMANIFEST_MIMETYPE[] = "application/vcpkg.manifest+json"; diff --git a/src/plugins/vcpkg/vcpkgsettings.cpp b/src/plugins/vcpkg/vcpkgsettings.cpp index 7c26af9fda3..aa223651cf2 100644 --- a/src/plugins/vcpkg/vcpkgsettings.cpp +++ b/src/plugins/vcpkg/vcpkgsettings.cpp @@ -37,8 +37,12 @@ VcpkgSettings::VcpkgSettings() vcpkgRoot.setSettingsKey("VcpkgRoot"); vcpkgRoot.setExpectedKind(PathChooser::ExistingDirectory); - vcpkgRoot.setDefaultValue( - FilePath::fromUserInput(qtcEnvironmentVariable(Constants::ENVVAR_VCPKG_ROOT))); + FilePath defaultPath = Environment::systemEnvironment().searchInPath(Constants::VCPKG_COMMAND) + .parentDir(); + if (!defaultPath.isDir()) + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(Constants::ENVVAR_VCPKG_ROOT)); + if (defaultPath.isDir()) + vcpkgRoot.setDefaultValue(defaultPath); setLayouter([this] { using namespace Layouting;