8212936: Makefile and other improvements for jpackager JDK-8200758-branch
authorherrick
Fri, 16 Nov 2018 14:42:43 -0500
branchJDK-8200758-branch
changeset 57027 124983f48645
parent 57026 5f20b792d15b
child 57028 51cc1a1f91f3
8212936: Makefile and other improvements for jpackager Reviewed-by: almatvee, erikj
make/CompileJavaModules.gmk
make/common/Modules.gmk
make/launcher/Launcher-jdk.jpackager.gmk
make/lib/Lib-jdk.jpackager.gmk
src/jdk.jlink/linux/classes/module-info.java.extra
src/jdk.jlink/macosx/classes/module-info.java.extra
src/jdk.jlink/share/classes/module-info.java
src/jdk.jlink/windows/classes/module-info.java.extra
src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder.properties
src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder_ja.properties
src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder_zh_CN.properties
--- a/make/CompileJavaModules.gmk	Fri Nov 09 11:15:38 2018 -0500
+++ b/make/CompileJavaModules.gmk	Fri Nov 16 14:42:43 2018 -0500
@@ -389,15 +389,7 @@
 jdk.jpackager_COPY += .gif .png .txt .spec .script .prerm .preinst .postrm .postinst .list \
     .desktop .copyright .control .plist .template .icns .scpt .entitlements .wxs .iss .ico .bmp
 
-jdk.jpackager_CLEAN_FILES += $(wildcard \
-    $(TOPDIR)/src/jdk.jpackager/share/classes/jdk/jpackager/internal/resources/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/share/classes/jdk/jpackager/internal/resources/builders/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/linux/classes/jdk/jpackager/internal/resources/builders/linux/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/macosx/classes/jdk/jpackager/internal/resources/builders/mac/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/linux/classes/jdk/jpackager/internal/resources/linux/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/macosx/classes/jdk/jpackager/internal/resources/mac/*.properties \
-    $(TOPDIR)/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/windows/*.properties)
+jdk.jpackager_CLEAN += .properties
 
 ################################################################################
 
--- a/make/common/Modules.gmk	Fri Nov 09 11:15:38 2018 -0500
+++ b/make/common/Modules.gmk	Fri Nov 16 14:42:43 2018 -0500
@@ -231,9 +231,9 @@
 endif
 
 ################################################################################
-# Some platforms don't have jpackager
+# jpackager is only on windows, macosx, and linux
 
-ifeq ($(OPENJDK_TARGET_OS), solaris)
+ifeq ($(filter $(OPENJDK_TARGET_OS), windows macosx linux), )
   MODULES_FILTER += jdk.jpackager
   MODULES_FILTER += jdk.jpackager.runtime
 endif
--- a/make/launcher/Launcher-jdk.jpackager.gmk	Fri Nov 09 11:15:38 2018 -0500
+++ b/make/launcher/Launcher-jdk.jpackager.gmk	Fri Nov 16 14:42:43 2018 -0500
@@ -30,43 +30,38 @@
 
 ifeq ($(OPENJDK_TARGET_OS), windows)
 
-JPACKAGEREXE_SRC := $(TOPDIR)/src/jdk.jpackager/windows/native/jpackager
+  JPACKAGEREXE_SRC := $(TOPDIR)/src/jdk.jpackager/windows/native/jpackager
 
-$(eval $(call SetupJdkExecutable, BUILD_JPACKAGEREXE, \
-    NAME := jpackager, \
-    SRC := $(JPACKAGEREXE_SRC), \
-    TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
-    OPTIMIZATION := LOW, \
-    CFLAGS := $(CXXFLAGS_JDKEXE) -nologo -DFULL  -EHsc \
-	  -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN \
-	  -DUNICODE -D_UNICODE, \
-    CFLAGS_release := -DPRODUCT, \
-    DISABLED_WARNINGS_gcc := unused-result implicit-fallthrough, \
-    LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) -nologo \
-        $(call SET_SHARED_LIBRARY_ORIGIN), \
-    LIBS := $(LIBCXX) user32.lib shell32.lib advapi32.lib ole32.lib, \
-    VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
-))
+  $(eval $(call SetupJdkExecutable, BUILD_JPACKAGEREXE, \
+      NAME := jpackager, \
+      SRC := $(JPACKAGEREXE_SRC), \
+      OPTIMIZATION := LOW, \
+      CFLAGS := $(CXXFLAGS_JDKEXE), \
+      CFLAGS_windows := -DFULL -EHsc -DUNICODE -D_UNICODE, \
+      CFLAGS_release := -DPRODUCT, \
+      LDFLAGS := $(LDFLAGS_JDKEXE), \
+      LIBS := $(LIBCXX) user32.lib shell32.lib advapi32.lib ole32.lib, \
+  ))
 
-TARGETS += $(BUILD_JPACKAGEREXE)
+  TARGETS += $(BUILD_JPACKAGEREXE)
 
 else
 
   # Chmod to avoid permission issues for exploded JDK
-define copy-and-chmod
-    $(install-file)
-    $(CHMOD) +x $@
-endef
+  define copy-and-chmod
+	$(install-file)
+	$(CHMOD) +x $@
+  endef
 
-#copy script for Unix
-$(eval $(call SetupCopyFiles, COPY_JPACKAGERSCRIPT, \
-    SRC := $(TOPDIR)/src/jdk.jpackager/unix/scripts/, \
-    DEST := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \
-    FILES := jpackager, \
-    MACRO := copy-and-chmod, \
-))
+  #copy script for Unix
+  $(eval $(call SetupCopyFiles, COPY_JPACKAGERSCRIPT, \
+      SRC := $(TOPDIR)/src/jdk.jpackager/unix/scripts/, \
+      DEST := $(call FindExecutableDirForModule, $(MODULE)), \
+      FILES := jpackager, \
+      MACRO := copy-and-chmod, \
+  ))
 
-TARGETS += $(COPY_JPACKAGERSCRIPT)
+  TARGETS += $(COPY_JPACKAGERSCRIPT)
 
 endif
 
--- a/make/lib/Lib-jdk.jpackager.gmk	Fri Nov 09 11:15:38 2018 -0500
+++ b/make/lib/Lib-jdk.jpackager.gmk	Fri Nov 16 14:42:43 2018 -0500
@@ -29,7 +29,8 @@
 
 LIBPACKAGER_SRC_ROOT := $(TOPDIR)/src/jdk.jpackager
 LIBPACKAGER_SHARED_SRC := $(LIBPACKAGER_SRC_ROOT)/share/native/library/common
-LIBPACKAGER_PLATFORM_SRC := $(LIBPACKAGER_SRC_ROOT)/$(OPENJDK_TARGET_OS)/native/library
+LIBPACKAGER_PLATFORM_SRC := \
+    $(LIBPACKAGER_SRC_ROOT)/$(OPENJDK_TARGET_OS)/native/library
 
 BUILD_LIBPACKAGER_SRC :=
 
@@ -40,7 +41,7 @@
 BUILD_LIBPACKAGER_SRC += $(LIBPACKAGER_SHARED_SRC)
 
 
-# Output shared library and debug symbols files in the same directory as .obj files.
+# Output shared library and symbols files in the same directory as .obj files.
 $(eval $(call SetupJdkLibrary, BUILD_LIBPACKAGER, \
     NAME := jpackager, \
     SRC := $(BUILD_LIBPACKAGER_SRC), \
@@ -48,7 +49,7 @@
     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
     OPTIMIZATION := LOW, \
     CFLAGS := $(CXXFLAGS_JDKLIB) -I$(LIBPACKAGER_SHARED_SRC), \
-    CFLAGS_windows :=  -nologo -EHsc -D_WINDOWS -DUNICODE -D_UNICODE -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN, \
+    CFLAGS_windows := -EHsc -DUNICODE -D_UNICODE, \
     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
     LIBS := $(LIBCXX), \
@@ -66,25 +67,22 @@
 
 ################################################################################
 
-PACKAGERAPPLAUNCHEREXE_SRC := $(TOPDIR)/src/jdk.jpackager/$(OPENJDK_TARGET_OS)/native/launcher
+PACKAGERAPPLAUNCHEREXE_SRC := \
+    $(TOPDIR)/src/jdk.jpackager/$(OPENJDK_TARGET_OS)/native/launcher
 
-
-# Output executable and debug symbols files in the same directory as .obj files.
+# Output executable and symbols files in the same directory as .obj files.
 $(eval $(call SetupJdkExecutable, BUILD_PACKAGERAPPLAUNCHEREXE, \
     NAME := papplauncher, \
     SRC := $(PACKAGERAPPLAUNCHEREXE_SRC), \
     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/papplauncher, \
     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
     OPTIMIZATION := LOW, \
-    CFLAGS := $(CXXFLAGS_JDKEXE) -DFULL, \
-    CFLAGS_release := -DPRODUCT, \
+    CFLAGS := $(CXXFLAGS_JDKEXE), \
     CFLAGS_linux := -fPIC, \
     CFLAGS_solaris := -KPIC, \
     CFLAGS_macosx := -fPIC, \
-    CFLAGS_windows :=  -nologo -EHsc -D_WINDOWS -DUNICODE -D_UNICODE -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN, \
-    DISABLED_WARNINGS_gcc := unused-result implicit-fallthrough, \
-    LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
-        $(call SET_SHARED_LIBRARY_ORIGIN), \
+    CFLAGS_windows := -EHsc -DUNICODE -D_UNICODE, \
+    LDFLAGS_windows := -nologo, \
     LDFLAGS_macosx := -stdlib=libstdc++, \
     LIBS_macosx := -framework Cocoa, \
     LIBS := $(LIBCXX), \
@@ -99,33 +97,31 @@
 # Build console version of launcher
 ifeq ($(OPENJDK_TARGET_OS), windows)
 
-PACKAGERAPPLAUNCHERCEXE_SRC := $(TOPDIR)/src/jdk.jpackager/$(OPENJDK_TARGET_OS)/native/launcher
+# Output executable and symbols files in the same directory as .obj files.
+  $(eval $(call SetupJdkExecutable, BUILD_PACKAGERAPPLAUNCHERCEXE, \
+      NAME := papplauncherc, \
+      SRC := $(PACKAGERAPPLAUNCHEREXE_SRC), \
+      OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/papplauncherc, \
+      TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
+      OPTIMIZATION := LOW, \
+      CFLAGS := $(CXXFLAGS_JDKEXE), \
+      CFLAGS_windows := -EHsc -DLAUNCHERC -DUNICODE -D_UNICODE, \
+      LDFLAGS_windows := -nologo, \
+      LIBS := $(LIBCXX), \
+      LIBS_windows :=  user32.lib shell32.lib advapi32.lib, \
+      VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
+  ))
 
-# Output executable and debug symbols files in the same directory as .obj files.
-$(eval $(call SetupJdkExecutable, BUILD_PACKAGERAPPLAUNCHERCEXE, \
-    NAME := papplauncherc, \
-    SRC := $(PACKAGERAPPLAUNCHERCEXE_SRC), \
-    OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/papplauncherc, \
-    TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
-    OPTIMIZATION := LOW, \
-    CFLAGS := $(CXXFLAGS_JDKEXE) -DFULL, \
-    CFLAGS_release := -DPRODUCT, \
-    CFLAGS_windows :=  -nologo -EHsc -DLAUNCHERC -D_WINDOWS -DUNICODE -D_UNICODE -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN, \
-    LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
-        $(call SET_SHARED_LIBRARY_ORIGIN), \
-    LIBS := $(LIBCXX), \
-    LIBS_windows :=  user32.lib shell32.lib advapi32.lib, \
-    VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
-))
-
-TARGETS += $(BUILD_PACKAGERAPPLAUNCHERCEXE)
+  TARGETS += $(BUILD_PACKAGERAPPLAUNCHERCEXE)
 endif
 
 ################################################################################
 
 
-# Copy debug symbols to module lib output directory so that JDK build system put them in jdk/bin directory.
-# Copy binaries to module classes output directory so that JDK build system put them in module resources.
+# Copy debug symbols to module lib output directory so that JDK build system
+# put them in jdk/bin directory.
+# Copy binaries to module classes output directory so that JDK build system
+# put them in module resources.
 
 ifeq ($(OPENJDK_TARGET_OS), macosx)
   RESOURCE_SUBDIR := mac
@@ -150,5 +146,5 @@
 $(call SetupCopyTargetFiles,BUILD_PACKAGERAPPLAUNCHEREXE)
 
 ifeq ($(OPENJDK_TARGET_OS), windows)
-$(call SetupCopyTargetFiles,BUILD_PACKAGERAPPLAUNCHERCEXE)
+  $(call SetupCopyTargetFiles,BUILD_PACKAGERAPPLAUNCHERCEXE)
 endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.jlink/linux/classes/module-info.java.extra	Fri Nov 16 14:42:43 2018 -0500
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+    exports jdk.tools.jlink.internal.packager to
+        jdk.jpackager;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.jlink/macosx/classes/module-info.java.extra	Fri Nov 16 14:42:43 2018 -0500
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+    exports jdk.tools.jlink.internal.packager to
+        jdk.jpackager;
--- a/src/jdk.jlink/share/classes/module-info.java	Fri Nov 09 11:15:38 2018 -0500
+++ b/src/jdk.jlink/share/classes/module-info.java	Fri Nov 16 14:42:43 2018 -0500
@@ -76,7 +76,4 @@
         jdk.tools.jlink.internal.plugins.IncludeLocalesPlugin,
         jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin,
         jdk.tools.jlink.internal.plugins.ReleaseInfoPlugin;
-
-    exports jdk.tools.jlink.internal.packager to
-        jdk.jpackager;
- }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.jlink/windows/classes/module-info.java.extra	Fri Nov 16 14:42:43 2018 -0500
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+    exports jdk.tools.jlink.internal.packager to
+        jdk.jpackager;
--- a/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder.properties	Fri Nov 09 11:15:38 2018 -0500
+++ b/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder.properties	Fri Nov 16 14:42:43 2018 -0500
@@ -40,5 +40,6 @@
 error.cannot-write-to-output-dir=Output directory {0} is not writable.
 
 message.potential.windows.defender.issue=Warning: Windows Defender may prevent the Java Packager from functioning. If there is an issue, it can be addressed by either disabling realtime monitoring, or adding an exclusion for the directory "{0}".
+message.icon-not-ico=The specified icon "{0}" is not an ICO file and will not be used.  The default icon will be used in it's place.
 
 resource.executable-properties-template=Template for creating executable properties file.
--- a/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder_ja.properties	Fri Nov 09 11:15:38 2018 -0500
+++ b/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder_ja.properties	Fri Nov 16 14:42:43 2018 -0500
@@ -40,5 +40,6 @@
 error.cannot-write-to-output-dir=\u51FA\u529B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u306F\u66F8\u8FBC\u307F\u4E0D\u53EF\u3067\u3059\u3002
 
 message.potential.windows.defender.issue=\u8B66\u544A: Windows Defender\u304C\u539F\u56E0\u3067Java\u30D1\u30C3\u30B1\u30FC\u30B8\u30E3\u304C\u6A5F\u80FD\u3057\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u5834\u5408\u306F\u3001\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u30FB\u30E2\u30CB\u30BF\u30EA\u30F3\u30B0\u3092\u7121\u52B9\u306B\u3059\u308B\u304B\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA"{0}"\u306E\u9664\u5916\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u554F\u984C\u306B\u5BFE\u51E6\u3067\u304D\u307E\u3059\u3002
+message.icon-not-ico=The specified icon "{0}" is not an ICO file and will not be used.  The default icon will be used in it's place.
 
 resource.executable-properties-template=\u5B9F\u884C\u53EF\u80FD\u306A\u30D7\u30ED\u30D1\u30C6\u30A3\u30FB\u30D5\u30A1\u30A4\u30EB\u4F5C\u6210\u7528\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3002
--- a/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder_zh_CN.properties	Fri Nov 09 11:15:38 2018 -0500
+++ b/src/jdk.jpackager/windows/classes/jdk/jpackager/internal/resources/builders/windows/WindowsAppImageBuilder_zh_CN.properties	Fri Nov 16 14:42:43 2018 -0500
@@ -40,5 +40,6 @@
 error.cannot-write-to-output-dir=\u8F93\u51FA\u76EE\u5F55 {0} \u4E0D\u53EF\u5199\u3002
 
 message.potential.windows.defender.issue=\u8B66\u544A: Windows Defender \u53EF\u80FD\u4F1A\u963B\u6B62 Java \u6253\u5305\u7A0B\u5E8F\u6B63\u5E38\u5DE5\u4F5C\u3002\u5982\u679C\u5B58\u5728\u95EE\u9898, \u53EF\u4EE5\u901A\u8FC7\u7981\u7528\u5B9E\u65F6\u76D1\u89C6\u6216\u8005\u4E3A\u76EE\u5F55 "{0}" \u6DFB\u52A0\u6392\u9664\u9879\u8FDB\u884C\u89E3\u51B3\u3002
+message.icon-not-ico=The specified icon "{0}" is not an ICO file and will not be used.  The default icon will be used in it's place.
 
 resource.executable-properties-template=\u7528\u4E8E\u521B\u5EFA\u53EF\u6267\u884C\u5C5E\u6027\u6587\u4EF6\u7684\u6A21\u677F\u3002