Skip to content
Snippets Groups Projects
Select Git revision
  • 3251d7873cb2ea13c46155063a930cea9ffdbb15
  • 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
  • user avatar
    dgelessus authored
    3251d787
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    build.gradle 2.27 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.4")
    }
    
    final SOURCE_ENCODING = "UTF-8"
    
    wrapper {
    	gradleVersion = "4.8.1"
    	distributionType = Wrapper.DistributionType.ALL
    }
    
    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.1-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).optional(true)
    	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
    }