Source

javafx-gradle / gradle-javafx-plugin / src / main / groovy / org / bitbucket / shemnon / javafxplugin / JavaFXPluginExtension.groovy

Diff from to

gradle-javafx-plugin/src/main/groovy/org/bitbucket/shemnon/javafxplugin/JavaFXPluginExtension.groovy

 package org.bitbucket.shemnon.javafxplugin
 
 import com.sun.javafx.tools.packager.DeployParams
+import org.gradle.internal.os.OperatingSystem
 import org.gradle.util.ConfigureUtil
 import org.gradle.api.file.FileCollection
 
 
 class JavaFXPluginExtension { //extends BasePluginConvention {
 
+    protected Map<String, JavaFXPluginExtension> overrides = [:]
+
     // preliminaries
     FileCollection jfxrtJar
     FileCollection antJavaFXJar
         }
     }
 
+    def windows(Closure closure) {
+        if (!overrides.containsKey('windows')) {
+             overrides.windows = new JavaFXPluginExtension()
+        }
+        ConfigureUtil.configure(closure, overrides.windows)
+    }
+
+    def macosx(Closure closure) {
+        if (!overrides.containsKey('macosx')) {
+             overrides.macosx = new JavaFXPluginExtension()
+        }
+        ConfigureUtil.configure(closure, overrides.macosx)
+    }
+
+    def linux(Closure closure) {
+        if (!overrides.containsKey('linux')) {
+             overrides.linux = new JavaFXPluginExtension()
+        }
+        ConfigureUtil.configure(closure, overrides.linux)
+    }
+
+    JavaFXPluginExtension getCurrentOverride() {
+        def currentOS = OperatingSystem.current();
+        if (currentOS.isWindows()) {
+            return overrides['windows']
+        }
+        if (currentOS.isLinux()) {
+            return overrides['linux']
+        }
+        if (currentOS.isMacOsX()) {
+            return overrides['macosx']
+        }
+
+        return null;
+    }
+
+    JavaFXPluginExtension getOverride(String os) {
+      return overrides.get(os)
+    }
+
     protected void addIcon(String kind, String href) {
         IconInfo ii = new IconInfo(href)
         ii.kind = kind
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.