Documentation

Lake.DSL.Targets

DSL for Targets & Facets #

Macros for declaring Lake targets and facets.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Facet Declarations #

    @[reducible, inline]
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Define a new module facet. Has one form:

      module_facet «facet-name» (mod : Module) : α :=
        /- build term of type `FetchM (BuildJob α)` -/
      

      The mod parameter (and its type specifier) is optional.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible, inline]
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Define a new package facet. Has one form:

          package_facet «facet-name» (pkg : Package) : α :=
            /- build term of type `FetchM (BuildJob α)` -/
          

          The pkg parameter (and its type specifier) is optional.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Define a new library facet. Has one form:

              library_facet «facet-name» (lib : LeanLib) : α :=
                /- build term of type `FetchM (BuildJob α)` -/
              

              The lib parameter (and its type specifier) is optional.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Custom Target Declaration #

                @[reducible, inline]
                abbrev Lake.DSL.mkTargetDecl (α : Type) (pkgName target : Lean.Name) [Lake.FamilyDef Lake.CustomData (pkgName, target) (Lake.BuildJob α)] (f : Lake.NPackage pkgNameLake.FetchM (Lake.BuildJob α)) :
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Define a new custom target for the package. Has one form:

                  target «target-name» (pkg : NPackage _package.name) : α :=
                    /- build term of type `FetchM (BuildJob α)` -/
                  

                  The pkg parameter (and its type specifier) is optional. It is of type NPackage _package.name to provably demonstrate the package provided is the package in which the target is defined.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Lean Library & Executable Target Declarations #

                    Define a new Lean library target for the package. Can optionally be provided with a configuration of type LeanLibConfig. Has many forms:

                    lean_lib «target-name»
                    lean_lib «target-name» { /- config opts -/ }
                    lean_lib «target-name» where /- config opts -/
                    
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[reducible, inline]

                      Define a new Lean library target for the package. Can optionally be provided with a configuration of type LeanLibConfig. Has many forms:

                      lean_lib «target-name»
                      lean_lib «target-name» { /- config opts -/ }
                      lean_lib «target-name» where /- config opts -/
                      
                      Equations
                      Instances For

                        Define a new Lean binary executable target for the package. Can optionally be provided with a configuration of type LeanExeConfig. Has many forms:

                        lean_exe «target-name»
                        lean_exe «target-name» { /- config opts -/ }
                        lean_exe «target-name» where /- config opts -/
                        
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]

                          Define a new Lean binary executable target for the package. Can optionally be provided with a configuration of type LeanExeConfig. Has many forms:

                          lean_exe «target-name»
                          lean_exe «target-name» { /- config opts -/ }
                          lean_exe «target-name» where /- config opts -/
                          
                          Equations
                          Instances For

                            External Library Target Declaration #

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              Define a new external library target for the package. Has one form:

                              extern_lib «target-name» (pkg : NPackage _package.name) :=
                                /- build term of type `FetchM (BuildJob FilePath)` -/
                              

                              The pkg parameter (and its type specifier) is optional. It is of type NPackage _package.name to provably demonstrate the package provided is the package in which the target is defined.

                              The term should build the external library's static library.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For