lean4-htt/Leanpkg2/Package.lean
2021-06-06 19:27:18 -04:00

68 lines
1.5 KiB
Text

/-
Copyright (c) 2017 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Gabriel Ebner, Sebastian Ullrich, Mac Malone
-/
import Lean.Data.Name
import Leanpkg2.LeanVersion
open Lean System
namespace Leanpkg2
def buildPath : FilePath := "build"
def tempBuildPath := buildPath / "temp"
def depsPath := buildPath / "deps"
inductive Source where
| path (dir : FilePath) : Source
| git (url rev : String) (branch : Option String) : Source
structure Dependency where
name : String
src : Source
structure PackageConfig where
name : String
version : String
leanVersion : String := leanVersionString
timeout : Option Nat := none
module : Name := name.capitalize
dependencies : List Dependency := []
deriving Inhabited
structure Package where
dir : FilePath
config : PackageConfig
deriving Inhabited
namespace Package
def name (self : Package) :=
self.config.name
def module (self : Package) :=
self.config.module
def dependencies (self : Package) :=
self.config.dependencies
def timeout (self : Package) :=
self.config.timeout
def sourceDir (self : Package) :=
self.dir
def sourceRoot (self : Package) :=
self.sourceDir / self.config.module.toString
def buildDir (self : Package) :=
self.dir / Leanpkg2.buildPath
def buildRoot (self : Package) :=
self.buildDir / self.config.module.toString
def oleanRoot (self : Package) :=
self.buildRoot.withExtension "olean"
end Package