4runr-os 2.1.26 → 2.1.27
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/system-verify.d.ts.map +1 -1
- package/dist/system-verify.js +29 -2
- package/dist/system-verify.js.map +1 -1
- package/package.json +1 -1
- package/scripts/setup.js +52 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-verify.d.ts","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"system-verify.d.ts","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CA6KrD"}
|
package/dist/system-verify.js
CHANGED
|
@@ -53,16 +53,43 @@ export async function verifySystem() {
|
|
|
53
53
|
catch {
|
|
54
54
|
// MSVC not available - check if MinGW is available for GNU toolchain
|
|
55
55
|
let mingwAvailable = false;
|
|
56
|
+
let mingwPath = '';
|
|
56
57
|
try {
|
|
57
|
-
execSync('where dlltool.exe', { stdio: '
|
|
58
|
+
const dlltoolPath = execSync('where dlltool.exe', { encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
58
59
|
mingwAvailable = true;
|
|
60
|
+
mingwPath = path.dirname(dlltoolPath);
|
|
59
61
|
}
|
|
60
62
|
catch {
|
|
63
|
+
// Check common MinGW locations
|
|
64
|
+
const commonPaths = [
|
|
65
|
+
'C:\\mingw64\\bin',
|
|
66
|
+
'C:\\msys64\\mingw64\\bin',
|
|
67
|
+
path.join(process.env.ProgramFiles || 'C:\\Program Files', 'mingw-w64'),
|
|
68
|
+
];
|
|
69
|
+
for (const testPath of commonPaths) {
|
|
70
|
+
const dlltoolPath = path.join(testPath, 'dlltool.exe');
|
|
71
|
+
if (fs.existsSync(dlltoolPath)) {
|
|
72
|
+
mingwAvailable = true;
|
|
73
|
+
mingwPath = path.dirname(dlltoolPath);
|
|
74
|
+
process.env.PATH = `${mingwPath};${process.env.PATH}`;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!mingwAvailable) {
|
|
61
80
|
process.stderr.write('❌ MinGW not found (required for GNU toolchain).\n');
|
|
62
81
|
process.stderr.write(' Run setup to install: 4runr-setup\n');
|
|
63
|
-
process.stderr.write(' Or install manually: winget install mingw-w64.mingw-w64\n
|
|
82
|
+
process.stderr.write(' Or install manually: winget install mingw-w64.mingw-w64\n');
|
|
83
|
+
process.stderr.write(' Then restart terminal and run 4r again\n\n');
|
|
64
84
|
return false;
|
|
65
85
|
}
|
|
86
|
+
// Ensure MinGW is in PATH
|
|
87
|
+
if (mingwPath && process.env.PATH && !process.env.PATH.includes(mingwPath)) {
|
|
88
|
+
process.env.PATH = `${mingwPath};${process.env.PATH}`;
|
|
89
|
+
}
|
|
90
|
+
else if (mingwPath && !process.env.PATH) {
|
|
91
|
+
process.env.PATH = mingwPath;
|
|
92
|
+
}
|
|
66
93
|
if (mingwAvailable) {
|
|
67
94
|
process.stderr.write('⚠️ MSVC linker not found. Using GNU toolchain...\n');
|
|
68
95
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-verify.js","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAkB,CAAC;AAC5C,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,iCAAiC;IACjC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;KAC3F,CAAC;IAEF,yBAAyB;IACzB,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,CAAC,6BAA6B;QAC5C,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAEnD,aAAa;IACb,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjD,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC;YACH,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC;gBACH,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"system-verify.js","sourceRoot":"","sources":["../src/system-verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/scripts/setup.js
CHANGED
|
@@ -94,33 +94,66 @@ if (isWindows && rustInstalled && rustNeedsGNU) {
|
|
|
94
94
|
|
|
95
95
|
// Check if MinGW is installed (required for GNU toolchain)
|
|
96
96
|
let mingwInstalled = false;
|
|
97
|
+
let mingwPath = '';
|
|
98
|
+
|
|
97
99
|
try {
|
|
98
|
-
execSync('where dlltool.exe', { stdio: '
|
|
100
|
+
const dlltoolPath = execSync('where dlltool.exe', { encoding: 'utf-8', stdio: 'pipe' }).trim();
|
|
99
101
|
mingwInstalled = true;
|
|
100
|
-
|
|
102
|
+
mingwPath = path.dirname(dlltoolPath);
|
|
103
|
+
console.log('✅ MinGW found at:', mingwPath);
|
|
101
104
|
} catch {
|
|
102
|
-
console.log('⚠️ MinGW not found - required for GNU toolchain');
|
|
103
|
-
console.log('
|
|
105
|
+
console.log('⚠️ MinGW not found in PATH - required for GNU toolchain');
|
|
106
|
+
console.log(' Checking common installation locations...');
|
|
104
107
|
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
108
|
+
// Check common MinGW locations
|
|
109
|
+
const commonPaths = [
|
|
110
|
+
'C:\\mingw64\\bin',
|
|
111
|
+
'C:\\msys64\\mingw64\\bin',
|
|
112
|
+
'C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin',
|
|
113
|
+
path.join(process.env.ProgramFiles || 'C:\\Program Files', 'mingw-w64', 'x86_64-*-*-*-*-*', 'mingw64', 'bin'),
|
|
114
|
+
];
|
|
115
|
+
|
|
116
|
+
for (const testPath of commonPaths) {
|
|
117
|
+
const dlltoolPath = path.join(testPath, 'dlltool.exe');
|
|
118
|
+
if (fs.existsSync(dlltoolPath)) {
|
|
119
|
+
mingwInstalled = true;
|
|
120
|
+
mingwPath = testPath;
|
|
121
|
+
console.log('✅ MinGW found at:', mingwPath);
|
|
122
|
+
console.log(' Adding to PATH for this session...');
|
|
123
|
+
process.env.PATH = process.env.PATH ? `${mingwPath};${process.env.PATH}` : mingwPath;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (!mingwInstalled) {
|
|
129
|
+
console.log(' Installing MinGW-w64...');
|
|
130
|
+
|
|
131
|
+
// Try to install via winget
|
|
132
|
+
try {
|
|
133
|
+
execSync('winget install --id=mingw-w64.mingw-w64 -e --accept-package-agreements --accept-source-agreements', { stdio: 'inherit' });
|
|
134
|
+
console.log('✅ MinGW-w64 installed');
|
|
135
|
+
console.log('\n⚠️ IMPORTANT: Please restart your terminal to update PATH');
|
|
136
|
+
console.log(' Then run: 4runr-setup\n');
|
|
137
|
+
process.exit(0);
|
|
138
|
+
} catch {
|
|
139
|
+
console.error('❌ Failed to install MinGW automatically');
|
|
140
|
+
console.error('\n Please install MinGW-w64 manually:');
|
|
141
|
+
console.error(' 1. Run: winget install mingw-w64.mingw-w64');
|
|
142
|
+
console.error(' 2. Restart terminal');
|
|
143
|
+
console.error(' 3. Run: 4runr-setup again\n');
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
120
146
|
}
|
|
121
147
|
}
|
|
122
148
|
|
|
123
149
|
if (mingwInstalled) {
|
|
150
|
+
// Make sure MinGW is in PATH for cargo
|
|
151
|
+
if (mingwPath && process.env.PATH && !process.env.PATH.includes(mingwPath)) {
|
|
152
|
+
process.env.PATH = `${mingwPath};${process.env.PATH}`;
|
|
153
|
+
} else if (mingwPath && !process.env.PATH) {
|
|
154
|
+
process.env.PATH = mingwPath;
|
|
155
|
+
}
|
|
156
|
+
|
|
124
157
|
try {
|
|
125
158
|
execSync('rustup toolchain install stable-x86_64-pc-windows-gnu', { stdio: 'inherit' });
|
|
126
159
|
execSync('rustup default stable-x86_64-pc-windows-gnu', { stdio: 'inherit' });
|