--- a/Admin/Release/CHECKLIST Wed Apr 28 12:24:39 2021 +0200
+++ b/Admin/Release/CHECKLIST Wed Apr 28 13:03:09 2021 +0200
@@ -74,7 +74,7 @@
- fully-automated packaging (e.g. on lxcisa0):
- hg up -r DISTNAME && Admin/build_release -b HOL -l -R DISTNAME /home/isabelle/dist
+ hg up -r DISTNAME && Admin/build_release -D /home/isabelle/dist -b HOL -l -R DISTNAME
- Docker image:
--- a/src/Pure/Admin/build_release.scala Wed Apr 28 12:24:39 2021 +0200
+++ b/src/Pure/Admin/build_release.scala Wed Apr 28 13:03:09 2021 +0200
@@ -340,8 +340,8 @@
private val default_platform_families: List[Platform.Family.Value] =
List(Platform.Family.linux, Platform.Family.windows, Platform.Family.macos)
- def build_release(base_dir: Path,
- options: Options,
+ def build_release(options: Options,
+ target_dir: Path = Path.current,
components_base: Path = Components.default_components_base,
progress: Progress = new Progress,
rev: String = "",
@@ -360,7 +360,7 @@
{
val date = Date.now()
val dist_name = proper_release_name getOrElse ("Isabelle_" + Date.Format.date(date))
- val dist_dir = (base_dir + Path.explode("dist-" + dist_name)).absolute
+ val dist_dir = (target_dir + Path.explode("dist-" + dist_name)).absolute
val version = proper_string(rev) orElse proper_release_name getOrElse "tip"
val ident =
@@ -824,6 +824,7 @@
Command_Line.tool {
var afp_rev = ""
var components_base: Path = Components.default_components_base
+ var target_dir = Path.current
var proper_release_name: Option[String] = None
var website: Option[Path] = None
var build_sessions: List[String] = Nil
@@ -841,6 +842,7 @@
-A REV corresponding AFP changeset id
-C DIR base directory for Isabelle components (default: """ +
Components.default_components_base + """)
+ -D DIR target directory (default ".")
-R RELEASE proper release with name
-W WEBSITE produce minimal website in given directory
-b SESSIONS build platform-specific session images (separated by commas)
@@ -855,6 +857,7 @@
""",
"A:" -> (arg => afp_rev = arg),
"C:" -> (arg => components_base = Path.explode(arg)),
+ "D:" -> (arg => target_dir = Path.explode(arg)),
"R:" -> (arg => proper_release_name = Some(arg)),
"W:" -> (arg => website = Some(Path.explode(arg))),
"b:" -> (arg => build_sessions = space_explode(',', arg)),
@@ -871,14 +874,14 @@
"r:" -> (arg => rev = arg))
val more_args = getopts(args)
- val base_dir = more_args match { case List(base_dir) => base_dir case _ => getopts.usage() }
+ if (more_args.nonEmpty) getopts.usage()
val progress = new Console_Progress()
if (platform_families.contains(Platform.Family.windows) && !Isabelle_System.bash("7z i").ok)
error("Building for windows requires 7z")
- build_release(Path.explode(base_dir), options, components_base = components_base,
+ build_release(options, target_dir = target_dir, components_base = components_base,
progress = progress, rev = rev, afp_rev = afp_rev,
proper_release_name = proper_release_name, website = website,
platform_families =
--- a/src/Pure/Admin/isabelle_devel.scala Wed Apr 28 12:24:39 2021 +0200
+++ b/src/Pure/Admin/isabelle_devel.scala Wed Apr 28 13:03:09 2021 +0200
@@ -40,11 +40,13 @@
afp_rev: String = "",
parallel_jobs: Int = 1): Unit =
{
- Isabelle_System.with_tmp_dir("isadist")(base_dir =>
+ Isabelle_System.with_tmp_dir("isadist")(target_dir =>
{
Isabelle_System.update_directory(root + Path.explode(RELEASE_SNAPSHOT),
website_dir =>
- Build_Release.build_release(base_dir, options, rev = rev, afp_rev = afp_rev,
+ Build_Release.build_release(options, target_dir = target_dir,
+ rev = rev,
+ afp_rev = afp_rev,
parallel_jobs = parallel_jobs,
build_sessions = List(Isabelle_System.getenv("ISABELLE_LOGIC")),
website = Some(website_dir)))