【调整】调整cfg c++的生成代码,允许在CommonMacros.h里重新定义所有内置类型

main
walon 2021-08-12 10:38:06 +08:00
parent 73e98662ab
commit 901441e9c2
7 changed files with 42 additions and 51 deletions

View File

@ -477,11 +477,10 @@ namespace Luban.Job.Cfg
ctx.Lan = GetLanguage(genType);
foreach (var c in ctx.ExportTypes)
{
var t = c;
ctx.Tasks.Add(Task.Run(() =>
{
var content = FileHeaderUtil.ConcatAutoGenerationHeader(ctx.Render.RenderAny(t), ctx.Lan);
var file = RenderFileUtil.GetDefTypePath(t.FullName, ctx.Lan);
var content = FileHeaderUtil.ConcatAutoGenerationHeader(ctx.Render.RenderAny(c), ctx.Lan);
var file = RenderFileUtil.GetDefTypePath(c.FullName, ctx.Lan);
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
ctx.GenCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
}));
@ -715,11 +714,10 @@ namespace {ctx.TopModule}
foreach (var c in renderTypes)
{
var table = c;
ctx.Tasks.Add(Task.Run(() =>
{
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(table), ELanguage.CPP);
var file = "editor_" + RenderFileUtil.GetUeCppDefTypeHeaderFilePath(table.FullName);
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(c), ELanguage.CPP);
var file = "editor_" + RenderFileUtil.GetUeCppDefTypeHeaderFilePath(c.FullName);
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
ctx.GenCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
}));
@ -748,11 +746,10 @@ namespace {ctx.TopModule}
var render = new EditorCsRender();
foreach (var c in ctx.Assembly.Types.Values)
{
var type = c;
ctx.Tasks.Add(Task.Run(() =>
{
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(type), ELanguage.CS);
var file = RenderFileUtil.GetDefTypePath(type.FullName, ELanguage.CS);
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(c), ELanguage.CS);
var file = RenderFileUtil.GetDefTypePath(c.FullName, ELanguage.CS);
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
ctx.GenCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
}));
@ -764,16 +761,15 @@ namespace {ctx.TopModule}
var render = new UE4BpCppRender();
foreach (var c in ctx.ExportTypes)
{
var type = c;
if (!(type is DefEnum || type is DefBean))
if (!(c is DefEnum || c is DefBean))
{
continue;
}
ctx.Tasks.Add(Task.Run(() =>
{
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(type), ELanguage.CPP);
var file = "bp_" + RenderFileUtil.GetUeCppDefTypeHeaderFilePath(type.FullName);
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(c), ELanguage.CPP);
var file = "bp_" + RenderFileUtil.GetUeCppDefTypeHeaderFilePath(c.FullName);
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
ctx.GenCodeFilesInOutputCodeDir.Add(new FileInfo() { FilePath = file, MD5 = md5 });
}));
@ -783,9 +779,8 @@ namespace {ctx.TopModule}
private void GenDataScatter(GenContext ctx)
{
string genType = ctx.GenType;
foreach (var c in ctx.ExportTables)
foreach (var table in ctx.ExportTables)
{
var table = c;
ctx.Tasks.Add(Task.Run(() =>
{
var file = GetOutputFileName(genType, table.OutputDataFile);
@ -807,10 +802,9 @@ namespace {ctx.TopModule}
var allJsonTask = new List<Task<string>>();
foreach (var c in exportTables)
{
var table = c;
allJsonTask.Add(Task.Run(() =>
{
return (string)DataExporterUtil.ToOutputData(table, ctx.Assembly.GetTableExportDataList(table), "data_json");
return (string)DataExporterUtil.ToOutputData(c, ctx.Assembly.GetTableExportDataList(c), "data_json");
}));
}
@ -839,10 +833,9 @@ namespace {ctx.TopModule}
var genDataTasks = new List<Task<List<ResourceInfo>>>();
foreach (var c in ctx.ExportTables)
{
var table = c;
genDataTasks.Add(Task.Run(() =>
{
return DataExporterUtil.ExportResourceList(ctx.Assembly.GetTableExportDataList(table));
return DataExporterUtil.ExportResourceList(ctx.Assembly.GetTableExportDataList(c));
}));
}

View File

@ -84,22 +84,22 @@ namespace Luban.Job.Cfg.TypeVisitors
public string Accept(TArray type, string bufName, string fieldName)
{
return $"{{int32_t n; if(!{bufName}.readSize(n)) return false; n = std::min(n, {bufName}.size());{fieldName}.reserve(n);for(int i = 0 ; i < n ; i++) {{ {type.ElementType.Apply(CppDefineTypeName.Ins)} _e;{type.ElementType.Apply(this, bufName, "_e")} {fieldName}.push_back(_e);}}}}";
return $"{{::bright::int32 n; if(!{bufName}.readSize(n)) return false; n = std::min(n, ::bright::int32({bufName}.size()));{fieldName}.reserve(n);for(int i = 0 ; i < n ; i++) {{ {type.ElementType.Apply(CppDefineTypeName.Ins)} _e;{type.ElementType.Apply(this, bufName, "_e")} {fieldName}.push_back(_e);}}}}";
}
public string Accept(TList type, string bufName, string fieldName)
{
return $"{{int32_t n; if(!{bufName}.readSize(n)) return false; n = std::min(n, {bufName}.size()); {fieldName}.reserve(n);for(int i = 0 ; i < n ; i++) {{ {type.ElementType.Apply(CppDefineTypeName.Ins)} _e; {type.ElementType.Apply(this, bufName, "_e")} {fieldName}.push_back(_e);}}}}";
return $"{{::bright::int32 n; if(!{bufName}.readSize(n)) return false; n = std::min(n, ::bright::int32({bufName}.size())); {fieldName}.reserve(n);for(int i = 0 ; i < n ; i++) {{ {type.ElementType.Apply(CppDefineTypeName.Ins)} _e; {type.ElementType.Apply(this, bufName, "_e")} {fieldName}.push_back(_e);}}}}";
}
public string Accept(TSet type, string bufName, string fieldName)
{
return $"{{int32_t n; if(!{bufName}.readSize(n)) return false; n = std::min(n, {bufName}.size()); {fieldName}.reserve(n * 3 / 2);for(int i = 0 ; i < n ; i++) {{ {type.ElementType.Apply(CppDefineTypeName.Ins)} _e; {type.ElementType.Apply(this, bufName, "_e")} {fieldName}.insert(_e);}}}}";
return $"{{::bright::int32 n; if(!{bufName}.readSize(n)) return false; n = std::min(n, ::bright::int32({bufName}.size())); {fieldName}.reserve(n * 3 / 2);for(int i = 0 ; i < n ; i++) {{ {type.ElementType.Apply(CppDefineTypeName.Ins)} _e; {type.ElementType.Apply(this, bufName, "_e")} {fieldName}.insert(_e);}}}}";
}
public string Accept(TMap type, string bufName, string fieldName)
{
return $"{{int32_t n; if(!{bufName}.readSize(n)) return false; n = std::min(n, {bufName}.size()); {fieldName}.reserve(n * 3 / 2);for(int i = 0 ; i < n ; i++) {{ {type.KeyType.Apply(CppDefineTypeName.Ins)} _k; {type.KeyType.Apply(this, bufName, "_k")} {type.ValueType.Apply(CppDefineTypeName.Ins)} _v; {type.ValueType.Apply(this, bufName, "_v")} {fieldName}[_k] = _v;}}}}";
return $"{{::bright::int32 n; if(!{bufName}.readSize(n)) return false; n = std::min(n, (::bright::int32){bufName}.size()); {fieldName}.reserve(n * 3 / 2);for(int i = 0 ; i < n ; i++) {{ {type.KeyType.Apply(CppDefineTypeName.Ins)} _k; {type.KeyType.Apply(this, bufName, "_k")} {type.ValueType.Apply(CppDefineTypeName.Ins)} _v; {type.ValueType.Apply(this, bufName, "_v")} {fieldName}[_k] = _v;}}}}";
}

View File

@ -9,7 +9,7 @@ namespace Luban.Job.Common.TypeVisitors
public override string DoAccept(TType type)
{
//return type.IsNullable ? $"std::optional<{type.Apply(CppUnderingDefineTypeName.Ins)}>" : type.Apply(CppUnderingDefineTypeName.Ins);
return type.IsNullable ? $"std::shared_ptr<{type.Apply(CppSharedPtrUnderingDefineTypeName.Ins)}>" : type.Apply(CppSharedPtrUnderingDefineTypeName.Ins);
return type.IsNullable ? $"::bright::SharedPtr<{type.Apply(CppSharedPtrUnderingDefineTypeName.Ins)}>" : type.Apply(CppSharedPtrUnderingDefineTypeName.Ins);
}
public override string Accept(TBean type)

View File

@ -13,47 +13,47 @@ namespace Luban.Job.Common.TypeVisitors
public string Accept(TByte type)
{
return "uint8_t";
return "::bright::byte";
}
public string Accept(TShort type)
{
return "int16_t";
return "::bright::int16";
}
public string Accept(TFshort type)
{
return "int16_t";
return "::bright::int16";
}
public string Accept(TInt type)
{
return "int32_t";
return "::bright::int32";
}
public string Accept(TFint type)
{
return "int32_t";
return "::bright::int32";
}
public string Accept(TLong type)
{
return "int64_t";
return "::bright::int64";
}
public string Accept(TFlong type)
{
return "int64_t";
return "::bright::int64";
}
public string Accept(TFloat type)
{
return "float";
return "::bright::float32";
}
public string Accept(TDouble type)
{
return "double";
return "::bright::float64";
}
public string Accept(TEnum type)
@ -63,17 +63,17 @@ namespace Luban.Job.Common.TypeVisitors
public string Accept(TString type)
{
return "std::string";
return "::bright::String";
}
public string Accept(TBytes type)
{
return "bright::Bytes";
return "::bright::Bytes";
}
public string Accept(TText type)
{
return "std::string";
return "::bright::String";
}
public virtual string Accept(TBean type)
@ -83,42 +83,42 @@ namespace Luban.Job.Common.TypeVisitors
public string Accept(TArray type)
{
return $"std::vector<{type.ElementType.Apply(this)}>";
return $"::bright::Vector<{type.ElementType.Apply(this)}>";
}
public string Accept(TList type)
{
return $"std::vector<{type.ElementType.Apply(this)}>";
return $"::bright::Vector<{type.ElementType.Apply(this)}>";
}
public string Accept(TSet type)
{
return $"std::unordered_set<{type.ElementType.Apply(this)}>";
return $"::bright::HashSet<{type.ElementType.Apply(this)}>";
}
public string Accept(TMap type)
{
return $"std::unordered_map<{type.KeyType.Apply(this)}, {type.ValueType.Apply(this)}>";
return $"::bright::HashMap<{type.KeyType.Apply(this)}, {type.ValueType.Apply(this)}>";
}
public string Accept(TVector2 type)
{
return "bright::math::Vector2";
return "::bright::Vector2";
}
public string Accept(TVector3 type)
{
return "bright::math::Vector3";
return "::bright::Vector3";
}
public string Accept(TVector4 type)
{
return "bright::math::Vector4";
return "::bright::Vector4";
}
public string Accept(TDateTime type)
{
return "int32_t";
return "::bright::datetime_t";
}
}
}

View File

@ -8,7 +8,7 @@ namespace Luban.Job.Common.TypeVisitors
public override string Accept(TBean type)
{
return $"std::shared_ptr<{type.Bean.CppFullName}>";
return $"::bright::SharedPtr<{type.Bean.CppFullName}>";
}
}
}

View File

@ -105,11 +105,10 @@ namespace Luban.Job.Db
var render = new AsyncCsRender();
foreach (var c in ass.Types.Values)
{
var type = c;
tasks.Add(Task.Run(() =>
{
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(type), Common.ELanguage.CS);
var file = RenderFileUtil.GetDefTypePath(type.FullName, Common.ELanguage.CS);
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(c), Common.ELanguage.CS);
var file = RenderFileUtil.GetDefTypePath(c.FullName, Common.ELanguage.CS);
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
genCodeFiles.Add(new FileInfo() { FilePath = file, MD5 = md5 });
}));

View File

@ -116,11 +116,10 @@ namespace Luban.Job.Proto
var render = new CsRender();
foreach (var c in ass.Types.Values)
{
var type = c;
tasks.Add(Task.Run(() =>
{
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(type), Common.ELanguage.CS);
var file = RenderFileUtil.GetDefTypePath(type.FullName, Common.ELanguage.CS);
var content = FileHeaderUtil.ConcatAutoGenerationHeader(render.RenderAny(c), Common.ELanguage.CS);
var file = RenderFileUtil.GetDefTypePath(c.FullName, Common.ELanguage.CS);
var md5 = CacheFileUtil.GenMd5AndAddCache(file, content);
genCodeFiles.Add(new FileInfo() { FilePath = file, MD5 = md5 });
}));