[NETBEANS-1227] Mark Windows launchers as DPI-aware (#883)

* Fix paths that broke in windows launcher sources when directories were moved around.

* Fix a small documentation bug in the platform app launcher configuration template.

* Rename Makefile.migw (typo) to Makefile.mingw in one of the windows launcher sources.

* Ignore files generated when NetBeans 8.2 is used to open the windows launcher projects.

* [NETBEANS-1227] Mark Windows launchers as DPI-aware
diff --git a/Makefile.migw b/Makefile.mingw
similarity index 68%
rename from Makefile.migw
rename to Makefile.mingw
index be43aff..512c77a 100644
--- a/Makefile.migw
+++ b/Makefile.mingw
@@ -20,14 +20,14 @@
 clean:
 	rm -f *.res *.exe
 
-netbeans64.res: netbeans.rc
+netbeans64.res: netbeans.rc netbeans64.exe.manifest
 	x86_64-w64-mingw32-windres -onetbeans64.res -Ocoff -DMANIFEST_FILE=netbeans64.exe.manifest netbeans.rc
 
-netbeans64.exe: netbeans.cpp  nblauncher.cpp netbeans64.res ../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp
-	x86_64-w64-mingw32-gcc -s -DNBEXEC_DLL='"/lib/nbexec64.dll"' -DARCHITECTURE=64 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh netbeans.cpp nblauncher.cpp netbeans64.res ../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp -I ../../../o.n.bootstrap/launcher/windows/ -onetbeans64.exe -static -lstdc++ -static-libstdc++ -static-libgcc
+netbeans64.exe: netbeans.cpp  nblauncher.cpp netbeans64.res ../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp
+	x86_64-w64-mingw32-gcc -s -DNBEXEC_DLL='"/lib/nbexec64.dll"' -DARCHITECTURE=64 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh netbeans.cpp nblauncher.cpp netbeans64.res ../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp -I ../../../platform/o.n.bootstrap/launcher/windows/ -onetbeans64.exe -static -lstdc++ -static-libstdc++ -static-libgcc
 
-netbeans.res: netbeans.rc
+netbeans.res: netbeans.rc netbeans.exe.manifest
 	i686-w64-mingw32-windres -onetbeans.res -Ocoff  -DMANIFEST_FILE=netbeans.exe.manifest netbeans.rc
 
-netbeans.exe: netbeans.cpp  nblauncher.cpp netbeans.res ../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp
-	i686-w64-mingw32-gcc -s -DNBEXEC_DLL='"/lib/nbexec.dll"' -DARCHITECTURE=32 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh netbeans.cpp nblauncher.cpp netbeans.res ../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp -I ../../../o.n.bootstrap/launcher/windows/ -onetbeans.exe -static -lstdc++ -static-libstdc++ -static-libgcc
+netbeans.exe: netbeans.cpp  nblauncher.cpp netbeans.res ../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp
+	i686-w64-mingw32-gcc -s -DNBEXEC_DLL='"/lib/nbexec.dll"' -DARCHITECTURE=32 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh netbeans.cpp nblauncher.cpp netbeans.res ../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp -I ../../../platform/o.n.bootstrap/launcher/windows/ -onetbeans.exe -static -lstdc++ -static-libstdc++ -static-libgcc
diff --git a/nblauncher.cpp b/nblauncher.cpp
index 7dd7f08..37adb70 100644
--- a/nblauncher.cpp
+++ b/nblauncher.cpp
@@ -26,9 +26,9 @@
 
 #include <shlobj.h>
 #include "nblauncher.h"
-#include "../../../o.n.bootstrap/launcher/windows/utilsfuncs.h"
-#include "../../../o.n.bootstrap/launcher/windows/argnames.h"
-#include "../../../o.n.bootstrap/launcher/windows/nbexecloader.h"
+#include "../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.h"
+#include "../../../platform/o.n.bootstrap/launcher/windows/argnames.h"
+#include "../../../platform/o.n.bootstrap/launcher/windows/nbexecloader.h"
 
 using namespace std;
 
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
index 9fdda65..9e0bf6a 100644
--- a/nbproject/configurations.xml
+++ b/nbproject/configurations.xml
@@ -26,7 +26,7 @@
                    projectFiles="true">
       <itemPath>cmdargs.h</itemPath>
       <itemPath>nblauncher.h</itemPath>
-      <itemPath>../../../o.n.bootstrap/launcher/windows/utilsfuncs.h</itemPath>
+      <itemPath>../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.h</itemPath>
       <itemPath>version.h</itemPath>
     </logicalFolder>
     <logicalFolder name="ResourceFiles"
@@ -42,7 +42,7 @@
                    projectFiles="true">
       <itemPath>nblauncher.cpp</itemPath>
       <itemPath>netbeans.cpp</itemPath>
-      <itemPath>../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp</itemPath>
+      <itemPath>../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp</itemPath>
     </logicalFolder>
     <logicalFolder name="ExternalFiles"
                    displayName="Important Files"
@@ -77,12 +77,12 @@
           <commandLine>-mwindows -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh</commandLine>
         </linkerTool>
       </compileType>
-      <item path="../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp"
+      <item path="../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp"
             ex="false"
             tool="1"
             flavor2="0">
       </item>
-      <item path="../../../o.n.bootstrap/launcher/windows/utilsfuncs.h"
+      <item path="../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.h"
             ex="false"
             tool="3"
             flavor2="0">
@@ -131,12 +131,12 @@
           <commandLine>-mwindows -Wl,--nxcompat -Wl,--dynamicbase</commandLine>
         </linkerTool>
       </compileType>
-      <item path="../../../o.n.bootstrap/launcher/windows/utilsfuncs.cpp"
+      <item path="../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.cpp"
             ex="false"
             tool="1"
             flavor2="0">
       </item>
-      <item path="../../../o.n.bootstrap/launcher/windows/utilsfuncs.h"
+      <item path="../../../platform/o.n.bootstrap/launcher/windows/utilsfuncs.h"
             ex="false"
             tool="3"
             flavor2="0">
diff --git a/netbeans.exe.manifest b/netbeans.exe.manifest
index 931dcec..71b1164 100644
--- a/netbeans.exe.manifest
+++ b/netbeans.exe.manifest
@@ -25,7 +25,7 @@
    name="netbeans.exe"
    type="win32"/>
 
-<description>nbexec Process.</description>
+<description>NetBeans IDE process</description>
 <dependency>
   <dependentAssembly>
     <assemblyIdentity
@@ -48,4 +48,24 @@
       </requestedPrivileges>
      </security>
 </trustInfo>
+<!-- NETBEANS-1227: Indicate the same HiDPI capabilities as javaw.exe from JDK 11. -->
+<!-- Note that even 32-bit Java 10.0.2 indicates HiDPI-awareness, so it should
+     be fine to include it here as well. -->
+<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+  <asmv3:windowsSettings xmlns:dpi1="http://schemas.microsoft.com/SMI/2005/WindowsSettings" xmlns:dpi2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
+    <dpi1:dpiAware>true/PM</dpi1:dpiAware>
+    <dpi2:dpiAwareness>PerMonitorV2, PerMonitor, system</dpi2:dpiAwareness>
+  </asmv3:windowsSettings>
+</asmv3:application>
+<!-- List of explicitly supported Windows versions. This is the list from
+     javaw.exe on JDK 8.0.172, which is the same as that of JDK 11ea. -->
+<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+  <application>
+    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
+    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+    <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+  </application>
+</compatibility>
 </assembly>
diff --git a/netbeans64.exe.manifest b/netbeans64.exe.manifest
index c0ba0f1..3f7dc6e 100644
--- a/netbeans64.exe.manifest
+++ b/netbeans64.exe.manifest
@@ -20,12 +20,14 @@
 
 -->
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<!-- Use processorArchitecture="x86", which is the value used by the 64-bit
+     javaw.exe on Java 10.0.2 and Java 11ea. -->
 <assemblyIdentity version="9.0.0.0"
-   processorArchitecture="ia64"
+   processorArchitecture="x86"
    name="netbeans64.exe"
    type="win32"/>
 
-<description>nbexec Process.</description>
+<description>NetBeans IDE process</description>
 <dependency>
   <dependentAssembly>
     <assemblyIdentity
@@ -48,4 +50,22 @@
       </requestedPrivileges>
      </security>
 </trustInfo>
+<!-- NETBEANS-1227: Indicate the same HiDPI capabilities as javaw.exe from JDK 11. -->
+<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+  <asmv3:windowsSettings xmlns:dpi1="http://schemas.microsoft.com/SMI/2005/WindowsSettings" xmlns:dpi2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
+    <dpi1:dpiAware>true/PM</dpi1:dpiAware>
+    <dpi2:dpiAwareness>PerMonitorV2, PerMonitor, system</dpi2:dpiAwareness>
+  </asmv3:windowsSettings>
+</asmv3:application>
+<!-- List of explicitly supported Windows versions. This is the list from
+     javaw.exe on JDK 8.0.172, which is the same as that of JDK 11ea. -->
+<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+  <application>
+    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
+    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+    <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+  </application>
+</compatibility>
 </assembly>