refactor: make PackageConfig take normal targets

This commit is contained in:
tydeu 2021-09-04 18:53:21 -04:00
parent 0a3457e973
commit 3e1cdda87e
4 changed files with 10 additions and 10 deletions

View file

@ -45,7 +45,7 @@ def PackageTarget.fetchStaticLibTarget (self : PackageTarget) : BuildM ActiveFil
compileStaticLib self.package.staticLibFile oFiles
def PackageTarget.fetchStaticLibTargets (self : PackageTarget) : BuildM (Array ActiveFileTarget) := do
#[← self.fetchStaticLibTarget] ++ (← self.package.buildMoreLibTargets)
#[← self.fetchStaticLibTarget] ++ (← self.package.moreLibTargets.mapM (·.run))
def Package.fetchStaticLibTarget (self : Package) : BuildM ActiveFileTarget := do
(← self.buildTarget).fetchStaticLibTarget
@ -65,7 +65,7 @@ def PackageTarget.fetchBinTarget
let oFileTargets ← self.fetchOFileTargets
let depLibTargets ← depTargets.foldlM
(fun ts dep => do pure <| ts ++ (← dep.fetchStaticLibTargets)) #[]
let moreLibTargets ← self.package.buildMoreLibTargets
let moreLibTargets ← self.package.moreLibTargets.mapM (·.run)
let linkTargets := oFileTargets ++ depLibTargets ++ moreLibTargets
let linksTarget ← ActiveTarget.collectArray linkTargets
skipIfNewer self.package.binFile linksTarget fun links =>

View file

@ -82,7 +82,7 @@ def Package.buildRootOleanTarget
def Package.buildDepTargetWith
(depTargets : List PackageTarget) (self : Package) : BuildM ActiveOpaqueTarget := do
let extraDepTarget ← self.buildExtraDepTarget
let extraDepTarget ← self.extraDepTarget.run
let depTarget ← ActiveTarget.collectOpaqueList depTargets
extraDepTarget.mixOpaqueAsync depTarget

View file

@ -49,10 +49,10 @@ structure PackageConfig where
binName : String := name
libDir : FilePath := defaultLibDir
libName : String := moduleRoot.toString (escape := false)
buildMoreLibTargets : BuildM (Array ActiveFileTarget) := #[]
moreLibTargets : Array FileTarget := #[]
depsDir : FilePath := defaultDepsDir
dependencies : List Dependency := []
buildExtraDepTarget : BuildM ActiveOpaqueTarget := ActiveTarget.nil
extraDepTarget : OpaqueTarget := Target.nil
scripts : HashMap String Script := HashMap.empty
deriving Inhabited
@ -86,8 +86,8 @@ def moduleRootName (self : Package) : String :=
def dependencies (self : Package) : List Dependency :=
self.config.dependencies
def buildExtraDepTarget (self : Package) : BuildM ActiveOpaqueTarget :=
self.config.buildExtraDepTarget
def extraDepTarget (self : Package) : OpaqueTarget :=
self.config.extraDepTarget
def leanArgs (self : Package) : Array String :=
self.config.leanArgs
@ -167,5 +167,5 @@ def staticLibFileName (self : Package) : FilePath :=
def staticLibFile (self : Package) : FilePath :=
self.libDir / self.staticLibFileName
def buildMoreLibTargets (self : Package) : BuildM (Array ActiveFileTarget) :=
self.config.buildMoreLibTargets
def moreLibTargets (self : Package) : Array FileTarget :=
self.config.moreLibTargets

View file

@ -24,5 +24,5 @@ def package : PackageConfig := {
moduleRoot := `Add
binName := "add"
-- specify the lib as an additional target
buildMoreLibTargets := do #[← cLibTarget.run]
moreLibTargets := #[cLibTarget]
}