equal
deleted
inserted
replaced
220 Isabelle_System.gnutar(args, dir = dir).check |
220 Isabelle_System.gnutar(args, dir = dir).check |
221 |
221 |
222 |
222 |
223 /* build heaps on remote server */ |
223 /* build heaps on remote server */ |
224 |
224 |
225 def remote_build_heaps( |
225 private def remote_build_heaps( |
226 options: Options, family: Platform.Family.Value, local_dir: Path, build_sessions: List[String]) |
226 options: Options, |
227 { |
227 platform: Platform.Family.Value, |
228 val server_option = "build_release_server_" + family.toString |
228 build_sessions: List[String], |
|
229 local_dir: Path) |
|
230 { |
|
231 val server_option = "build_release_server_" + platform.toString |
229 options.string(server_option) match { |
232 options.string(server_option) match { |
230 case SSH.Target(user, host) => |
233 case SSH.Target(user, host) => |
231 using(SSH.open_session(options, host = host, user = user))(ssh => |
234 using(SSH.open_session(options, host = host, user = user))(ssh => |
232 { |
235 { |
233 Isabelle_System.with_tmp_file("tmp", "tar")(local_tmp_tar => |
236 Isabelle_System.with_tmp_file("tmp", "tar")(local_tmp_tar => |
268 official_release: Boolean = false, |
271 official_release: Boolean = false, |
269 proper_release_name: Option[String] = None, |
272 proper_release_name: Option[String] = None, |
270 platform_families: List[Platform.Family.Value] = default_platform_families, |
273 platform_families: List[Platform.Family.Value] = default_platform_families, |
271 more_components: List[Path] = Nil, |
274 more_components: List[Path] = Nil, |
272 website: Option[Path] = None, |
275 website: Option[Path] = None, |
|
276 build_sessions: List[String] = Nil, |
273 build_library: Boolean = false, |
277 build_library: Boolean = false, |
274 parallel_jobs: Int = 1): Release = |
278 parallel_jobs: Int = 1): Release = |
275 { |
279 { |
276 val hg = Mercurial.repository(Path.explode("$ISABELLE_HOME")) |
280 val hg = Mercurial.repository(Path.explode("$ISABELLE_HOME")) |
277 |
281 |
484 } |
488 } |
485 }) ::: List(Path.explode("src/Tools/jEdit/dist/jedit.jar")) |
489 }) ::: List(Path.explode("src/Tools/jEdit/dist/jedit.jar")) |
486 } |
490 } |
487 |
491 |
488 val jedit_props = Path.explode("src/Tools/jEdit/dist/properties/jEdit.props") |
492 val jedit_props = Path.explode("src/Tools/jEdit/dist/properties/jEdit.props") |
|
493 |
|
494 |
|
495 // build heaps |
|
496 |
|
497 if (build_sessions.nonEmpty) { |
|
498 progress.echo("Building " + commas(build_sessions) + " ...") |
|
499 remote_build_heaps(options, platform, build_sessions, isabelle_target) |
|
500 } |
489 |
501 |
490 |
502 |
491 // application bundling |
503 // application bundling |
492 |
504 |
493 platform match { |
505 platform match { |
746 var afp_rev = "" |
758 var afp_rev = "" |
747 var components_base: Path = Components.default_components_base |
759 var components_base: Path = Components.default_components_base |
748 var official_release = false |
760 var official_release = false |
749 var proper_release_name: Option[String] = None |
761 var proper_release_name: Option[String] = None |
750 var website: Option[Path] = None |
762 var website: Option[Path] = None |
|
763 var build_sessions: List[String] = Nil |
751 var more_components: List[Path] = Nil |
764 var more_components: List[Path] = Nil |
752 var parallel_jobs = 1 |
765 var parallel_jobs = 1 |
753 var build_library = false |
766 var build_library = false |
754 var options = Options.init() |
767 var options = Options.init() |
755 var platform_families = default_platform_families |
768 var platform_families = default_platform_families |
763 -C DIR base directory for Isabelle components (default: """ + |
776 -C DIR base directory for Isabelle components (default: """ + |
764 Components.default_components_base + """) |
777 Components.default_components_base + """) |
765 -O official release (not release-candidate) |
778 -O official release (not release-candidate) |
766 -R RELEASE proper release with name |
779 -R RELEASE proper release with name |
767 -W WEBSITE produce minimal website in given directory |
780 -W WEBSITE produce minimal website in given directory |
|
781 -b SESSIONS build platform-specific session images (separated by commas) |
768 -c ARCHIVE clean bundling with additional component .tar.gz archive |
782 -c ARCHIVE clean bundling with additional component .tar.gz archive |
769 -j INT maximum number of parallel jobs (default 1) |
783 -j INT maximum number of parallel jobs (default 1) |
770 -l build library |
784 -l build library |
771 -o OPTION override Isabelle system OPTION (via NAME=VAL or NAME) |
785 -o OPTION override Isabelle system OPTION (via NAME=VAL or NAME) |
772 -p NAMES platform families (default: """ + default_platform_families.mkString(",") + """) |
786 -p NAMES platform families (default: """ + default_platform_families.mkString(",") + """) |
777 "A:" -> (arg => afp_rev = arg), |
791 "A:" -> (arg => afp_rev = arg), |
778 "C:" -> (arg => components_base = Path.explode(arg)), |
792 "C:" -> (arg => components_base = Path.explode(arg)), |
779 "O" -> (_ => official_release = true), |
793 "O" -> (_ => official_release = true), |
780 "R:" -> (arg => proper_release_name = Some(arg)), |
794 "R:" -> (arg => proper_release_name = Some(arg)), |
781 "W:" -> (arg => website = Some(Path.explode(arg))), |
795 "W:" -> (arg => website = Some(Path.explode(arg))), |
|
796 "b:" -> (arg => build_sessions = space_explode(',', arg)), |
782 "c:" -> (arg => |
797 "c:" -> (arg => |
783 { |
798 { |
784 val path = Path.explode(arg) |
799 val path = Path.explode(arg) |
785 Components.Archive.get_name(path.file_name) |
800 Components.Archive.get_name(path.file_name) |
786 more_components = more_components ::: List(path) |
801 more_components = more_components ::: List(path) |
803 progress = progress, rev = rev, afp_rev = afp_rev, official_release = official_release, |
818 progress = progress, rev = rev, afp_rev = afp_rev, official_release = official_release, |
804 proper_release_name = proper_release_name, website = website, |
819 proper_release_name = proper_release_name, website = website, |
805 platform_families = |
820 platform_families = |
806 if (platform_families.isEmpty) default_platform_families |
821 if (platform_families.isEmpty) default_platform_families |
807 else platform_families, |
822 else platform_families, |
808 more_components = more_components, build_library = build_library, |
823 more_components = more_components, build_sessions = build_sessions, |
809 parallel_jobs = parallel_jobs) |
824 build_library = build_library, parallel_jobs = parallel_jobs) |
810 } |
825 } |
811 } |
826 } |
812 } |
827 } |