| author | wenzelm | 
| Thu, 02 Apr 2020 12:19:09 +0200 | |
| changeset 71655 | dad29591645a | 
| parent 71524 | 4b908e70d642 | 
| child 72176 | 22c11f65ddf9 | 
| permissions | -rw-r--r-- | 
| 71378 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 1 | /* Title: Pure/Tools/scala_project.scala | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 2 | Author: Makarius | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 3 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 4 | Setup Gradle project for Isabelle/Scala/jEdit. | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 5 | */ | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 6 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 7 | package isabelle | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 8 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 9 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 10 | object Scala_Project | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 11 | {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 12 | /* groovy syntax */ | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 13 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 14 | def groovy_string(s: String): String = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 15 |   {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 16 | s.map(c => | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 17 |       c match {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 18 | case '\t' | '\b' | '\n' | '\r' | '\f' | '\\' | '\'' | '"' => "\\" + c | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 19 | case _ => c.toString | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 20 |       }).mkString("'", "", "'")
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 21 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 22 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 23 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 24 | /* file and directories */ | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 25 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 26 | def isabelle_files(): List[String] = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 27 |   {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 28 | val files1 = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 29 |     {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 30 |       val isabelle_home = Path.explode("~~").canonical
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 31 |       Path.split(Isabelle_System.getenv("ISABELLE_CLASSPATH")).
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 32 | map(path => File.relative_path(isabelle_home, path).getOrElse(path).implode) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 33 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 34 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 35 | val files2 = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 36 |       (for {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 37 | path <- | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 38 | List( | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 39 |             Path.explode("~~/lib/classes/Pure.shasum"),
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 40 |             Path.explode("~~/src/Tools/jEdit/dist/Isabelle-jEdit.shasum"))
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 41 | line <- Library.trim_split_lines(File.read(path)) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 42 | name = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 43 | if (line.length > 42 && line(41) == '*') line.substring(42) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 44 |           else error("Bad shasum entry: " + quote(line))
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 45 | if name != "lib/classes/Pure.jar" && | 
| 71524 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 46 | name != "src/Tools/jEdit/dist/jedit.jar" && | 
| 71378 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 47 | name != "src/Tools/jEdit/dist/jars/Isabelle-jEdit-base.jar" && | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 48 | name != "src/Tools/jEdit/dist/jars/Isabelle-jEdit.jar" | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 49 | } yield name) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 50 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 51 | files1 ::: files2 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 52 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 53 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 54 | val isabelle_dirs: List[(String, Path)] = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 55 | List( | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 56 |       "src/Pure/" -> Path.explode("isabelle"),
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 57 |       "src/Tools/Graphview/" -> Path.explode("isabelle.graphview"),
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 58 |       "src/Tools/VSCode/" -> Path.explode("isabelle.vscode"),
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 59 |       "src/Tools/jEdit/src-base/" -> Path.explode("isabelle.jedit_base"),
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 60 |       "src/Tools/jEdit/src/" -> Path.explode("isabelle.jedit"))
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 61 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 62 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 63 | /* scala project */ | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 64 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 65 | def scala_project(project_dir: Path, symlinks: Boolean = false) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 66 |   {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 67 | if (symlinks && Platform.is_windows) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 68 |       error("Cannot create symlinks on Windows")
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 69 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 70 | if (project_dir.is_file || project_dir.is_dir) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 71 |       error("Project directory already exists: " + project_dir)
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 72 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 73 |     val src_dir = project_dir + Path.explode("src/main/scala")
 | 
| 71524 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 74 |     val java_src_dir = project_dir + Path.explode("src/main/java")
 | 
| 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 75 |     val scala_src_dir = project_dir + Path.explode("src/main/scala")
 | 
| 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 76 | Isabelle_System.mkdirs(scala_src_dir) | 
| 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 77 | |
| 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 78 |     Isabelle_System.copy_dir(Path.explode("~~/src/Tools/jEdit/dist/jEdit"), java_src_dir)
 | 
| 71378 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 79 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 80 | val files = isabelle_files() | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 81 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 82 |     for (file <- files if file.endsWith(".scala")) {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 83 | val (path, target) = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 84 |         isabelle_dirs.collectFirst({
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 85 | case (prfx, p) if file.startsWith(prfx) => | 
| 71524 
4b908e70d642
copy jEdit sources instead of jar, for better browsing experience;
 wenzelm parents: 
71503diff
changeset | 86 |             (Path.explode("~~") + Path.explode(file), scala_src_dir + p)
 | 
| 71378 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 87 |         }).getOrElse(error("Unknown directory prefix for " + quote(file)))
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 88 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 89 | Isabelle_System.mkdirs(target) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 90 | if (symlinks) File.link(path, target) else File.copy(path, target) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 91 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 92 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 93 | val jars = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 94 |       for (file <- files if file.endsWith(".jar"))
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 95 |       yield {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 96 |         if (file.startsWith("/")) file
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 97 |         else Isabelle_System.getenv("ISABELLE_HOME") + "/" + file
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 98 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 99 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 100 |     File.write(project_dir + Path.explode("settings.gradle"), "rootProject.name = 'Isabelle'\n")
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 101 |     File.write(project_dir + Path.explode("build.gradle"),
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 102 | """plugins {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 103 | id 'scala' | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 104 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 105 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 106 | repositories {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 107 | mavenCentral() | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 108 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 109 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 110 | dependencies {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 111 | implementation 'org.scala-lang:scala-library:""" + scala.util.Properties.versionNumberString + """' | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 112 | compile files( | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 113 |     """ + jars.map(jar => groovy_string(File.platform_path(jar))).mkString("", ",\n    ", ")") +
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 114 | """ | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 115 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 116 | """) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 117 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 118 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 119 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 120 | /* Isabelle tool wrapper */ | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 121 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 122 | val isabelle_tool = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 123 |     Isabelle_Tool("scala_project", "setup Gradle project for Isabelle/Scala/jEdit", args =>
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 124 |     {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 125 | var symlinks = false | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 126 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 127 |       val getopts = Getopts("""
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 128 | Usage: isabelle scala_project [OPTIONS] PROJECT_DIR | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 129 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 130 | Options are: | 
| 71503 | 131 | -L make symlinks to original scala files | 
| 71378 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 132 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 133 | Setup Gradle project for Isabelle/Scala/jEdit --- to support Scala IDEs | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 134 | such as IntelliJ IDEA. | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 135 | """, | 
| 71503 | 136 | "L" -> (_ => symlinks = true)) | 
| 71378 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 137 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 138 | val more_args = getopts(args) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 139 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 140 | val project_dir = | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 141 |         more_args match {
 | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 142 | case List(dir) => Path.explode(dir) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 143 | case _ => getopts.usage() | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 144 | } | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 145 | |
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 146 | scala_project(project_dir, symlinks = symlinks) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 147 | }) | 
| 
820cf124dced
added "isabelle scala_project" to support e.g. IntelliJ IDEA;
 wenzelm parents: diff
changeset | 148 | } |