xbintsc 0.6.8 → 0.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli/help.d.ts +1 -1
- package/dist/src/driver/toolchain.d.ts +10 -0
- package/dist/src/driver/toolchain.js +69 -8
- package/dist/src/driver/toolchain.js.map +1 -1
- package/dist/src/driver/version.d.ts +1 -1
- package/dist/src/driver/version.js +1 -1
- package/dist/tests/driver/toolchain.test.js +23 -2
- package/dist/tests/driver/toolchain.test.js.map +1 -1
- package/doc/requirements.md +5 -3
- package/doc/zh-CN/requirements.md +5 -2
- package/package.json +7 -7
- package/src/driver/toolchain.ts +79 -8
- package/src/driver/version.ts +1 -1
package/dist/src/cli/help.d.ts
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* It lives apart from the command dispatch so the executable entry point stays
|
|
5
5
|
* under the repository's per-file line budget; the text is data, not logic.
|
|
6
6
|
*/
|
|
7
|
-
export declare const HELP = "xbintsc 0.6.
|
|
7
|
+
export declare const HELP = "xbintsc 0.6.9 - TypeScript binary compiler\n\nUsage:\n xbintsc build <file.ts> [options] Compile to a native binary\n xbintsc run <file.ts> [-- args] Compile and execute\n xbintsc check <file.ts> Parse, bind and check without linking\n xbintsc watch <file.ts> [options] Rebuild whenever the source tree changes\n xbintsc emit <file.ts> Print LLVM IR\n xbintsc doctor Report the resolved toolchain\n xbintsc version Print the version\n xbintsc help Show this message\n\nOptions:\n -o, --output <path> Output path\n --out <dir> Output directory (default: build/)\n --emit <kind> exe | obj | ir (default: exe)\n -O0..-O3 Optimization level (default: -O2)\n --ext <names> Comma separated extensions (e.g. node,gui)\n --feature <names> Force optional link features on (media,gpu,images,shaping,webgl,all)\n --no-feature <n> Keep optional link features out even when detected\n --ext-native <m> Register a C++/Rust extension from a JSON manifest\n (comma separated for several)\n --config <path> Use a project config (default: auto-detect\n xbintsc.config.json)\n --no-config Do not read any project config\n --icon <path> Embed an application icon (PNG/ICO/ICNS)\n --bundle macOS: also produce a .app bundle\n --app-name <name> Bundle / display name\n --app-id <id> macOS bundle identifier (e.g. com.example.demo)\n --force Ignore the incremental cache\n --verbose Print progress information\n --time Print per-phase build timings\n --debug Emit debug info (DWARF/CodeView) and keep frame pointers\n --check Run the semantic checker (default)\n --no-check Skip the semantic checker; only erase type syntax\n --lto Compile program and runtime to LTO bitcode; link with lld\n --pgo-generate [dir] Build an instrumented binary writing profiles to dir\n --pgo-use [dir] Build with the profiles collected from --pgo-generate\n --json Print diagnostics as a JSON array on stdout\n --no-hints Do not append the \"hint: \u2026 see <doc>\" line to failures\n\nxbintsc compiles a subset of TypeScript to a native binary. Types are erased;\nonly inference-free facts (names, redeclarations, call arity) are checked.\nNode built-ins need --ext node, packages in node_modules are bundled at build\ntime, and clang 16+ is required to link.\n\nInstalled as a project dependency (npm):\n npx xbintsc doctor\n npx xbintsc build <entry.ts> --out build\n npx xbintsc run <entry.ts>\nThe first build compiles the C runtime; later builds reuse the cache.\n\nDocs: doc/ai/README.md (task guide) - doc/ai/language-support.md (subset) -\ndoc/ai/troubleshooting.md (failures) - llms.txt (index of every document).\nWhen installed from npm, these live under node_modules/xbintsc/doc/ and\nnode_modules/xbintsc/doc/npm-package.md is the project guide.\n";
|
|
@@ -71,6 +71,16 @@ export declare function parseClangTarget(output: string): string | undefined;
|
|
|
71
71
|
export declare function isMsvcTarget(target: string): boolean;
|
|
72
72
|
/** Run `<command> --version` and classify the result. Never throws. */
|
|
73
73
|
export declare function probeClang(runner: Runner, command: string, env?: Record<string, string>): ClangProbe;
|
|
74
|
+
/**
|
|
75
|
+
* The `VC\Tools\Llvm` directory of every Visual Studio installation under one
|
|
76
|
+
* `Microsoft Visual Studio` root, newest release first.
|
|
77
|
+
*
|
|
78
|
+
* Both layouts are discovered by enumerating directories — `<year>\<edition>`
|
|
79
|
+
* for 2019/2022 (for example `2022\BuildTools`) and `<major>\<channel>` for
|
|
80
|
+
* Visual Studio 2026 and later (for example `18\Insiders`) — so a future
|
|
81
|
+
* release needs no code change and a non-default channel still works.
|
|
82
|
+
*/
|
|
83
|
+
export declare function visualStudioLlvmDirs(visualStudioRoot: string): string[];
|
|
74
84
|
/** Commands probed for a system compiler, in preference order. */
|
|
75
85
|
export declare function systemClangCandidates(): string[];
|
|
76
86
|
/**
|
|
@@ -92,6 +92,69 @@ export function probeClang(runner, command, env) {
|
|
|
92
92
|
return { command, responds: false, summary: "" };
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Release years that name their install directory after the year, mapped to the
|
|
97
|
+
* major version each release actually ships (VS 2022 is version 17).
|
|
98
|
+
*/
|
|
99
|
+
const VISUAL_STUDIO_YEAR_MAJOR = {
|
|
100
|
+
"2015": 14,
|
|
101
|
+
"2017": 15,
|
|
102
|
+
"2019": 16,
|
|
103
|
+
"2022": 17,
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Sort key for a directory under `%ProgramFiles%\Microsoft Visual Studio`.
|
|
107
|
+
* Releases up to 2022 use year names ("2022"); Visual Studio 2026 (version 18)
|
|
108
|
+
* and later use the plain major version ("18").
|
|
109
|
+
*/
|
|
110
|
+
function visualStudioMajor(directoryName) {
|
|
111
|
+
const known = VISUAL_STUDIO_YEAR_MAJOR[directoryName];
|
|
112
|
+
if (known !== undefined)
|
|
113
|
+
return known;
|
|
114
|
+
return /^\d+$/.test(directoryName) ? Number(directoryName) : -1;
|
|
115
|
+
}
|
|
116
|
+
/** Immediate subdirectory names, or `[]` when the directory cannot be read. */
|
|
117
|
+
function subdirectories(directory) {
|
|
118
|
+
try {
|
|
119
|
+
return readdirSync(directory, { withFileTypes: true })
|
|
120
|
+
.filter((entry) => entry.isDirectory())
|
|
121
|
+
.map((entry) => entry.name);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Preference order when one release has several installs; channel names not
|
|
129
|
+
* listed here (for example `Insiders`) follow alphabetically.
|
|
130
|
+
*/
|
|
131
|
+
const VISUAL_STUDIO_EDITIONS = ["Community", "Professional", "Enterprise", "BuildTools"];
|
|
132
|
+
function editionRank(edition) {
|
|
133
|
+
const index = VISUAL_STUDIO_EDITIONS.indexOf(edition);
|
|
134
|
+
return index === -1 ? VISUAL_STUDIO_EDITIONS.length : index;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The `VC\Tools\Llvm` directory of every Visual Studio installation under one
|
|
138
|
+
* `Microsoft Visual Studio` root, newest release first.
|
|
139
|
+
*
|
|
140
|
+
* Both layouts are discovered by enumerating directories — `<year>\<edition>`
|
|
141
|
+
* for 2019/2022 (for example `2022\BuildTools`) and `<major>\<channel>` for
|
|
142
|
+
* Visual Studio 2026 and later (for example `18\Insiders`) — so a future
|
|
143
|
+
* release needs no code change and a non-default channel still works.
|
|
144
|
+
*/
|
|
145
|
+
export function visualStudioLlvmDirs(visualStudioRoot) {
|
|
146
|
+
const versions = subdirectories(visualStudioRoot)
|
|
147
|
+
.filter((name) => visualStudioMajor(name) >= 0)
|
|
148
|
+
.sort((a, b) => visualStudioMajor(b) - visualStudioMajor(a));
|
|
149
|
+
const dirs = [];
|
|
150
|
+
for (const version of versions) {
|
|
151
|
+
const editions = subdirectories(join(visualStudioRoot, version)).sort((a, b) => editionRank(a) - editionRank(b) || a.localeCompare(b));
|
|
152
|
+
for (const edition of editions) {
|
|
153
|
+
dirs.push(join(visualStudioRoot, version, edition, "VC", "Tools", "Llvm"));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return dirs;
|
|
157
|
+
}
|
|
95
158
|
/**
|
|
96
159
|
* Visual Studio ships its own LLVM build (`VC\Tools\Llvm\x64\bin\clang.exe`).
|
|
97
160
|
* It is a perfectly good driver but is not on `PATH` in a plain shell, so probe
|
|
@@ -101,17 +164,15 @@ export function probeClang(runner, command, env) {
|
|
|
101
164
|
function visualStudioClangCandidates() {
|
|
102
165
|
if (process.platform !== "win32")
|
|
103
166
|
return [];
|
|
104
|
-
const roots = [
|
|
105
|
-
.filter((root) => Boolean(root))
|
|
167
|
+
const roots = [
|
|
168
|
+
...new Set([process.env.ProgramFiles, process.env["ProgramFiles(x86)"], process.env.ProgramW6432].filter((root) => Boolean(root))),
|
|
169
|
+
];
|
|
106
170
|
const arch = process.arch === "arm64" ? "ARM64" : "x64";
|
|
107
171
|
const candidates = [];
|
|
108
172
|
for (const root of roots) {
|
|
109
|
-
for (const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
candidates.push(join(llvm, arch, "bin", "clang.exe"));
|
|
113
|
-
candidates.push(join(llvm, "bin", "clang.exe"));
|
|
114
|
-
}
|
|
173
|
+
for (const llvm of visualStudioLlvmDirs(join(root, "Microsoft Visual Studio"))) {
|
|
174
|
+
candidates.push(join(llvm, arch, "bin", "clang.exe"));
|
|
175
|
+
candidates.push(join(llvm, "bin", "clang.exe"));
|
|
115
176
|
}
|
|
116
177
|
candidates.push(join(root, "LLVM", "bin", "clang.exe"));
|
|
117
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../../../src/driver/toolchain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../../../src/driver/toolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* `main`/`master` only (see `.githooks/pre-commit`), so feature branches never
|
|
10
10
|
* change this line and merging two of them cannot conflict here.
|
|
11
11
|
*/
|
|
12
|
-
export const COMPILER_VERSION = "0.6.
|
|
12
|
+
export const COMPILER_VERSION = "0.6.9";
|
|
13
13
|
//# sourceMappingURL=version.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { describe, expect, it } from "vitest";
|
|
5
|
-
import { compileC, compileIr, findClang, link, mergeProfileData, MINIMUM_CLANG_MAJOR, parseClangVersion, probeClang, ToolchainError, } from "../../src/driver/toolchain.js";
|
|
5
|
+
import { compileC, compileIr, findClang, link, mergeProfileData, MINIMUM_CLANG_MAJOR, parseClangVersion, probeClang, ToolchainError, visualStudioLlvmDirs, } from "../../src/driver/toolchain.js";
|
|
6
6
|
function recordingRunner(status = 0) {
|
|
7
7
|
const calls = [];
|
|
8
8
|
const runner = {
|
|
@@ -36,6 +36,27 @@ describe("toolchain", () => {
|
|
|
36
36
|
it("requires clang 16 or newer", () => {
|
|
37
37
|
expect(MINIMUM_CLANG_MAJOR).toBe(16);
|
|
38
38
|
});
|
|
39
|
+
it("finds LLVM in year-named and version-numbered Visual Studio installs, newest first", () => {
|
|
40
|
+
const root = mkdtempSync(join(tmpdir(), "xbintsc-vs-"));
|
|
41
|
+
const llvm = (version, edition) => join(root, version, edition, "VC", "Tools", "Llvm");
|
|
42
|
+
try {
|
|
43
|
+
mkdirSync(llvm("2019", "Enterprise"), { recursive: true });
|
|
44
|
+
mkdirSync(llvm("2022", "BuildTools"), { recursive: true });
|
|
45
|
+
mkdirSync(llvm("2022", "Community"), { recursive: true });
|
|
46
|
+
/* Visual Studio 2026 (version 18) names its directory after the version. */
|
|
47
|
+
mkdirSync(llvm("18", "Insiders"), { recursive: true });
|
|
48
|
+
mkdirSync(join(root, "Installer"), { recursive: true });
|
|
49
|
+
expect(visualStudioLlvmDirs(root)).toEqual([
|
|
50
|
+
llvm("18", "Insiders"),
|
|
51
|
+
llvm("2022", "Community"),
|
|
52
|
+
llvm("2022", "BuildTools"),
|
|
53
|
+
llvm("2019", "Enterprise"),
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
rmSync(root, { recursive: true, force: true });
|
|
58
|
+
}
|
|
59
|
+
});
|
|
39
60
|
it("reports the version and first line of a probe", () => {
|
|
40
61
|
const runner = {
|
|
41
62
|
run: () => ({ status: 0, stdout: "clang version 19.1.5\nTarget: x86_64-pc-linux-gnu", stderr: "" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain.test.js","sourceRoot":"","sources":["../../../tests/driver/toolchain.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"toolchain.test.js","sourceRoot":"","sources":["../../../tests/driver/toolchain.test.ts"],"names":[],"mappings":"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"}
|
package/doc/requirements.md
CHANGED
|
@@ -170,9 +170,11 @@ winget install -e --id Microsoft.VisualStudio.2022.BuildTools `
|
|
|
170
170
|
--override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --includeRecommended"
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
The LLVM bundled with Visual Studio
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
The LLVM bundled with Visual Studio (`VC\Tools\Llvm\x64\bin\clang.exe`) is what
|
|
174
|
+
`scripts/setup-vs-toolchain.ps1` selects. `xbintsc` probes both install layouts —
|
|
175
|
+
the year-named one (`2019`, `2022`) and the version-numbered one used by Visual
|
|
176
|
+
Studio 2026 and later (`18\Community`, `18\Insiders`, …) — so a newer installation
|
|
177
|
+
is found without setting `xbintsc_CLANG`. A standalone LLVM also works for
|
|
176
178
|
`xbintsc` itself (`winget install -e --id LLVM.LLVM`), but the GUI/media archive
|
|
177
179
|
builds and the CI setup use the Visual Studio one so one toolchain produces the
|
|
178
180
|
runtime, the archives and the final binary. Either way the compiler must target
|
|
@@ -154,8 +154,11 @@ winget install -e --id Microsoft.VisualStudio.2022.BuildTools `
|
|
|
154
154
|
--override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --includeRecommended"
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
Visual Studio
|
|
158
|
-
19.1.5)就是 `scripts/setup-vs-toolchain.ps1`
|
|
157
|
+
Visual Studio 自带的 LLVM(`VC\Tools\Llvm\x64\bin\clang.exe`,当前 2022 安装中
|
|
158
|
+
为 19.1.5)就是 `scripts/setup-vs-toolchain.ps1` 选择的工具链。`xbintsc` 会探测
|
|
159
|
+
两种安装布局——按年份命名的旧布局(`2019`、`2022`)以及 Visual Studio 2026 及
|
|
160
|
+
之后按主版本号命名的布局(`18\Community`、`18\Insiders` 等)——因此更新版本的
|
|
161
|
+
安装无需设置 `xbintsc_CLANG` 也能被发现。独立安装的 LLVM
|
|
159
162
|
(`winget install -e --id LLVM.LLVM`)对 `xbintsc` 本身也可用,但 GUI/媒体
|
|
160
163
|
归档构建与 CI 都使用 Visual Studio 这一套,从而让运行时、预编译归档与最终
|
|
161
164
|
二进制出自同一条工具链。无论哪种,编译器必须以 MSVC ABI 为目标
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xbintsc",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.9",
|
|
4
4
|
"description": "xbintsc - a TypeScript binary compiler (TypeScript -> LLVM IR -> native binary)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -72,12 +72,12 @@
|
|
|
72
72
|
"vitest": "^2.1.8"
|
|
73
73
|
},
|
|
74
74
|
"optionalDependencies": {
|
|
75
|
-
"@xbintsc/linux-x64": "0.6.
|
|
76
|
-
"@xbintsc/linux-arm64": "0.6.
|
|
77
|
-
"@xbintsc/darwin-x64": "0.6.
|
|
78
|
-
"@xbintsc/darwin-arm64": "0.6.
|
|
79
|
-
"@xbintsc/win32-x64": "0.6.
|
|
80
|
-
"@xbintsc/win32-arm64": "0.6.
|
|
75
|
+
"@xbintsc/linux-x64": "0.6.9",
|
|
76
|
+
"@xbintsc/linux-arm64": "0.6.9",
|
|
77
|
+
"@xbintsc/darwin-x64": "0.6.9",
|
|
78
|
+
"@xbintsc/darwin-arm64": "0.6.9",
|
|
79
|
+
"@xbintsc/win32-x64": "0.6.9",
|
|
80
|
+
"@xbintsc/win32-arm64": "0.6.9"
|
|
81
81
|
},
|
|
82
82
|
"engines": {
|
|
83
83
|
"node": ">=22"
|
package/src/driver/toolchain.ts
CHANGED
|
@@ -144,6 +144,75 @@ export function probeClang(
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
/**
|
|
148
|
+
* Release years that name their install directory after the year, mapped to the
|
|
149
|
+
* major version each release actually ships (VS 2022 is version 17).
|
|
150
|
+
*/
|
|
151
|
+
const VISUAL_STUDIO_YEAR_MAJOR: Readonly<Record<string, number>> = {
|
|
152
|
+
"2015": 14,
|
|
153
|
+
"2017": 15,
|
|
154
|
+
"2019": 16,
|
|
155
|
+
"2022": 17,
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Sort key for a directory under `%ProgramFiles%\Microsoft Visual Studio`.
|
|
160
|
+
* Releases up to 2022 use year names ("2022"); Visual Studio 2026 (version 18)
|
|
161
|
+
* and later use the plain major version ("18").
|
|
162
|
+
*/
|
|
163
|
+
function visualStudioMajor(directoryName: string): number {
|
|
164
|
+
const known = VISUAL_STUDIO_YEAR_MAJOR[directoryName];
|
|
165
|
+
if (known !== undefined) return known;
|
|
166
|
+
return /^\d+$/.test(directoryName) ? Number(directoryName) : -1;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/** Immediate subdirectory names, or `[]` when the directory cannot be read. */
|
|
170
|
+
function subdirectories(directory: string): string[] {
|
|
171
|
+
try {
|
|
172
|
+
return readdirSync(directory, { withFileTypes: true })
|
|
173
|
+
.filter((entry) => entry.isDirectory())
|
|
174
|
+
.map((entry) => entry.name);
|
|
175
|
+
} catch {
|
|
176
|
+
return [];
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Preference order when one release has several installs; channel names not
|
|
182
|
+
* listed here (for example `Insiders`) follow alphabetically.
|
|
183
|
+
*/
|
|
184
|
+
const VISUAL_STUDIO_EDITIONS: readonly string[] = ["Community", "Professional", "Enterprise", "BuildTools"];
|
|
185
|
+
|
|
186
|
+
function editionRank(edition: string): number {
|
|
187
|
+
const index = VISUAL_STUDIO_EDITIONS.indexOf(edition);
|
|
188
|
+
return index === -1 ? VISUAL_STUDIO_EDITIONS.length : index;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* The `VC\Tools\Llvm` directory of every Visual Studio installation under one
|
|
193
|
+
* `Microsoft Visual Studio` root, newest release first.
|
|
194
|
+
*
|
|
195
|
+
* Both layouts are discovered by enumerating directories — `<year>\<edition>`
|
|
196
|
+
* for 2019/2022 (for example `2022\BuildTools`) and `<major>\<channel>` for
|
|
197
|
+
* Visual Studio 2026 and later (for example `18\Insiders`) — so a future
|
|
198
|
+
* release needs no code change and a non-default channel still works.
|
|
199
|
+
*/
|
|
200
|
+
export function visualStudioLlvmDirs(visualStudioRoot: string): string[] {
|
|
201
|
+
const versions = subdirectories(visualStudioRoot)
|
|
202
|
+
.filter((name) => visualStudioMajor(name) >= 0)
|
|
203
|
+
.sort((a, b) => visualStudioMajor(b) - visualStudioMajor(a));
|
|
204
|
+
const dirs: string[] = [];
|
|
205
|
+
for (const version of versions) {
|
|
206
|
+
const editions = subdirectories(join(visualStudioRoot, version)).sort(
|
|
207
|
+
(a, b) => editionRank(a) - editionRank(b) || a.localeCompare(b),
|
|
208
|
+
);
|
|
209
|
+
for (const edition of editions) {
|
|
210
|
+
dirs.push(join(visualStudioRoot, version, edition, "VC", "Tools", "Llvm"));
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return dirs;
|
|
214
|
+
}
|
|
215
|
+
|
|
147
216
|
/**
|
|
148
217
|
* Visual Studio ships its own LLVM build (`VC\Tools\Llvm\x64\bin\clang.exe`).
|
|
149
218
|
* It is a perfectly good driver but is not on `PATH` in a plain shell, so probe
|
|
@@ -152,17 +221,19 @@ export function probeClang(
|
|
|
152
221
|
*/
|
|
153
222
|
function visualStudioClangCandidates(): string[] {
|
|
154
223
|
if (process.platform !== "win32") return [];
|
|
155
|
-
const roots = [
|
|
156
|
-
|
|
224
|
+
const roots = [
|
|
225
|
+
...new Set(
|
|
226
|
+
[process.env.ProgramFiles, process.env["ProgramFiles(x86)"], process.env.ProgramW6432].filter(
|
|
227
|
+
(root): root is string => Boolean(root),
|
|
228
|
+
),
|
|
229
|
+
),
|
|
230
|
+
];
|
|
157
231
|
const arch = process.arch === "arm64" ? "ARM64" : "x64";
|
|
158
232
|
const candidates: string[] = [];
|
|
159
233
|
for (const root of roots) {
|
|
160
|
-
for (const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
candidates.push(join(llvm, arch, "bin", "clang.exe"));
|
|
164
|
-
candidates.push(join(llvm, "bin", "clang.exe"));
|
|
165
|
-
}
|
|
234
|
+
for (const llvm of visualStudioLlvmDirs(join(root, "Microsoft Visual Studio"))) {
|
|
235
|
+
candidates.push(join(llvm, arch, "bin", "clang.exe"));
|
|
236
|
+
candidates.push(join(llvm, "bin", "clang.exe"));
|
|
166
237
|
}
|
|
167
238
|
candidates.push(join(root, "LLVM", "bin", "clang.exe"));
|
|
168
239
|
}
|
package/src/driver/version.ts
CHANGED