import Lake open Lake DSL open System package «SilverSight» where -- Settings applied to both builds and interactive editing leanOptions := #[ ⟨`pp.unicode.fun, true⟩ -- pretty-prints `fun a ↦ b` ] -- Add any additional package configuration options here @[default_target] lean_lib «SilverSightCore» where -- Add any library configuration options here srcDir := "Core" roots := #[`SilverSightCore, `SilverSight.FixedPoint, `SilverSight.Semantics.Schema, `SilverSight.Semantics.Layout, `SilverSight.Semantics.WireFormat, `SilverSight.Semantics.View, `SilverSight.Semantics.LayoutBridge, `SilverSight.Semantics.CanalLayout] lean_lib «SilverSightFormal» where srcDir := "formal" roots := #[ `CoreFormalism.FixedPoint, `CoreFormalism.Tactics, `CoreFormalism.Q16_16Numerics, `CoreFormalism.DynamicCanal, `CoreFormalism.Bind, `CoreFormalism.BraidBracket, `CoreFormalism.BraidStrand, `CoreFormalism.BraidCross, `CoreFormalism.BraidField, `CoreFormalism.SidonSets, `CoreFormalism.SieveLemmas, `CoreFormalism.InteractionGraphSidon, `CoreFormalism.BraidEigensolid, `CoreFormalism.BraidSpherionBridge ] lean_lib «SilverSightRRC» where srcDir := "formal" roots := #[ `SilverSight.PIST.Spectral, `SilverSight.PIST.Classify, `SilverSight.PIST.Matrices250, `SilverSight.RRCLogogramProjection, `SilverSight.ReceiptCore, `SilverSight.RRC.Emit, `SilverSight.RRC.ReceiptDensity, `SilverSight.RRC.PolyFactorIdentity, `SilverSight.RRC.EntropyCandidates, `SilverSight.RRC.Corpus250, `SilverSight.AVMIsa.Types, `SilverSight.AVMIsa.Value, `SilverSight.AVMIsa.Instr, `SilverSight.AVMIsa.State, `SilverSight.AVMIsa.Step, `SilverSight.AVMIsa.Run, `SilverSight.AVMIsa.Emit ] lean_exe «rrc-emit-fixture» where root := `RrcEmitFixture srcDir := "exe" lean_exe «q16-roundtrip» where root := `Q16_16Roundtrip srcDir := "exe" -- Static C library for the Q16_16 roundtrip executable. def cSrcDir : FilePath := FilePath.mk "c" target q16_canonical.o pkg : FilePath := do let oFile := pkg.buildDir / cSrcDir / "q16_canonical.o" let srcJob ← inputFile (pkg.srcDir / cSrcDir / "q16_canonical.c") true let flags := #["-fPIC", "-O2"] buildO oFile srcJob flags extern_lib q16_canonical pkg := do let name := nameToStaticLib "q16_canonical" let libFile := pkg.buildDir / cSrcDir / name let oJob ← fetch <| pkg.target ``q16_canonical.o buildStaticLib libFile #[oJob] require mathlib from git "https://github.com/leanprover-community/mathlib4.git"