clarified signature;
authorwenzelm
Mon, 03 Dec 2018 21:32:08 +0100
changeset 69397 df7d7477284b
parent 69396 56bea34e0f8e
child 69398 0698ded5caf1
clarified signature;
src/Pure/Admin/build_history.scala
src/Pure/Admin/build_release.scala
src/Pure/Admin/other_isabelle.scala
--- a/src/Pure/Admin/build_history.scala	Mon Dec 03 20:34:19 2018 +0100
+++ b/src/Pure/Admin/build_history.scala	Mon Dec 03 21:32:08 2018 +0100
@@ -186,9 +186,7 @@
       /* init settings */
 
       val component_settings =
-        other_isabelle.init_components(
-          base = components_base getOrElse other_isabelle.default_components_base,
-          catalogs = List("main", "optional"))
+        other_isabelle.init_components(base = components_base, catalogs = List("main", "optional"))
       other_isabelle.init_settings(component_settings ::: init_settings)
       other_isabelle.resolve_components(verbose)
       val ml_platform =
--- a/src/Pure/Admin/build_release.scala	Mon Dec 03 20:34:19 2018 +0100
+++ b/src/Pure/Admin/build_release.scala	Mon Dec 03 21:32:08 2018 +0100
@@ -236,6 +236,7 @@
   private val default_platform_families = List("linux", "windows", "macos")
 
   def build_release(base_dir: Path,
+    components_base: Option[Path] = None,
     progress: Progress = No_Progress,
     rev: String = "",
     afp_rev: String = "",
@@ -328,9 +329,7 @@
           progress = progress)
 
       other_isabelle.init_settings(
-        other_isabelle.init_components(
-          base = Components.contrib(base_dir.absolute),
-          catalogs = List("main")))
+        other_isabelle.init_components(base = components_base, catalogs = List("main")))
       other_isabelle.resolve_components(echo = true)
 
       try {
@@ -490,6 +489,7 @@
   {
     Command_Line.tool0 {
       var afp_rev = ""
+      var components_base: Option[Path] = None
       var remote_mac = ""
       var official_release = false
       var proper_release_name: Option[String] = None
@@ -504,6 +504,7 @@
 
   Options are:
     -A REV       corresponding AFP changeset id
+    -C DIR       base directory for Isabelle components (default: $ISABELLE_HOME_USER/../contrib)
     -M USER@HOST remote Mac OS X for dmg build
     -O           official release (not release-candidate)
     -R RELEASE   proper release with name
@@ -516,6 +517,7 @@
   Build Isabelle release in base directory, using the local repository clone.
 """,
         "A:" -> (arg => afp_rev = arg),
+        "C:" -> (arg => components_base = Some(Path.explode(arg))),
         "M:" -> (arg => remote_mac = arg),
         "O" -> (_ => official_release = true),
         "R:" -> (arg => proper_release_name = Some(arg)),
@@ -530,9 +532,9 @@
 
       val progress = new Console_Progress()
 
-      build_release(Path.explode(base_dir), progress = progress, rev = rev, afp_rev = afp_rev,
-        official_release = official_release, proper_release_name = proper_release_name,
-        website = website,
+      build_release(Path.explode(base_dir), components_base = components_base, progress = progress,
+        rev = rev, afp_rev = afp_rev, official_release = official_release,
+        proper_release_name = proper_release_name, website = website,
         platform_families =
           if (platform_families.isEmpty) default_platform_families
           else platform_families,
--- a/src/Pure/Admin/other_isabelle.scala	Mon Dec 03 20:34:19 2018 +0100
+++ b/src/Pure/Admin/other_isabelle.scala	Mon Dec 03 21:32:08 2018 +0100
@@ -68,18 +68,17 @@
 
   /* components */
 
-  def default_components_base: Path = Components.contrib(isabelle_home_user.absolute.dir)
-
   def init_components(
-    base: Path = default_components_base,
+    base: Option[Path] = None,
     catalogs: List[String] = Nil,
     components: List[String] = Nil): List[String] =
   {
+    val base_dir = base getOrElse Components.contrib(isabelle_home_user.absolute.dir)
     val dir = Components.admin(isabelle_home.absolute)
     catalogs.map(name =>
-      "init_components " + File.bash_path(base) + " " + File.bash_path(dir + Path.basic(name))) :::
+      "init_components " + File.bash_path(base_dir) + " " + File.bash_path(dir + Path.basic(name))) :::
     components.map(name =>
-      "init_component " + File.bash_path(base + Path.basic(name)))
+      "init_component " + File.bash_path(base_dir + Path.basic(name)))
   }