def build_jcef(
base_url: String = default_url,
version: String = default_version,
target_dir: Path = Path.current,
progress: Progress = new Progress
): Unit = { /* component name */
val component = "jcef-" + version val component_dir =
Components.Directory(target_dir + Path.basic(component)).create(progress = progress)
/* download and assemble platforms */
val platform_settings: List[String] = for (platform <- platforms) yield {
Isabelle_System.with_tmp_file("archive", ext = "tar.gz") { archive_file => val url = base_url + "/" + version + "/" + platform.archive
Isabelle_System.download_file(url, archive_file, progress = progress)
val platform_dir = component_dir.path + Path.explode(platform.platform_name)
Isabelle_System.make_directory(platform_dir)
Isabelle_System.gnutar("-xzf " + File.bash_path(archive_file), dir = platform_dir).check
for {
file <- File.find_files(platform_dir.file).iterator
name = file.getName if File.is_dll(name) || File.is_exe(name)
} File.set_executable(File.path(file))
ISABELLE_JCEF_PLATFORM="${ISABELLE_WINDOWS_PLATFORM64:-${ISABELLE_APPLE_PLATFORM64:-$ISABELLE_PLATFORM64}}" if [ -d "$COMPONENT/$ISABELLE_JCEF_PLATFORM" ]
then
ISABELLE_JCEF_HOME="$COMPONENT/$ISABELLE_JCEF_PLATFORM"
ISABELLE_JCEF_LIBRARY="" case"$ISABELLE_JCEF_PLATFORM" in """ + cat_lines(platform_settings) + """
esac
fi """)
/* README */
File.write(component_dir.README, """This distribution of Java Chromium Embedded Framework (JCEF)
has been assembled from the binary builds from https://github.com/jcefmaven/jcefbuild/releases/tag/""" +version + """
val isabelle_tool =
Isabelle_Tool("component_jcef", "build component for Java Chromium Embedded Framework",
Scala_Project.here,
{ args => var target_dir = Path.current var base_url = default_url var version = default_version
val getopts = Getopts("""
Usage: isabelle component_jcef [OPTIONS]
Options are:
-D DIR target directory (default ".")
-U URL download URL (default: """" + default_url + """")
-V VERSION version (default: """" + default_version + """")
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.