Vcpkg: Detect vcpkg root from path

Change-Id: Ieff796b228fba9cb5bddc6a012da0eacb1bfa43f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Cristian Adam
2023-07-03 16:45:17 +02:00
committed by Alessandro Portale
parent d9910058a3
commit ce3530033d
2 changed files with 7 additions and 2 deletions

View File

@@ -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";

View File

@@ -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;