Skip to content
Snippets Groups Projects
Select Git revision
  • 43d027f21e97f7864529caa13e71bf93514bbd88
  • master default protected
  • exec_auto_adjust_trace
  • let_variables
  • v1.4.1
  • v1.4.0
  • v1.3.0
  • v1.2.0
  • v1.1.0
  • v1.0.0
10 results

build.gradle

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    build.gradle 2.23 KiB
    import java.nio.charset.StandardCharsets
    import java.nio.file.Files
    import java.nio.file.Paths
    import java.util.concurrent.TimeUnit
    
    plugins {
    	id("application")
    	id("java")
    	id("wrapper")
    	
    	id("com.github.johnrengelman.shadow").version("2.0.3")
    }
    
    final SOURCE_ENCODING = "UTF-8"
    
    wrapper {
    	distributionType = "ALL"
    	gradleVersion = "4.7"
    }
    
    repositories {
    	mavenLocal()
    	jcenter()
    	maven {
    		name("Sonatype snapshots")
    		url("https://oss.sonatype.org/content/repositories/snapshots")
    	}
    	maven {
    		name("Sonatype releases")
    		url("https://oss.sonatype.org/content/repositories/releases")
    	}
    }
    
    configurations.all {
    	resolutionStrategy {
    		cacheChangingModulesFor(0, TimeUnit.SECONDS)
    	}
    }
    
    dependencies {
    	compile(group: "de.hhu.stups", name: "de.prob2.kernel", version: "3.2.10-SNAPSHOT", changing: true)
    	compile(group: "io.github.spencerpark", name: "jupyter-jvm-basekernel", version: "2.2.0-SNAPSHOT", changing: true)
    	compile(group: "org.jetbrains", name: "annotations", version: "16.0.1")
    	compile(group: "se.sawano.java", name: "alphanumeric-comparator", version: "1.4.1")
    }
    
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
    
    tasks.withType(JavaCompile) {
    	options.encoding = SOURCE_ENCODING
    }
    
    mainClassName = "de.prob2.jupyter.Main"
    
    final KERNEL_SPEC_PATH = project.projectDir.toPath().resolve(Paths.get("kernelspec", "prob2"))
    final KERNEL_JSON_PATH = KERNEL_SPEC_PATH.resolve("kernel.json")
    task createKernelSpec {
    	dependsOn = [shadowJar]
    	ext.probHome = project.hasProperty("probHome") ? project.probHome : null
    	inputs.property("probHome", probHome)
    	outputs.files(KERNEL_JSON_PATH.toFile())
    	
    	doFirst {
    		final jarPath = shadowJar.archivePath
    		final probHomeDef = probHome != null ? "\n\t\t\"-Dprob.home=$probHome\"," : ""
    		final jsonText = """{
    \t"argv": [
    \t\t"java",$probHomeDef
    \t\t"-jar",
    \t\t"$jarPath",
    \t\t"{connection_file}"
    \t],
    \t"display_name": "ProB 2",
    \t"language": "prob"
    }
    """
    		Files.write(KERNEL_JSON_PATH, jsonText.getBytes(StandardCharsets.UTF_8))
    	}
    }
    
    task installKernelSpec(type: Exec) {
    	dependsOn = [createKernelSpec]
    	executable = "python3"
    	args = ["-m", "jupyter", "kernelspec", "install", "--sys-prefix", KERNEL_SPEC_PATH.toString()]
    }
    if (hasProperty("pythonInterpreter")) {
    	installKernelSpec.executable = pythonInterpreter
    }