SimpleTag (List<SimpleTag> topLevelTagsCollector, JavaFxPackagerConstants.NativeBundles bundle, JavaFxApplicationIcons appIcons, String relativeToPath) { boolean haveAppIcon = false; if (appIcons == null || bundle == null || appIcons.isEmpty()) return null; if (bundle.isOnLinux()) { String iconPath = appIcons.getLinuxIcon(relativeToPath); if (!StringUtil.isEmpty(iconPath)) { final SimpleTag and = new SimpleTag("and"); and.add(new SimpleTag("os", Couple.of("family", "unix"))); final SimpleTag not = new SimpleTag("not"); not.add(new SimpleTag("os", Couple.of("family", "mac"))); and.add(not); appendIconPropertyTag(topLevelTagsCollector, iconPath, relativeToPath != null, and); haveAppIcon = true; } } if (bundle.isOnMac()) { String iconPath = appIcons.getMacIcon(relativeToPath); if (!StringUtil.isEmpty(iconPath)) { appendIconPropertyTag(topLevelTagsCollector, iconPath, relativeToPath != null, new SimpleTag("os", Couple.of("family", "mac"))); haveAppIcon = true; } } if (bundle.isOnWindows()) { String iconPath = appIcons.getWindowsIcon(relativeToPath); if (!StringUtil.isEmpty(iconPath)) { appendIconPropertyTag(topLevelTagsCollector, iconPath, relativeToPath != null, new SimpleTag("os", Couple.of("family", "windows"))); haveAppIcon = true; } } if (haveAppIcon) { return new SimpleTag("fx:icon", Couple.of("href", "${app.icon.path}")); } return null; }