// ********************************************************************** // // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** sourceCompatibility = iceSourceCompatibility targetCompatibility = iceTargetCompatibility project.ext.displayName = "IceGridGUI Compat" project.ext.description = "" project.ext.macosx = System.properties['os.name'] == "Mac OS X" // Check for JavaFX support project.ext.javafxJar = searchFile([{System.env['JFXRT_HOME']}, { System.env['JAVA_HOME']}, {System.properties['java.home']}], ['jfxrt.jar', 'lib/jfxrt.jar', 'lib/ext/jfxrt.jar', 'jre/lib/jfxrt.jar', 'jre/lib/ext/jfxrt.jar']) project.ext.hasJavaFx = javafxJar != null if (project.ext.hasJavaFx) { apply plugin: 'application' apply from: 'javafx.gradle' } else { sourceSets { main { java { exclude '**/LiveDeployment/GraphView.java' } } } } // Disable deprecation warnings caused by JGoodies tasks.withType(JavaCompile) { options.deprecation = false } configurations { bundleapp } dependencies { compile project(':ice') compile project(':icessl') compile project(':icelocatordiscovery') compile project(':icebox') compile project(':icestorm') compile project(':glacier2') compile project(':icegrid') compile "com.jgoodies:jgoodies-looks:${jgoodiesLooksVersion}" compile "com.jgoodies:jgoodies-forms:${jgoodiesFormsVersion}" bundleapp 'com.oracle:appbundler:1.0' } project.ext.tmpJarName = "IceGridGUITEMP.jar" project.ext.jarName = "icegridgui.jar" project.ext.env = System.getenv() project.ext.keystore = env['JARSIGNER_KEYSTORE'] project.ext.keystore_password = env['JARSIGNER_KEYSTORE_PASSWORD'] jar { archiveName = tmpJarName if (!hasJavaFx) { manifest { attributes 'Main-Class': "com.zeroc.IceGridGUI.Main" } } } project.ext.libJars = [] ['rt.jar', 'jsse.jar', 'i386/default/jclSC170/vm.jar', 'amd64/default/jclSC170/vm.jar', 'ibmcertpathfw.jar', 'math.jar'].each { def jfile = searchFile([{System.env['JAVA_HOME']}, {System.properties['java.home']}], ["${it}", "lib/${it}", "jre/lib/${it}"]) if (jfile) { project.ext.libJars << jfile } } if (hasJavaFx) { project.ext.libJars << javafxJar } if(icegridguiProguard.toBoolean()){ apply from: "proguard-jar.gradle" }else{ apply from: "plain-jar.gradle" } task signjar(dependsOn: updateManifest) { doLast { if(keystore != null && keystore.length() > 0) { ant.signjar(jar: "${libDir}/${jarName}", alias: 'zeroc.com', keystore:"${keystore}", storepass:"${keystore_password}") } } } assemble.dependsOn(signjar) if(macosx) { def appName = "IceGrid GUI" task bundleapp(dependsOn: updateManifest) { doLast { ant.taskdef(name: 'bundleapp', classname: 'com.oracle.appbundler.AppBundlerTask', classpath: configurations.bundleapp.asPath) ant.bundleapp(outputdirectory: "${libDir}", name: appName, displayname: appName, identifier: "com.zeroc.IceGridGUI", icon: "${projectDir}/src/main/resources/icons/icegrid.icns", shortversion: "${project.version}", applicationCategory: "public.app-category.utilities", mainclassname: "com.zeroc.IceGridGUI/MainProxy", copyright: "Copyright © 2005-2017 ZeroC, Inc. All rights reserved.") { classpath(file: "${libDir}/${jarName}") { } option(value: "-Dapple.laf.useScreenMenuBar=true") { } option(value: "-Dcom.apple.macos.use-file-dialog-packages=true") { } option(value: "-Dcom.apple.macos.useScreenMenuBar=true") { } option(value: "-Xdock:name=IceGrid GUI") { } option(value: "-Dcom.apple.mrj.application.apple.menu.about.name=${appName}") { } } } } assemble.dependsOn(bundleapp) task copyBundle(type: Copy, dependsOn: bundleapp) { from "${libDir}/${appName}.app" into "${DESTDIR}/${prefix}/${appName}.app" } } clean { delete("${libDir}/${jarName}") delete("${libDir}/IceGrid GUI.app") } if(macosx) { install.dependsOn(copyBundle) }