author | wenzelm |
Fri, 22 Jul 2022 15:28:56 +0200 | |
changeset 75687 | c8dc5d1adc7b |
parent 75660 | 45d3497c0baa |
permissions | -rw-r--r-- |
75660
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
1 |
(* Title: Pure/Tools/scala_build.ML |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
2 |
Author: Makarius |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
3 |
|
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
4 |
Build and export Isabelle/Scala/Java modules. |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
5 |
*) |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
6 |
|
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
7 |
signature SCALA_BUILD = |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
8 |
sig |
75687 | 9 |
val scala_build: Proof.context -> Path.T -> unit |
75660
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
10 |
end |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
11 |
|
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
12 |
structure Scala_Build: SCALA_BUILD = |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
13 |
struct |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
14 |
|
75687 | 15 |
fun scala_build ctxt dir = |
75660
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
16 |
let |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
17 |
val [jar_name, jar_bytes, output] = |
75687 | 18 |
\<^scala>\<open>scala_build\<close> [Bytes.string (Isabelle_System.absolute_path dir)]; |
75660
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
19 |
val _ = writeln (Bytes.content output); |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
20 |
in |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
21 |
Export.export (Proof_Context.theory_of ctxt) |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
22 |
(Path.explode_binding0 (Bytes.content jar_name)) |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
23 |
(Bytes.contents_blob jar_bytes) |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
24 |
end; |
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
25 |
|
45d3497c0baa
support for Isabelle/Scala/Java modules in Isabelle/ML;
wenzelm
parents:
diff
changeset
|
26 |
end; |