-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathlakefile.lean
More file actions
43 lines (36 loc) · 1.83 KB
/
Copy pathlakefile.lean
File metadata and controls
43 lines (36 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import Lake
open System Lake DSL
package CompPoly where
version := v!"0.1.0"
testDriver := "CompPolyTests"
-- Downstream users fetch prebuilt artifacts from our GitHub releases instead of
-- compiling CompPoly from source. Lake only does this for a package consumed as a
-- dependency; it skips the root package, so this does not affect building CompPoly
-- itself. See `docs/wiki/build-cache.md`.
preferReleaseBuild := true
-- Set explicitly rather than left to Lake's `remoteUrl?` fallback. `gh` accepts a
-- URL here, so this serves both the download URL and `lake upload`'s `-R`.
releaseRepo := "https://github.com/Verified-zkEVM/CompPoly"
-- Overrides Lake's default `CompPoly-{platform}.tar.gz`: one archive serves every
-- platform, because the archive holds only the platform-independent library
-- artifacts (see `platformIndependent` on `lean_lib CompPoly` below).
buildArchive := "CompPoly-oleans.tar.gz"
-- A CompPoly release only supports the toolchain it was built with, so let Lake
-- prioritize it when resolving toolchains for downstream projects.
fixedToolchain := true
require "leanprover-community" / mathlib @ git "v4.33.0"
@[default_target]
lean_lib CompPoly where
-- Release archives are built on Linux CI and consumed on every platform. This drops
-- platform-dependent elements from module traces so those oleans validate on macOS
-- and Windows too. Declared on the library rather than the package so it does not
-- also claim platform independence for `lean_exe CompPolyBench`, whose native output
-- genuinely is platform-specific. Mathlib uses the same mechanism.
platformIndependent := true
lean_lib CompPolyTests where
srcDir := "tests"
lean_lib CompPolyBenchLib where
srcDir := "bench"
globs := #[Glob.submodules `CompPolyBench]
lean_exe CompPolyBench where
srcDir := "bench"