src/Pure/Admin/build_release.scala
changeset 73637 f3a356c64193
parent 73634 c88faa1e09e1
child 73642 ac6f8fff036b
--- a/src/Pure/Admin/build_release.scala	Thu May 06 22:13:30 2021 +0200
+++ b/src/Pure/Admin/build_release.scala	Thu May 06 23:09:19 2021 +0200
@@ -76,6 +76,8 @@
 
     def bundle_info(platform: Platform.Family.Value): Bundle_Info =
       platform match {
+        case Platform.Family.linux_arm =>
+          Bundle_Info(platform, "Linux (ARM)", dist_name + "_linux_arm.tar.gz")
         case Platform.Family.linux => Bundle_Info(platform, "Linux", dist_name + "_linux.tar.gz")
         case Platform.Family.macos => Bundle_Info(platform, "macOS", dist_name + "_macos.tar.gz")
         case Platform.Family.windows => Bundle_Info(platform, "Windows", dist_name + ".exe")
@@ -175,7 +177,7 @@
   {
     val catalogs =
       List("main", "bundled").map((_, new Bundled())) :::
-      default_platform_families.flatMap(platform =>
+      Platform.Family.list.flatMap(platform =>
         List(platform.toString, "bundled-" + platform.toString).
           map((_, new Bundled(platform = Some(platform)))))
 
@@ -322,7 +324,7 @@
 
     val component_dir = isabelle_target + Path.explode("contrib/Isabelle_app")
     Isabelle_System.move_file(
-      component_dir + Path.explode(Platform.standard_platform(platform)) + Path.explode("Isabelle"),
+      component_dir + Path.explode(Platform.Family.standard(platform)) + Path.explode("Isabelle"),
       isabelle_target + Path.explode(isabelle_name))
     Isabelle_System.rm_tree(component_dir)
   }
@@ -389,9 +391,6 @@
 
   /* main */
 
-  private val default_platform_families: List[Platform.Family.Value] =
-    List(Platform.Family.linux, Platform.Family.windows, Platform.Family.macos)
-
   def use_release_archive(
     context: Release_Context,
     archive: Release_Archive,
@@ -492,7 +491,7 @@
     options: Options,
     context: Release_Context,
     afp_rev: String = "",
-    platform_families: List[Platform.Family.Value] = default_platform_families,
+    platform_families: List[Platform.Family.Value] = Platform.Family.list,
     more_components: List[Path] = Nil,
     website: Option[Path] = None,
     build_sessions: List[String] = Nil,
@@ -608,7 +607,7 @@
         // application bundling
 
         platform match {
-          case Platform.Family.linux =>
+          case Platform.Family.linux_arm | Platform.Family.linux =>
             File.change(isabelle_target + jedit_options,
               _.replaceAll("jedit_reset_font_size : int =.*", "jedit_reset_font_size : int = 24"))
 
@@ -625,10 +624,9 @@
 
             make_isabelle_app(platform, isabelle_target, isabelle_name, jdk_component, classpath)
 
-            val archive_name = isabelle_name + "_linux.tar.gz"
-            progress.echo("Packaging " + archive_name + " ...")
+            progress.echo("Packaging " + bundle_info.name + " ...")
             execute_tar(tmp_dir,
-              "-czf " + File.bash_path(context.dist_dir + Path.explode(archive_name)) + " " +
+              "-czf " + File.bash_path(context.dist_dir + bundle_info.path) + " " +
               Bash.string(isabelle_name))
 
 
@@ -661,15 +659,14 @@
 
             // application archive
 
-            val archive_name = isabelle_name + "_macos.tar.gz"
-            progress.echo("Packaging " + archive_name + " ...")
+            progress.echo("Packaging " + bundle_info.name + " ...")
 
             val isabelle_app = Path.explode(isabelle_name + ".app")
             Isabelle_System.move_file(tmp_dir + Path.explode(isabelle_name),
               tmp_dir + isabelle_app)
 
             execute_tar(tmp_dir,
-              "-czf " + File.bash_path(context.dist_dir + Path.explode(archive_name)) + " " +
+              "-czf " + File.bash_path(context.dist_dir + bundle_info.path) + " " +
               File.bash_path(isabelle_app))
 
 
@@ -689,7 +686,7 @@
               java_options, line_ending = "\r\n")
 
             val isabelle_xml = Path.explode("isabelle.xml")
-            val isabelle_exe = Path.explode(isabelle_name + ".exe")
+            val isabelle_exe = bundle_info.path
 
             File.write(tmp_dir + isabelle_xml,
               File.read(app_template + isabelle_xml)
@@ -858,7 +855,7 @@
       var parallel_jobs = 1
       var build_library = false
       var options = Options.init()
-      var platform_families = default_platform_families
+      var platform_families = Platform.Family.list
       var rev = ""
 
       val getopts = Getopts("""
@@ -877,7 +874,7 @@
     -j INT       maximum number of parallel jobs (default 1)
     -l           build library
     -o OPTION    override Isabelle system OPTION (via NAME=VAL or NAME)
-    -p NAMES     platform families (default: """ + default_platform_families.mkString(",") + """)
+    -p NAMES     platform families (default: """ + Platform.Family.list.mkString(",") + """)
     -r REV       Mercurial changeset id (default: ARCHIVE or RELEASE or tip)
 
   Build Isabelle release in base directory, using the local repository clone.