aboutsummaryrefslogtreecommitdiffstats
path: root/qt-cpp
diff options
context:
space:
mode:
authorOrkun Tokdemir <orkun.tokdemir@qt.io>2024-10-07 15:38:25 +0200
committerOrkun Tokdemir <orkun.tokdemir@qt.io>2024-10-23 14:19:40 +0000
commitfa22146588d33c5e911452bef0d16b7019a26336 (patch)
tree3f49a910c581f65e61b7c2127818d662cb5ff020 /qt-cpp
parente2fd5ea1e746880b51d42d6246513206c23bd12b (diff)
Add vcpkg support
* Update package.json & add `command-exists` * Add kit generation for vcpkg Task-number: VSCODEEXT-93 Change-Id: Iaae7c5b1cf1afc07a74544ad1840b13e3dba0350 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Diffstat (limited to 'qt-cpp')
-rw-r--r--qt-cpp/src/kit-manager.ts21
1 files changed, 13 insertions, 8 deletions
diff --git a/qt-cpp/src/kit-manager.ts b/qt-cpp/src/kit-manager.ts
index 3ec98eb..5403611 100644
--- a/qt-cpp/src/kit-manager.ts
+++ b/qt-cpp/src/kit-manager.ts
@@ -20,7 +20,8 @@ import {
QtInfo,
QtAdditionalPath,
generateDefaultQtPathsName,
- IsWindows
+ IsWindows,
+ getVCPKGRoot
} from 'qt-lib';
import * as qtPath from '@util/get-qt-paths';
import { CppProject } from '@/project';
@@ -323,13 +324,10 @@ export class KitManager {
const isQt6 = version?.startsWith('6') ?? false;
if (isQt6) {
- const toolchainFile = path.join(
- libs,
- 'cmake',
- 'Qt6',
- `qt.toolchain.cmake`
- );
- if (!fsSync.existsSync(toolchainFile)) {
+ const toolchainFile = qtInfo.isVCPKG
+ ? KitManager.getVCPKGToolchainFile()
+ : path.join(libs, 'cmake', 'Qt6', `qt.toolchain.cmake`);
+ if (!toolchainFile || !fsSync.existsSync(toolchainFile)) {
const warn = `Toolchain file not found: ${toolchainFile}`;
void vscode.window.showWarningMessage(warn);
logger.error(warn);
@@ -808,6 +806,13 @@ export class KitManager {
coreAPI?.getValue<QtAdditionalPath[]>(folder, AdditionalQtPathsName) ?? []
);
}
+ private static getVCPKGToolchainFile() {
+ const vckpgRoot = getVCPKGRoot();
+ if (!vckpgRoot) {
+ return undefined;
+ }
+ return path.join(vckpgRoot, 'scripts', 'buildsystems', 'vcpkg.cmake');
+ }
}
export function getCurrentGlobalQtInstallationRoot(): string {
return coreAPI?.getValue<string>(GlobalWorkspace, QtInsRootConfigName) ?? '';