| author | wenzelm | 
| Sat, 11 Feb 2023 20:54:24 +0100 | |
| changeset 77246 | 173c2fb78290 | 
| parent 76662 | 762406d791f4 | 
| child 77369 | df17355f1e2c | 
| permissions | -rw-r--r-- | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
1  | 
/* Title: Pure/Admin/build_scala.scala  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
2  | 
Author: Makarius  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
3  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
4  | 
Build Isabelle Scala component from official downloads.  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
5  | 
*/  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
6  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
7  | 
package isabelle  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
8  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
9  | 
|
| 75393 | 10  | 
object Build_Scala {
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
11  | 
/* downloads */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
12  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
13  | 
sealed case class Download(  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
14  | 
name: String,  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
15  | 
version: String,  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
16  | 
url: String,  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
17  | 
physical_url: String = "",  | 
| 75393 | 18  | 
base_version: String = "3"  | 
19  | 
  ) {
 | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
20  | 
def make_url(template: String): String =  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
21  | 
      template.replace("{V}", version).replace("{B}", base_version)
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
22  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
23  | 
def proper_url: String = make_url(proper_string(physical_url).getOrElse(url))  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
24  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
25  | 
def artifact: String =  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
26  | 
Library.take_suffix[Char](_ != '/', proper_url.toList)._2.mkString  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
27  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
28  | 
def get(path: Path, progress: Progress = new Progress): Unit =  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
29  | 
Isabelle_System.download_file(proper_url, path, progress = progress)  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
30  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
31  | 
def print: String =  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
32  | 
" * " + name + " " + version +  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
33  | 
(if (base_version.nonEmpty) " for Scala " + base_version else "") +  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
34  | 
":\n " + make_url(url)  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
35  | 
}  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
36  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
37  | 
val main_download: Download =  | 
| 76537 | 38  | 
    Download("scala", "3.2.1", base_version = "",
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
39  | 
      url = "https://github.com/lampepfl/dotty/releases/download/{V}/scala3-{V}.tar.gz")
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
40  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
41  | 
val lib_downloads: List[Download] = List(  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
42  | 
    Download("scala-parallel-collections", "1.0.4",
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
43  | 
      "https://mvnrepository.com/artifact/org.scala-lang.modules/scala-parallel-collections_{B}/{V}",
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
44  | 
      physical_url = "https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_{B}/{V}/scala-parallel-collections_{B}-{V}.jar"),
 | 
| 
75421
 
3c710067b178
back to more ambitious scala-3.1.1 (see 8b7497992301);
 
wenzelm 
parents: 
75394 
diff
changeset
 | 
45  | 
    Download("scala-parser-combinators", "2.1.1",
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
46  | 
      "https://mvnrepository.com/artifact/org.scala-lang.modules/scala-parser-combinators_{B}/{V}",
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
47  | 
      physical_url = "https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_{B}/{V}/scala-parser-combinators_{B}-{V}.jar"),
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
48  | 
    Download("scala-swing", "3.0.0",
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
49  | 
      "https://mvnrepository.com/artifact/org.scala-lang.modules/scala-swing_{B}/{V}",
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
50  | 
      physical_url = "https://repo1.maven.org/maven2/org/scala-lang/modules/scala-swing_{B}/{V}/scala-swing_{B}-{V}.jar"),
 | 
| 
75421
 
3c710067b178
back to more ambitious scala-3.1.1 (see 8b7497992301);
 
wenzelm 
parents: 
75394 
diff
changeset
 | 
51  | 
    Download("scala-xml", "2.1.0",
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
52  | 
      "https://mvnrepository.com/artifact/org.scala-lang.modules/scala-xml_{B}/{V}",
 | 
| 
75421
 
3c710067b178
back to more ambitious scala-3.1.1 (see 8b7497992301);
 
wenzelm 
parents: 
75394 
diff
changeset
 | 
53  | 
      physical_url = "https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_{B}/{V}/scala-xml_{B}-{V}.jar")
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
54  | 
)  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
55  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
56  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
57  | 
/* build Scala component */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
58  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
59  | 
def build_scala(  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
60  | 
target_dir: Path = Path.current,  | 
| 75393 | 61  | 
progress: Progress = new Progress  | 
62  | 
  ): Unit = {
 | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
63  | 
/* component */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
64  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
65  | 
val component_name = main_download.name + "-" + main_download.version  | 
| 76518 | 66  | 
val component_dir =  | 
| 76547 | 67  | 
Components.Directory(target_dir + Path.basic(component_name)).create(progress = progress)  | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
68  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
69  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
70  | 
/* download */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
71  | 
|
| 76542 | 72  | 
    Isabelle_System.with_tmp_file("archive", ext = "tar.gz") { archive_path =>
 | 
73  | 
main_download.get(archive_path, progress = progress)  | 
|
74  | 
Isabelle_System.extract(archive_path, component_dir.path, strip = true)  | 
|
75  | 
}  | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
76  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
77  | 
lib_downloads.foreach(download =>  | 
| 76518 | 78  | 
download.get(component_dir.lib + Path.basic(download.artifact), progress = progress))  | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
79  | 
|
| 76518 | 80  | 
File.write(component_dir.LICENSE,  | 
| 76662 | 81  | 
      Url.read("https://www.apache.org/licenses/LICENSE-2.0.txt"))
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
82  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
83  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
84  | 
/* classpath */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
85  | 
|
| 75393 | 86  | 
    val classpath: List[String] = {
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
87  | 
      def no_function(name: String): String = "function " + name + "() {\n:\n}"
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
88  | 
val script =  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
89  | 
cat_lines(List(  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
90  | 
          no_function("stty"),
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
91  | 
          no_function("tput"),
 | 
| 76518 | 92  | 
"PROG_HOME=" + File.bash_path(component_dir.path),  | 
93  | 
          File.read(component_dir.path + Path.explode("bin/common"))
 | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
94  | 
            .replace("scala_exit_status=127", "scala_exit_status=0"),
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
95  | 
"compilerJavaClasspathArgs",  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
96  | 
"echo \"$jvm_cp_args\""))  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
97  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
98  | 
val main_classpath = Path.split(Isabelle_System.bash(script).check.out).map(_.file_name)  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
99  | 
val lib_classpath = lib_downloads.map(_.artifact)  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
100  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
101  | 
main_classpath ::: lib_classpath  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
102  | 
}  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
103  | 
|
| 75378 | 104  | 
val interfaces =  | 
105  | 
      classpath.find(_.startsWith("scala3-interfaces"))
 | 
|
106  | 
        .getOrElse(error("Missing jar for scala3-interfaces"))
 | 
|
107  | 
||
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
108  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
109  | 
/* settings */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
110  | 
|
| 76548 | 111  | 
    component_dir.write_settings("""
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
112  | 
SCALA_HOME="$COMPONENT"  | 
| 75378 | 113  | 
SCALA_INTERFACES="$SCALA_HOME/lib/""" + interfaces + """"  | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
114  | 
""" + terminate_lines(classpath.map(jar => "classpath \"$SCALA_HOME/lib/" + jar + "\"")))  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
115  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
116  | 
|
| 76327 | 117  | 
/* adhoc changes */  | 
118  | 
||
119  | 
    val patched_scripts = List("bin/scala", "bin/scalac")
 | 
|
120  | 
    for (name <- patched_scripts) {
 | 
|
| 76518 | 121  | 
      File.change(component_dir.path + Path.explode(name)) {
 | 
| 76327 | 122  | 
        _.replace(""""-Dscala.home=$PROG_HOME"""", """"-Dscala.home=\"$PROG_HOME\""""")
 | 
123  | 
}  | 
|
124  | 
}  | 
|
125  | 
||
126  | 
||
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
127  | 
/* README */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
128  | 
|
| 76518 | 129  | 
File.write(component_dir.README,  | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
130  | 
"This distribution of Scala integrates the following parts:\n\n" +  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
131  | 
      (main_download :: lib_downloads).map(_.print).mkString("\n\n") + """
 | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
132  | 
|
| 76327 | 133  | 
Minor changes to """ + patched_scripts.mkString(" and ") + """ allow an installation location
 | 
134  | 
with spaces in the directory name.  | 
|
135  | 
||
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
136  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
137  | 
Makarius  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
138  | 
""" + Date.Format.date(Date.now()) + "\n")  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
139  | 
}  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
140  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
141  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
142  | 
/* Isabelle tool wrapper */  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
143  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
144  | 
val isabelle_tool =  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
145  | 
    Isabelle_Tool("build_scala", "build Isabelle Scala component from official downloads",
 | 
| 75394 | 146  | 
Scala_Project.here,  | 
147  | 
      { args =>
 | 
|
148  | 
var target_dir = Path.current  | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
149  | 
|
| 75394 | 150  | 
        val getopts = Getopts("""
 | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
151  | 
Usage: isabelle build_scala [OPTIONS]  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
152  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
153  | 
Options are:  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
154  | 
-D DIR target directory (default ".")  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
155  | 
|
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
156  | 
Build Isabelle Scala component from official downloads.  | 
| 
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
157  | 
""",  | 
| 75394 | 158  | 
"D:" -> (arg => target_dir = Path.explode(arg)))  | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
159  | 
|
| 75394 | 160  | 
val more_args = getopts(args)  | 
161  | 
if (more_args.nonEmpty) getopts.usage()  | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
162  | 
|
| 75394 | 163  | 
val progress = new Console_Progress()  | 
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
164  | 
|
| 75394 | 165  | 
build_scala(target_dir = target_dir, progress = progress)  | 
166  | 
})  | 
|
| 
75377
 
4ce7d95612cb
build Isabelle Scala component from official downloads (for scala-3.1.1);
 
wenzelm 
parents:  
diff
changeset
 | 
167  | 
}  |