src/Pure/Admin/build_vampire.scala
changeset 72887 970bad477c13
parent 72886 ac64b753a65f
child 72888 74d785882737
equal deleted inserted replaced
72886:ac64b753a65f 72887:970bad477c13
    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)),