src/Pure/Admin/component_vampire.scala
changeset 78824 e0cb5a96f5fe
parent 78823 893049a842b5
child 78825 a83fd469d48d
--- a/src/Pure/Admin/component_vampire.scala	Wed Oct 25 11:52:40 2023 +0200
+++ b/src/Pure/Admin/component_vampire.scala	Wed Oct 25 13:01:47 2023 +0200
@@ -8,7 +8,8 @@
 
 
 object Component_Vampire {
-  val default_download_url = "https://github.com/vprover/vampire/archive/refs/tags/v4.6.tar.gz"
+  val default_download_url = "https://github.com/vprover/vampire/archive/refs/tags/v4.8HO4Sledgahammer.tar.gz"
+  val default_version = "4.8"
   val default_jobs = 1
 
   def make_component_name(version: String): String =
@@ -21,7 +22,7 @@
     download_url: String = default_download_url,
     jobs: Int = default_jobs,
     component_name: String = "",
-    component_version: String = "",
+    component_version: String = default_version,
     progress: Progress = new Progress,
     target_dir: Path = Path.current
   ): Unit = {
@@ -31,7 +32,6 @@
       /* component */
 
       val Archive_Name = """^.*?([^/]+)$""".r
-      val Version = """^v?([0-9.]+)\.tar.gz$""".r
 
       val archive_name =
         download_url match {
@@ -39,17 +39,9 @@
           case _ => error("Failed to determine source archive name from " + quote(download_url))
         }
 
-      val version =
-        component_version match {
-          case "" =>
-            archive_name match {
-              case Version(version) => version
-              case _ => error("Failed to determine component version from " + quote(archive_name))
-            }
-          case _ => component_version
-        }
+      if (component_version.isEmpty) error("Missing component version")
 
-      val component = proper_string(component_name) getOrElse make_component_name(version)
+      val component = proper_string(component_name) getOrElse make_component_name(component_version)
       val component_dir =
         Components.Directory(target_dir + Path.basic(component)).create(progress = progress)
 
@@ -103,7 +95,7 @@
 
       component_dir.write_settings("""
 VAMPIRE_HOME="$COMPONENT/$ISABELLE_PLATFORM64"
-VAMPIRE_VERSION=""" + quote(version) + """
+VAMPIRE_VERSION=""" + quote(component_version) + """
 
 ISABELLE_VAMPIRE="$VAMPIRE_HOME/vampire"
 """)
@@ -112,7 +104,7 @@
       /* README */
 
       File.write(component_dir.README,
-        "This Isabelle component provides Vampire " + version + """using the
+        "This Isabelle component provides Vampire " + component_version + """using the
 original sources from """ + download_url + """
 
 The executables have been built via "cmake . && make"
@@ -134,7 +126,7 @@
       var download_url = default_download_url
       var jobs = default_jobs
       var component_name = ""
-      var component_version = ""
+      var component_version = default_version
       var verbose = false
 
       val getopts = Getopts("""
@@ -146,7 +138,7 @@
                  (default: """" + default_download_url + """")
     -j NUMBER    parallel jobs for make (default: """ + default_jobs + """)
     -n NAME      component name (default: """" + make_component_name("VERSION") + """")
-    -V VERSION   component version (default: parsed from URL)
+    -V VERSION   component version (default: """ + default_version + """)
     -v           verbose
 
   Build prover component from official download.