src/Pure/Tools/scala_build.ML
author wenzelm
Fri, 22 Jul 2022 15:28:56 +0200
changeset 75687 c8dc5d1adc7b
parent 75660 45d3497c0baa
permissions -rw-r--r--
removed obsolete commands;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
c8dc5d1adc7b removed obsolete commands;
wenzelm
parents: 75660
diff changeset
     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
c8dc5d1adc7b removed obsolete commands;
wenzelm
parents: 75660
diff changeset
    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
c8dc5d1adc7b removed obsolete commands;
wenzelm
parents: 75660
diff changeset
    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;