Seperate Module and Topdata Pipeline

This commit is contained in:
2026-04-09 22:12:06 +02:00
parent 9e13bb9bab
commit 75c90de628
4 changed files with 34 additions and 52 deletions
+14 -25
View File
@@ -63,6 +63,15 @@ type hakChunk struct {
type ProgressFunc func(string)
func Build(p *project.Project) (BuildResult, error) {
var topPackage topdata.PackageResult
var err error
if p.HasTopData() {
topPackage, err = topdata.BuildAndPackage(p, nil)
if err != nil {
return BuildResult{}, err
}
}
moduleResult, err := BuildModule(p)
if err != nil {
return BuildResult{}, err
@@ -74,6 +83,9 @@ func Build(p *project.Project) (BuildResult, error) {
moduleResult.HAKPaths = hakResult.HAKPaths
moduleResult.Manifest = hakResult.Manifest
moduleResult.HAKAssets = hakResult.HAKAssets
moduleResult.TopPackageHAK = topPackage.OutputHAKPath
moduleResult.TopPackageTLK = topPackage.OutputTLKPath
moduleResult.TopPackageFiles = topPackage.HAKResources
return moduleResult, nil
}
@@ -91,26 +103,6 @@ func buildModule(p *project.Project, progress ProgressFunc) (BuildResult, error)
return BuildResult{}, err
}
var topPackage topdata.PackageResult
var err error
if p.HasTopData() {
progressf(progress, "Building native topdata...")
nativeTopData, buildErr := topdata.BuildNative(p, func(message string) {
progressf(progress, "Top package: "+message)
})
if buildErr != nil {
return BuildResult{}, buildErr
}
progressf(progress, "Packaging native top package...")
topPackage, err = topdata.BuildPackageFromBuild(p, nativeTopData, func(message string) {
progressf(progress, "Top package: "+message)
})
if err != nil {
return BuildResult{}, err
}
}
progressf(progress, "Resolving module HAK order...")
moduleHakOrder, err := plannedModuleHAKOrder(p)
if err != nil {
@@ -136,11 +128,8 @@ func buildModule(p *project.Project, progress ProgressFunc) (BuildResult, error)
}
return BuildResult{
ModulePath: outputPath,
Resources: len(moduleResources),
TopPackageHAK: topPackage.OutputHAKPath,
TopPackageTLK: topPackage.OutputTLKPath,
TopPackageFiles: topPackage.HAKResources,
ModulePath: outputPath,
Resources: len(moduleResources),
}, nil
}