refactor: make PackageConfig take normal targets
This commit is contained in:
parent
0a3457e973
commit
3e1cdda87e
4 changed files with 10 additions and 10 deletions
|
|
@ -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 =>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -24,5 +24,5 @@ def package : PackageConfig := {
|
|||
moduleRoot := `Add
|
||||
binName := "add"
|
||||
-- specify the lib as an additional target
|
||||
buildMoreLibTargets := do #[← cLibTarget.run]
|
||||
moreLibTargets := #[cLibTarget]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue