build both arm64-darwin and x86_64-darwin on Apple ARM hardware;
authorwenzelm
Wed, 14 Sep 2022 23:09:02 +0200
changeset 76158 0302bdf63a08
parent 76157 ff404465b20d
child 76159 361cfb8e3648
build both arm64-darwin and x86_64-darwin on Apple ARM hardware; tuned messages;
src/Pure/Admin/build_release.scala
--- a/src/Pure/Admin/build_release.scala	Wed Sep 14 22:24:12 2022 +0200
+++ b/src/Pure/Admin/build_release.scala	Wed Sep 14 23:09:02 2022 +0200
@@ -13,7 +13,7 @@
   private def execute(dir: Path, script: String): Unit =
     Isabelle_System.bash(script, cwd = dir.file).check
 
-  private def execute_tar(dir: Path, args: String, strip: Int = 0): Unit =
+  private def execute_tar(dir: Path, args: String, strip: Int = 0): Process_Result =
     Isabelle_System.gnutar(args, dir = dir, strip = strip).check
 
   private def bash_java_opens(args: String*): String =
@@ -245,16 +245,22 @@
         ssh.with_tmp_dir { remote_dir =>
           val remote_tmp_tar = remote_dir + Path.basic("tmp.tar")
           ssh.write_file(remote_tmp_tar, local_tmp_tar)
-          val remote_commands =
+
+          val build_command =
+            "bin/isabelle build -o system_heaps -b -- " + Bash.strings(build_sessions)
+          val build_script =
             List(
               "cd " + File.bash_path(remote_dir),
               "tar -xf tmp.tar",
-              "bin/isabelle build -o system_heaps -b -- " + Bash.strings(build_sessions),
+              build_command,
+              """perl -pi -e "s/ISABELLE_APPLE_PLATFORM64/ISABELLE_PLATFORM64/g;" "$(bin/isabelle getenv -b POLYML_HOME)/etc/settings" """,
+              build_command,
               "tar -cf tmp.tar heaps")
-          ssh.execute(remote_commands.mkString(" && "), settings = false).check
+          ssh.execute(build_script.mkString(" && "), settings = false).check
           ssh.read_file(remote_tmp_tar, local_tmp_tar)
         }
-        execute_tar(local_dir, "-xf " + File.bash_path(local_tmp_tar))
+        execute_tar(local_dir, "-xvf " + File.bash_path(local_tmp_tar))
+          .out_lines.sorted.foreach(progress.echo)
       }
     }
     finally { ssh.close() }