diff --git a/doc/unreal/en/ue57_build_fixes.md b/doc/unreal/en/ue57_build_fixes.md
new file mode 100644
index 0000000000..ba085b3440
--- /dev/null
+++ b/doc/unreal/en/ue57_build_fixes.md
@@ -0,0 +1,129 @@
+# UE 5.7 Plugin Build Fixes
+
+This document records the issues encountered when building the Puerts plugin against
+Unreal Engine 5.7 with `RunUAT BuildPlugin` and the configuration changes that resolved them.
+
+---
+
+## Problem 1 — `AdditionalCompilerArguments` silently ignored in UE 5.7
+
+### Symptom
+
+The `BuildConfiguration.xml` contained:
+
+```xml
+
+ /Zm300
+
+```
+
+UBT emitted a schema validation warning at build start:
+
+```
+warning: The element 'WindowsPlatform' has invalid child element 'AdditionalCompilerArguments'.
+```
+
+The element was silently dropped, so the `/Zm300` flag was never passed to `cl.exe`.
+
+### Root cause
+
+UE 5.7 removed `AdditionalCompilerArguments` from the `WindowsPlatform` section of
+`BuildConfiguration.xml`. The replacement field is `PCHMemoryAllocationFactor`, which maps
+directly to the MSVC `/Zm` compiler switch.
+
+### Fix
+
+```xml
+
+/Zm300
+
+
+300
+```
+
+---
+
+## Problem 2 — `C1076` / `C3859` PCH memory exhaustion under XGE executor
+
+### Symptom
+
+Even after Problem 1 was fixed and `/Zm300` was confirmed present in the compiler response
+files (`.rsp`), the build still failed with:
+
+```
+c1xx: error C3859: Failed to create virtual memory for PCH
+c1xx: note: the system returned code 1455: The paging file is too small for this operation to complete.
+c1xx: fatal error C1076: compiler limit: internal heap limit reached
+```
+
+The errors appeared for 16+ translation units in a single burst.
+
+### Root cause
+
+The build was using the **XGE (Incredibuild) executor** (`Total time in XGE executor`).
+Although Incredibuild had no active license (remote agents were unavailable), UBT still
+dispatched the build through the XGE executor in local mode — and that executor **ignores
+`MaxParallelActions`** from `BuildConfiguration.xml`. It can schedule far more concurrent
+`cl.exe` processes than the configured limit.
+
+Each process that creates or loads a shared PCH with `/Zm300` reserves a large block of
+virtual address space. With many processes running simultaneously, the system's commit
+charge (physical RAM + page file) was exhausted, triggering error 1455.
+
+### Fix
+
+Two changes to `BuildConfiguration.xml`:
+
+1. **Disable the XGE executor** so that UBT falls back to the UBA local executor, which
+ correctly honours `MaxParallelActions`:
+
+ ```xml
+
+ false
+
+ ```
+
+2. **Reduce `MaxParallelActions`** from 8 to 4 to limit peak memory demand from
+ concurrent PCH allocations:
+
+ ```xml
+
+ 4
+
+ ```
+
+---
+
+## Final `BuildConfiguration.xml`
+
+Location: `%APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml`
+
+```xml
+
+
+
+ 4
+ false
+
+
+ 300
+
+
+```
+
+---
+
+## Build command
+
+```bat
+set CL=/Zm300
+"C:\Program Files\Epic Games\UE_5.7\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin ^
+ -Plugin="\unreal\Puerts\Puerts.uplugin" ^
+ -Package="" ^
+ -Rocket
+```
+
+> **Note:** The `set CL=/Zm300` line is only effective when the command is run in a
+> `cmd.exe` shell. When invoked through PowerShell or a Bash-based tool, use the
+> `PCHMemoryAllocationFactor` setting in `BuildConfiguration.xml` instead (which is the
+> recommended approach regardless).
diff --git a/unreal/Puerts/Config/FilterPlugin.ini b/unreal/Puerts/Config/FilterPlugin.ini
new file mode 100644
index 0000000000..ccebca2f32
--- /dev/null
+++ b/unreal/Puerts/Config/FilterPlugin.ini
@@ -0,0 +1,8 @@
+[FilterPlugin]
+; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and
+; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively.
+;
+; Examples:
+; /README.txt
+; /Extras/...
+; /Binaries/ThirdParty/*.dll
diff --git a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js
index 7aac5da657..51f7b3a7f5 100644
--- a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js
+++ b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js
@@ -26,9 +26,11 @@ function getCustomSystem() {
};
function fileExists(path) {
let res = UE.FileSystemOperation.FileExists(path);
+ //console.log(`${path} exists? ${res}`);
return res;
}
function write(s) {
+ console.log(s);
}
function readFile(path, encoding) {
let data = (0, puerts_1.$ref)(undefined);
@@ -37,6 +39,7 @@ function getCustomSystem() {
return (0, puerts_1.$unref)(data);
}
else {
+ console.warn("readFile: read file fail! path=" + path + ", stack:" + new Error().stack);
return undefined;
}
}
@@ -67,6 +70,30 @@ function getCustomSystem() {
}
return result;
}
+ //for debug only
+ /*return new Proxy({}, {
+ get: function(target, name) {
+ if (!(name in target)) {
+ if (typeof name === 'string') {
+ if (!(name in tgamejsSystem)) {
+ return undefined;
+ }
+ let maybeFunc = tgamejsSystem[name];
+ if (typeof maybeFunc === 'function') {
+ target[name] = function(...args: any[]) {
+ const res = maybeFunc(...args);
+ console.log("method:", name, ", args:", JSON.stringify(args), ",res:", res);
+ return res;
+ }
+ } else {
+ target[name] = tgamejsSystem[name];
+ }
+ }
+ }
+
+ return target[name]
+ }
+ }) as ts.System;*/
return customSystem;
}
let customSystem = getCustomSystem();
@@ -75,14 +102,30 @@ if (!ts.sys) {
t.sys = customSystem;
}
function logErrors(allDiagnostics) {
+ if (!allDiagnostics || allDiagnostics.length === 0) {
+ return;
+ }
+ let errorCount = 0;
+ let warningCount = 0;
allDiagnostics.forEach(diagnostic => {
let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
- if (diagnostic.file) {
+ let category = ts.DiagnosticCategory[diagnostic.category]; // "Error" / "Warning" / "Message" / "Suggestion"
+ let code = `TS${diagnostic.code}`;
+ if (diagnostic.category === ts.DiagnosticCategory.Error) {
+ errorCount++;
+ }
+ else if (diagnostic.category === ts.DiagnosticCategory.Warning) {
+ warningCount++;
+ }
+ if (diagnostic.file && diagnostic.start !== undefined) {
let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
+ console.error(` [${category} ${code}] ${diagnostic.file.fileName}(${line + 1},${character + 1}): ${message}`);
}
else {
+ console.error(` [${category} ${code}] ${message}`);
}
});
+ console.error(`PuertsEditor: TypeScript reported ${errorCount} error(s), ${warningCount} warning(s).`);
}
const FunctionFlags = {
FUNC_None: 0x00000000,
@@ -202,17 +245,19 @@ function readAndParseConfigFile(configFilePath) {
readDirectory: customSystem.readDirectory,
fileExists: customSystem.fileExists,
readFile: customSystem.readFile,
- trace: s => { }
+ trace: s => console.log(s)
}, customSystem.getCurrentDirectory());
}
function watch(configFilePath) {
let { fileNames, options } = readAndParseConfigFile(configFilePath);
+ console.log("start watch..", JSON.stringify({ fileNames: fileNames, options: options }));
const versionsFilePath = tsi.getDirectoryPath(configFilePath) + "/ts_file_versions_info.json";
const fileVersions = {};
let beginTime = new Date().getTime();
fileNames.forEach(fileName => {
fileVersions[fileName] = { version: UE.FileSystemOperation.FileMD5Hash(fileName), processed: false, isBP: false };
});
+ console.log("calc md5 using " + (new Date().getTime() - beginTime) + "ms");
function getDefaultLibLocation() {
return tsi.getDirectoryPath(tsi.normalizePath(customSystem.getExecutingFilePath()));
}
@@ -232,6 +277,7 @@ function watch(configFilePath) {
},
getScriptSnapshot: fileName => {
if (!customSystem.fileExists(fileName)) {
+ console.error("getScriptSnapshot: file not existed! path=" + fileName);
return undefined;
}
if (!(fileName in fileVersions)) {
@@ -240,6 +286,7 @@ function watch(configFilePath) {
if (!scriptSnapshotsCache.has(fileName)) {
const sourceFile = customSystem.readFile(fileName);
if (!sourceFile) {
+ console.error("getScriptSnapshot: read file failed! path=" + fileName);
return undefined;
}
scriptSnapshotsCache.set(fileName, {
@@ -251,11 +298,13 @@ function watch(configFilePath) {
if (scriptSnapshotsInfo.version != fileVersions[fileName].version) {
const sourceFile = customSystem.readFile(fileName);
if (!sourceFile) {
+ console.error("getScriptSnapshot: read file failed! path=" + fileName);
return undefined;
}
scriptSnapshotsInfo.version = fileVersions[fileName].version;
scriptSnapshotsInfo.scriptSnapshot = ts.ScriptSnapshot.fromString(sourceFile);
}
+ //console.log("getScriptSnapshot:"+ fileName + ",in:" + new Error().stack)
return scriptSnapshotsInfo.scriptSnapshot;
},
getCurrentDirectory: customSystem.getCurrentDirectory,
@@ -274,8 +323,9 @@ function watch(configFilePath) {
return service.getProgram();
}
catch (e) {
+ console.error(e);
}
- //An exception causes a new Language Service to be created. It is possible that it will continue to fail. UE file reading will occasionally fail, and after the failure, ts incremental compilation will continue to fail the assertion at tryReuseStructureFromOldProgram
+ //异常了从新创建Language Service,有可能不断失败,UE的文件读取偶尔会失败,失败后ts增量编译会不断的在tryReuseStructureFromOldProgram那断言失败
service = ts.createLanguageService(servicesHost, ts.createDocumentRegistry());
}
}
@@ -322,6 +372,7 @@ function watch(configFilePath) {
}
beginTime = new Date().getTime();
let program = getProgramFromService();
+ console.log("full compile using " + (new Date().getTime() - beginTime) + "ms");
let diagnostics = ts.getPreEmitDiagnostics(program);
let restoredFileVersions = {};
var changed = false;
@@ -329,6 +380,7 @@ function watch(configFilePath) {
if (versionsFileExisted) {
try {
restoredFileVersions = JSON.parse(customSystem.readFile(versionsFilePath));
+ console.log("restore versions from ", versionsFilePath);
}
catch { }
}
@@ -336,7 +388,15 @@ function watch(configFilePath) {
fileNames.forEach(fileName => {
fileVersions[fileName] = restoredFileVersions[fileName] || fileVersions[fileName];
});
+ console.error("==================== PuertsEditor: TypeScript compilation FAILED ====================");
logErrors(diagnostics);
+ // If any diagnostic points at the generated declaration files, the type generation produced invalid TypeScript.
+ const declErrors = diagnostics.filter(d => d.file && /ue(_bp)?\.d\.ts$/.test(d.file.fileName));
+ if (declErrors.length > 0) {
+ console.error(`PuertsEditor: ${declErrors.length} error(s) originate from generated declaration files (ue.d.ts/ue_bp.d.ts). Regenerate the types (the generator now rejects TypeScript reserved words).`);
+ }
+ console.error("PuertsEditor: No JavaScript/Blueprints were generated because of the errors above. Fix them and save again.");
+ console.error("=====================================================================================");
}
else {
function getClassPathInfo(sourceFilePath) {
@@ -387,7 +447,7 @@ function watch(configFilePath) {
}
}
var dirWatcher = new UE.PEDirectoryWatcher();
- global.__dirWatcher = dirWatcher; //prevent it from being released?
+ global.__dirWatcher = dirWatcher; //防止被释放?
dirWatcher.OnChanged.Add((added, modified, removed) => {
setTimeout(() => {
var changed = false;
@@ -418,8 +478,10 @@ function watch(configFilePath) {
if (fileName in fileVersions) {
let md5 = UE.FileSystemOperation.FileMD5Hash(fileName);
if (md5 === fileVersions[fileName].version) {
+ console.log(fileName + " md5 not changed, so skiped!");
}
else {
+ console.log(`${fileName} md5 from ${fileVersions[fileName].version} to ${md5}`);
fileVersions[fileName].version = md5;
onSourceFileAddOrChange(fileName, true);
changed = true;
@@ -428,9 +490,10 @@ function watch(configFilePath) {
});
refreshBlueprints();
if (changed) {
+ console.log("versions saved to " + versionsFilePath);
UE.FileSystemOperation.WriteFile(versionsFilePath, JSON.stringify(fileVersions, null, 4));
}
- }, 100); //Delay 100 milliseconds to prevent file reading failure due to read conflict
+ }, 100); //延时100毫秒,防止因为读冲突而文件读取失败
});
dirWatcher.Watch(customSystem.getCurrentDirectory());
function onFileAdded() {
@@ -438,6 +501,7 @@ function watch(configFilePath) {
let newFiles = [];
cmdLine.fileNames.forEach(fileName => {
if (!(fileName in fileVersions)) {
+ console.log(`new file: ${fileName} ...`);
newFiles.push(fileName);
fileVersions[fileName] = { version: UE.FileSystemOperation.FileMD5Hash(fileName), processed: false };
}
@@ -453,6 +517,7 @@ function watch(configFilePath) {
if (!program) {
let beginTime = new Date().getTime();
program = getProgramFromService();
+ console.log("incremental compile " + sourceFilePath + " using " + (new Date().getTime() - beginTime) + "ms");
}
let sourceFile = program.getSourceFile(sourceFilePath);
if (sourceFile) {
@@ -477,6 +542,7 @@ function watch(configFilePath) {
let jsSource = undefined;
emitOutput.outputFiles.forEach(output => {
if (doEmitJs) {
+ console.log(`write ${output.name} ...`);
UE.FileSystemOperation.WriteFile(output.name, output.text);
}
if (output.name.endsWith(".js") || output.name.endsWith(".mjs")) {
@@ -501,6 +567,7 @@ function watch(configFilePath) {
if (!type || !type.getSymbol())
return;
if (type.getSymbol().getName() != tsi.getBaseFileName(moduleFileName)) {
+ //console.error("type name must the same as file name!");
return;
}
let baseTypes = type.getBaseTypes();
@@ -515,15 +582,18 @@ function watch(configFilePath) {
baseTypeUClass = structOfType;
}
else {
+ console.warn("do not support UStruct:" + checker.typeToString(type));
return;
}
if (baseTypeUClass) {
if (isSubclassOf(type, "Subsystem")) {
+ console.error("do not support Subsystem " + checker.typeToString(type));
return;
}
if (!baseTypeUClass.IsNative()) {
let moduleNames = getModuleNames(baseTypes[0]);
if (moduleNames.length > 1 && moduleNames[0] == 'ue') {
+ console.error(`${checker.typeToString(type)} extends a blueprint`);
return;
}
}
@@ -531,6 +601,7 @@ function watch(configFilePath) {
foundBaseTypeUClass = baseTypeUClass;
}
else {
+ console.warn("can not find base for " + checker.typeToString(type));
}
}
});
@@ -572,6 +643,7 @@ function watch(configFilePath) {
}
}
catch (e) {
+ console.error(`load ue type [${type.symbol.getName()}], throw: ${e}`);
}
}
else if (moduleNames.length == 2) {
@@ -587,6 +659,7 @@ function watch(configFilePath) {
let baseTypeUClass = getUClassOfType(baseTypes[0]);
if (!baseTypeUClass)
return undefined;
+ //console.error("modulePath:", getModulePath(type.symbol.valueDeclaration.getSourceFile().fileName));
let sourceFile = type.symbol.valueDeclaration.getSourceFile();
let sourceFileName;
program.emit(sourceFile, writeFile, undefined, false, undefined);
@@ -596,6 +669,7 @@ function watch(configFilePath) {
}
}
if (tsi.getBaseFileName(sourceFileName) != type.symbol.getName()) {
+ console.error("type name must the same as file name!");
return undefined;
}
if (options.outDir && sourceFileName.startsWith(options.outDir)) {
@@ -623,6 +697,7 @@ function watch(configFilePath) {
return undefined;
try {
let typeNode = checker.typeToTypeNode(type, undefined, undefined);
+ //console.log(checker.typeToString(type), tds)
if (ts.isTypeReferenceNode(typeNode) && type.symbol) {
let typeName = type.symbol.getName();
if (typeName == 'BigInt') {
@@ -638,6 +713,7 @@ function watch(configFilePath) {
if (uenum) {
return { pinType: new UE.PEGraphPinType("byte", uenum, UE.EPinContainerType.None, false, false) };
}
+ console.warn("can not find type of " + typeName);
return undefined;
}
let pinType = new UE.PEGraphPinType(category, uclass, UE.EPinContainerType.None, false, false);
@@ -651,6 +727,7 @@ function watch(configFilePath) {
typeName = typeRef.aliasSymbol.getName();
}
if (!typeArguments) {
+ console.warn("can not find type arguments of " + node.getFullText());
return undefined;
}
if (node) {
@@ -660,6 +737,7 @@ function watch(configFilePath) {
}
let result = tsTypeToPinType(typeArguments[0], children[1]);
if (!result || result.pinType.PinContainerType != UE.EPinContainerType.None && typeName != '$Ref' && typeName != '$InRef') {
+ console.warn("can not find pin type of typeArguments[0] " + typeName);
return undefined;
}
if (children[1]) {
@@ -696,6 +774,7 @@ function watch(configFilePath) {
else if (typeName == 'TMap') {
let valuePinType = tsTypeToPinType(typeArguments[1], undefined);
if (!valuePinType || valuePinType.pinType.PinContainerType != UE.EPinContainerType.None) {
+ console.warn("can not find pin type of typeArguments[1] " + typeName);
return undefined;
}
if (children[2]) {
@@ -706,6 +785,7 @@ function watch(configFilePath) {
return result;
}
else {
+ console.warn("not support generic type: " + typeName);
return undefined;
}
}
@@ -727,6 +807,7 @@ function watch(configFilePath) {
category = 'bool';
break;
default:
+ console.warn("not support kind: " + typeNode.kind);
return undefined;
}
let pinType = new UE.PEGraphPinType(category, undefined, UE.EPinContainerType.None, false, false);
@@ -734,6 +815,7 @@ function watch(configFilePath) {
}
}
catch (e) {
+ console.error(e.stack || e);
return undefined;
}
}
@@ -815,6 +897,7 @@ function watch(configFilePath) {
return ret;
}
function onBlueprintTypeAddOrChange(baseTypeUClass, type, modulePath) {
+ console.log(`gen blueprint for ${type.getSymbol().getName()}, path: ${modulePath}`);
let lsFunctionLibrary = baseTypeUClass && baseTypeUClass.GetName() === "BlueprintFunctionLibrary";
let bp = new UE.PEBlueprintAsset();
bp.LoadOrCreateWithMetaData(type.getSymbol().getName(), modulePath, baseTypeUClass, 0, 0, uemeta.compileClassMetaData(type));
@@ -824,13 +907,16 @@ function watch(configFilePath) {
if (ts.isMethodDeclaration(x) && !manualSkip(x)) {
let isStatic = !!(ts.getCombinedModifierFlags(x) & ts.ModifierFlags.Static);
if (isStatic && !lsFunctionLibrary) {
+ console.warn(`do not support static function [${x.name.getText()}]`);
return;
}
if (!isStatic && lsFunctionLibrary) {
+ console.warn(`do not support non-static function [${x.name.getText()}] in BlueprintFunctionLibrary`);
return;
}
if (x.name.getText() === 'ReceiveInit') {
if (baseTypeUClass == UE.GameInstance.StaticClass() || baseTypeUClass.IsChildOf(UE.GameInstance.StaticClass())) {
+ console.warn(`do not support override GameInstance.ReceiveInit in ${type.getSymbol().getName()}`);
return;
}
}
@@ -839,6 +925,7 @@ function watch(configFilePath) {
else if (ts.isPropertyDeclaration(x) && !manualSkip(x)) {
let isStatic = !!(ts.getCombinedModifierFlags(x) & ts.ModifierFlags.Static);
if (isStatic) {
+ console.warn("static property:" + x.name.getText() + ' not support');
return;
}
properties.push(checker.getSymbolAtLocation(x.name));
@@ -856,9 +943,11 @@ function watch(configFilePath) {
let methodType = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
let signatures = checker.getSignaturesOfType(methodType, ts.SignatureKind.Call);
if (!signatures) {
+ console.warn(`can not find signature for ${symbol.getName()} `);
return;
}
if (signatures.length != 1) {
+ console.warn(`find more than one signature for ${symbol.getName()} `);
return;
}
let signature = signatures[0];
@@ -866,6 +955,7 @@ function watch(configFilePath) {
let paramType = checker.getTypeOfSymbolAtLocation(signature.parameters[i], signature.parameters[i].valueDeclaration);
let paramPinType = tsTypeToPinType(paramType, getSymbolTypeNode(signature.parameters[i]));
if (!paramPinType) {
+ console.warn(symbol.getName() + " of " + checker.typeToString(type) + " has not supported parameter!");
bp.ClearParameter();
return;
}
@@ -873,6 +963,7 @@ function watch(configFilePath) {
// bp.AddParameter(signature.parameters[i].getName(), paramPinType.pinType, paramPinType.pinValueType);
bp.AddParameterWithMetaData(signature.parameters[i].getName(), paramPinType.pinType, paramPinType.pinValueType, uemeta.compileParamMetaData(signature.parameters[i]));
}
+ //console.log("add function", symbol.getName());
let sflags = tryGetAnnotation(symbol.valueDeclaration, "flags", true);
let flags = getFlagsValue(sflags, FunctionFlags);
let clearFlags = 0;
@@ -889,6 +980,7 @@ function watch(configFilePath) {
let returnType = signature.getReturnType();
let resultPinType = tsTypeToPinType(returnType, getSymbolTypeNode(symbol));
if (!resultPinType) {
+ console.warn(symbol.getName() + " of " + checker.typeToString(type) + " has not supported return type!");
bp.ClearParameter();
return;
}
@@ -902,29 +994,27 @@ function watch(configFilePath) {
let propType = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
let propPinType = tsTypeToPinType(propType, getSymbolTypeNode(symbol));
if (!propPinType) {
+ console.warn(symbol.getName() + " of " + checker.typeToString(type) + " not support!");
}
else {
postProcessPinType(symbol.valueDeclaration, propPinType.pinType, true);
+ //console.log("add member variable", symbol.getName());
let sflags = tryGetAnnotation(symbol.valueDeclaration, "flags", true);
let localFlags = BigInt(getFlagsValue(sflags, PropertyFlags)); // From //@flags
let cond = 0;
-
if (symbol.valueDeclaration && symbol.valueDeclaration.decorators) {
// Handle @flags() decorator
localFlags |= getDecoratorFlagsValue(symbol.valueDeclaration, "flags", PropertyFlags);
-
// Handle @condition() for CPF_Net
cond = Number(getDecoratorFlagsValue(symbol.valueDeclaration, "condition", ELifetimeCondition));
if (cond != 0) {
- localFlags |= BigInt(PropertyFlags.CPF_Net);
+ localFlags |= BigInt(PropertyFlags.CPF_Net);
}
-
// Handle specific @edit_on_instance decorator as an override
if (hasDecorator(symbol.valueDeclaration, "edit_on_instance")) {
localFlags &= ~BigInt(PropertyFlags.CPF_DisableEditOnInstance); // Remove restriction
localFlags |= BigInt(PropertyFlags.CPF_Edit); // Ensure it's editable if this is used
}
-
// Attachment logic (preserved)
symbol.valueDeclaration.decorators.forEach((decorator) => {
let expression = decorator.expression;
@@ -937,22 +1027,19 @@ function watch(configFilePath) {
}
});
}
-
let propertyMetaData = uemeta.compilePropertyMetaData(symbol);
-
// If UEMeta provides no metadata (e.g. no @uproperty decorator on the member) AND
// localFlags themselves don't already make the property editable,
// then apply a default CPF_DisableEditOnInstance to localFlags.
// This makes un-decorated or un-annotated properties non-editable on instances by default.
if (!propertyMetaData && !(localFlags & BigInt(PropertyFlags.CPF_Edit))) {
// Check hasDecorator again because the main decorators loop might not have run if no decorators exist at all
- if (!symbol.valueDeclaration || !symbol.valueDeclaration.decorators || !hasDecorator(symbol.valueDeclaration, "edit_on_instance")) {
- localFlags |= BigInt(PropertyFlags.CPF_DisableEditOnInstance);
+ if (!symbol.valueDeclaration || !symbol.valueDeclaration.decorators || !hasDecorator(symbol.valueDeclaration, "edit_on_instance")) {
+ localFlags |= BigInt(PropertyFlags.CPF_DisableEditOnInstance);
}
}
- // When propertyMetaData *is* present, its internal flags (derived by UEMeta.js from EditAnywhere etc.)
+ // When propertyMetaData *is* present, its internal flags (derived by UEMeta.ts from EditAnywhere etc.)
// are authoritative. localFlags here are for truly additional/override flags.
-
bp.AddMemberVariableWithMetaData(symbol.getName(), propPinType.pinType, propPinType.pinValueType, Number(localFlags & 0xffffffffn), Number(localFlags >> 32n), cond, propertyMetaData);
}
}
@@ -1009,9 +1096,11 @@ function watch(configFilePath) {
}
function list(pattern) {
var re = new RegExp(pattern ? pattern : '.*');
+ console.log(`id\t\t\t\t\t\t\t\t\tprocessed\tisBP\tpath`);
for (var key in fileVersions) {
var value = fileVersions[key];
if (!pattern || re.test(key)) {
+ console.log(`${value.version}\t${!!value.processed}\t\t${!!value.isBP}\t${key}`);
}
}
}
@@ -1019,6 +1108,7 @@ function watch(configFilePath) {
for (var key in fileVersions) {
var value = fileVersions[key];
if (value.version === id.trim()) {
+ console.log(`compiling ${key} ...`);
onSourceFileAddOrChange(key, true);
}
}
@@ -1032,6 +1122,7 @@ function watch(configFilePath) {
compile(args);
}
else {
+ console.error(`unknow command for Puerts ${cmd}`);
}
}
cpp.FPuertsEditorModule.SetCmdCallback(dispatchCmd);
diff --git a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map
index 12c022ab05..da4569202f 100644
--- a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map
+++ b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map
@@ -1 +1 @@
-{"version":3,"file":"CodeAnalyze.js","sourceRoot":"","sources":["../../../PuertsEditor/CodeAnalyze.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"CodeAnalyze.js","sourceRoot":"","sources":["../../../../Documents/Projects/UE-sourcecode/puerts/unreal/Puerts/PuertsEditor/CodeAnalyze.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/unreal/Puerts/PuertsEditor/CodeAnalyze.ts b/unreal/Puerts/PuertsEditor/CodeAnalyze.ts
index 3797ee6b28..62f404d47f 100644
--- a/unreal/Puerts/PuertsEditor/CodeAnalyze.ts
+++ b/unreal/Puerts/PuertsEditor/CodeAnalyze.ts
@@ -114,17 +114,30 @@ if (!ts.sys) {
}
function logErrors(allDiagnostics: readonly ts.Diagnostic[]) {
+ if (!allDiagnostics || allDiagnostics.length === 0) {
+ return;
+ }
+ let errorCount = 0;
+ let warningCount = 0;
allDiagnostics.forEach(diagnostic => {
let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
- if (diagnostic.file) {
+ let category = ts.DiagnosticCategory[diagnostic.category]; // "Error" / "Warning" / "Message" / "Suggestion"
+ let code = `TS${diagnostic.code}`;
+ if (diagnostic.category === ts.DiagnosticCategory.Error) {
+ errorCount++;
+ } else if (diagnostic.category === ts.DiagnosticCategory.Warning) {
+ warningCount++;
+ }
+ if (diagnostic.file && diagnostic.start !== undefined) {
let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(
- diagnostic.start!
+ diagnostic.start
);
- console.error(` Error ${diagnostic.file.fileName} (${line + 1},${character +1}): ${message}`);
+ console.error(` [${category} ${code}] ${diagnostic.file.fileName}(${line + 1},${character + 1}): ${message}`);
} else {
- console.error(` Error: ${message}`);
+ console.error(` [${category} ${code}] ${message}`);
}
});
+ console.error(`PuertsEditor: TypeScript reported ${errorCount} error(s), ${warningCount} warning(s).`);
}
type PinCategory = "bool" | "class" | "int64" | "string" | "object" | "struct" | "float" | "enum" | "softobject" | "softclass";
@@ -416,7 +429,15 @@ function watch(configFilePath:string) {
fileNames.forEach(fileName => {
fileVersions[fileName] = restoredFileVersions[fileName] || fileVersions[fileName];
});
+ console.error("==================== PuertsEditor: TypeScript compilation FAILED ====================");
logErrors(diagnostics);
+ // If any diagnostic points at the generated declaration files, the type generation produced invalid TypeScript.
+ const declErrors = diagnostics.filter(d => d.file && /ue(_bp)?\.d\.ts$/.test(d.file.fileName));
+ if (declErrors.length > 0) {
+ console.error(`PuertsEditor: ${declErrors.length} error(s) originate from generated declaration files (ue.d.ts/ue_bp.d.ts). Regenerate the types (the generator now rejects TypeScript reserved words).`);
+ }
+ console.error("PuertsEditor: No JavaScript/Blueprints were generated because of the errors above. Fix them and save again.");
+ console.error("=====================================================================================");
} else {
function getClassPathInfo(sourceFilePath: string): {moduleFileName:string, modulePath:string} {
let modulePath:string = undefined;
diff --git a/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp b/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp
index d9ecd74be5..bf4dffb12e 100644
--- a/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp
+++ b/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp
@@ -77,6 +77,42 @@ bool IsTypeScriptKeyword(const FString& InputString)
return TypeScriptKeywords.Contains(InputString);
}
+// Verification step: scan a generated declaration file for any type/namespace declared with a TypeScript
+// reserved word as its identifier (e.g. `namespace enum {`, `enum class {`). FilenameToTypeScriptVariableName
+// already escapes such names, so this is a defense-in-depth check: any hit here means the generated .d.ts
+// will not compile and would silently abort the PuertsEditor build. Returns the number of violations found.
+// The pattern is anchored to the start of a line (after `^` or a newline) so that the declaration keyword
+// must be the first token on its line; otherwise the same words occurring in JSDoc prose (e.g. "...the
+// class for given controller", "...include the namespace in a token") would be flagged as false positives.
+static int32 VerifyNoReservedWordIdentifiers(const FString& Content, const FString& FileLabel)
+{
+ const FRegexPattern Pattern(
+ TEXT("(?:^|\\n)\\s*(?:export\\s+)?(?:declare\\s+)?(namespace|enum|class|interface)\\s+([A-Za-z_$][A-Za-z0-9_$]*)"));
+ FRegexMatcher Matcher(Pattern, Content);
+ int32 ViolationCount = 0;
+ while (Matcher.FindNext())
+ {
+ const FString Kind = Matcher.GetCaptureGroup(1);
+ const FString Identifier = Matcher.GetCaptureGroup(2);
+ if (PUERTS_NAMESPACE::IsTypeScriptReservedWord(Identifier))
+ {
+ ViolationCount++;
+ UE_LOG(LogTemp, Error,
+ TEXT("[Puerts] %s: '%s %s' uses TypeScript reserved word '%s' as an identifier - the declaration "
+ "file is invalid and TypeScript compilation will abort."),
+ *FileLabel, *Kind, *Identifier, *Identifier);
+ }
+ }
+ if (ViolationCount > 0)
+ {
+ UE_LOG(LogTemp, Error,
+ TEXT("[Puerts] %s contains %d reserved-word identifier(s); generated types will not compile. This should "
+ "not happen with the keyword-safe naming rule - please report it."),
+ *FileLabel, ViolationCount);
+ }
+ return ViolationCount;
+}
+
static FString SafeName(const FString& Name)
{
auto Ret = Name.Replace(TEXT(" "), TEXT(""))
@@ -432,6 +468,7 @@ void FTypeScriptDeclarationGenerator::GenTypeScriptDeclaration(bool InGenStruct,
#endif
FFileHelper::SaveStringToFile(ToString(), *UEDeclarationFilePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM);
+ VerifyNoReservedWordIdentifiers(ToString(), TEXT("ue.d.ts"));
Begin();
for (auto& KV : BlueprintTypeDeclInfoCache)
@@ -455,6 +492,19 @@ void FTypeScriptDeclarationGenerator::GenTypeScriptDeclaration(bool InGenStruct,
#endif
FFileHelper::SaveStringToFile(ToString(), *BPDeclarationFilePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM);
+ VerifyNoReservedWordIdentifiers(ToString(), TEXT("ue_bp.d.ts"));
+
+ // Generate the entry declaration (index.d.ts) so the `ue` module always resolves to both the engine
+ // (ue.d.ts) and blueprint (ue_bp.d.ts) declarations. Previously this file was only seeded by a
+ // non-overwriting directory copy, so a stale/incomplete index.d.ts left in the project could break
+ // `import * as UE from 'ue'`. We (re)write it on every generation.
+ const FString UEIndexFilePath = FPaths::ProjectDir() / TEXT("Typing/ue/index.d.ts");
+ const FString UEIndexContent = TEXT("/// \n") TEXT("/// \n")
+ TEXT("/// \n") TEXT("/// \n");
+#ifdef PUERTS_WITH_SOURCE_CONTROL
+ PuertsSourceControlUtils::MakeSourceControlFileWritable(UEIndexFilePath);
+#endif
+ FFileHelper::SaveStringToFile(UEIndexContent, *UEIndexFilePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM);
}
static UPackage* GetPackage(UObject* Obj)
diff --git a/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs b/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs
index 840511bad3..519253f524 100644
--- a/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs
+++ b/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs
@@ -73,15 +73,15 @@ public JsEnv(ReadOnlyTargetRules Target) : base(Target)
PublicDefinitions.Add("WITH_WEBSOCKET");
PublicDefinitions.Add("WITH_WEBSOCKET_SSL");
PublicDependencyModuleNames.Add("OpenSSL");
- }
-
-
+ }
+
+
#if UE_5_6_OR_LATER
CppCompileWarningSettings.ShadowVariableWarningLevel = WarningLevel.Warning;
#else
ShadowVariableWarningLevel = WarningLevel.Warning;
#endif
-
+
if (!FTextAsString)
{
PublicDefinitions.Add("PUERTS_FTEXT_AS_OBJECT");
diff --git a/unreal/Puerts/Source/JsEnv/Public/PathEscape.h b/unreal/Puerts/Source/JsEnv/Public/PathEscape.h
index 32165f11f9..0c6e4d1847 100644
--- a/unreal/Puerts/Source/JsEnv/Public/PathEscape.h
+++ b/unreal/Puerts/Source/JsEnv/Public/PathEscape.h
@@ -12,6 +12,29 @@
namespace PUERTS_NAMESPACE
{
+// ECMAScript reserved words. None of these may be used as a bare binding identifier, so a generated
+// `namespace enum { ... }`, `enum class { ... }`, `class default { ... }` etc. is a TypeScript syntax error.
+// `skipLibCheck` does NOT suppress such grammar errors in .d.ts files, so a single occurrence aborts the
+// whole PuertsEditor compilation. Contextual keywords (any, as, type, namespace, module, ...) are legal as
+// identifiers and are intentionally excluded so we never rename a name that did not need it.
+FORCEINLINE bool IsTypeScriptReservedWord(const FString& Identifier)
+{
+ static const TArray ReservedWords = {TEXT("await"), TEXT("break"), TEXT("case"), TEXT("catch"), TEXT("class"),
+ TEXT("const"), TEXT("continue"), TEXT("debugger"), TEXT("default"), TEXT("delete"), TEXT("do"), TEXT("else"), TEXT("enum"),
+ TEXT("export"), TEXT("extends"), TEXT("false"), TEXT("finally"), TEXT("for"), TEXT("function"), TEXT("if"), TEXT("import"),
+ TEXT("in"), TEXT("instanceof"), TEXT("new"), TEXT("null"), TEXT("return"), TEXT("super"), TEXT("switch"), TEXT("this"),
+ TEXT("throw"), TEXT("true"), TEXT("try"), TEXT("typeof"), TEXT("var"), TEXT("void"), TEXT("while"), TEXT("with"),
+ // future reserved words in strict mode (a .d.ts is parsed in strict mode)
+ TEXT("implements"), TEXT("interface"), TEXT("let"), TEXT("package"), TEXT("private"), TEXT("protected"), TEXT("public"),
+ TEXT("static"), TEXT("yield")};
+
+ // Case-sensitive match: TypeScript reserved words are lowercase, while UE type names are PascalCase
+ // (Class, Enum, Function, Interface, Package, ...). FString's operator== / TArray::Contains are
+ // case-INsensitive, which would wrongly treat those valid identifiers as reserved and escape/flag them.
+ return ReservedWords.ContainsByPredicate(
+ [&Identifier](const FString& Word) { return Identifier.Equals(Word, ESearchCase::CaseSensitive); });
+}
+
FORCEINLINE FString FilenameToTypeScriptVariableName(const FString& Filename)
{
FString TypeScriptVariable;
@@ -36,6 +59,14 @@ FORCEINLINE FString FilenameToTypeScriptVariableName(const FString& Filename)
TypeScriptVariable.AppendChar('$');
}
}
+ // A reserved word can not be emitted as a bare identifier. Escape its first character with the same
+ // reversible `$$` scheme used above; the result (e.g. "enum" -> "$101$num") is a valid,
+ // non-reserved identifier that TypeScriptVariableNameToFilename() restores to the original name, so
+ // runtime class/enum/struct loading (FStructWrapper::Load with UnEscape=true) keeps working.
+ if (IsTypeScriptReservedWord(TypeScriptVariable))
+ {
+ TypeScriptVariable = FString::Printf(TEXT("$%d$"), (int) TypeScriptVariable[0]) + TypeScriptVariable.RightChop(1);
+ }
return TypeScriptVariable;
}