10 object Build_Vampire |
10 object Build_Vampire |
11 { |
11 { |
12 val default_repository = "https://github.com/vprover/vampire.git" |
12 val default_repository = "https://github.com/vprover/vampire.git" |
13 val default_version1 = "4.5.1" |
13 val default_version1 = "4.5.1" |
14 val default_version2 = "7638614fc288" |
14 val default_version2 = "7638614fc288" |
15 val default_component_name = "vampire-" + default_version1 |
15 |
|
16 def make_component_name(version: String) = "vampire-" + version |
16 |
17 |
17 |
18 |
18 /* build Vampire */ |
19 /* build Vampire */ |
19 |
20 |
20 def build_vampire( |
21 def build_vampire( |
21 repository: String = default_repository, |
22 repository: String = default_repository, |
22 version1: String = default_version1, |
23 version1: String = default_version1, |
23 version2: String = default_version2, |
24 version2: String = default_version2, |
24 component_name: String = default_component_name, |
25 component_name: String = "", |
25 verbose: Boolean = false, |
26 verbose: Boolean = false, |
26 progress: Progress = new Progress, |
27 progress: Progress = new Progress, |
27 target_dir: Path = Path.current) |
28 target_dir: Path = Path.current) |
28 { |
29 { |
29 Isabelle_System.with_tmp_dir("build")(tmp_dir => |
30 Isabelle_System.with_tmp_dir("build")(tmp_dir => |
30 { |
31 { |
31 /* component and platform */ |
32 /* component and platform */ |
32 |
33 |
33 val component_dir = Isabelle_System.new_directory(target_dir + Path.basic(component_name)) |
34 val component = proper_string(component_name) getOrElse make_component_name(version1) |
|
35 val component_dir = Isabelle_System.new_directory(target_dir + Path.basic(component)) |
34 progress.echo("Component " + component_dir) |
36 progress.echo("Component " + component_dir) |
35 |
37 |
36 val platform_name = |
38 val platform_name = |
37 proper_string(Isabelle_System.getenv("ISABELLE_PLATFORM64")) getOrElse |
39 proper_string(Isabelle_System.getenv("ISABELLE_PLATFORM64")) getOrElse |
38 error("No 64bit platform") |
40 error("No 64bit platform") |
114 { |
116 { |
115 var target_dir = Path.current |
117 var target_dir = Path.current |
116 var repository = default_repository |
118 var repository = default_repository |
117 var version1 = default_version1 |
119 var version1 = default_version1 |
118 var version2 = default_version2 |
120 var version2 = default_version2 |
119 var component_name = default_component_name |
121 var component_name = "" |
120 var verbose = false |
122 var verbose = false |
121 |
123 |
122 val getopts = Getopts(""" |
124 val getopts = Getopts(""" |
123 Usage: isabelle build_vampire [OPTIONS] |
125 Usage: isabelle build_vampire [OPTIONS] |
124 |
126 |
125 Options are: |
127 Options are: |
126 -D DIR target directory (default ".") |
128 -D DIR target directory (default ".") |
127 -U URL repository (default: """" + default_repository + """") |
129 -U URL repository (default: """" + default_repository + """") |
128 -V REV standard version (default: """" + default_version1 + """") |
130 -V REV1 standard version (default: """" + default_version1 + """") |
129 -W REV polymorphic version (default: """" + default_version2 + """") |
131 -W REV2 polymorphic version (default: """" + default_version2 + """") |
130 -n NAME component name (default: """" + default_component_name + """") |
132 -n NAME component name (default: """" + make_component_name("REV1") + """") |
131 -v verbose |
133 -v verbose |
132 |
134 |
133 Build prover component from official download. |
135 Build prover component from official download. |
134 """, |
136 """, |
135 "D:" -> (arg => target_dir = Path.explode(arg)), |
137 "D:" -> (arg => target_dir = Path.explode(arg)), |