[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.mingw b/Makefile.mingw
index 2f67aa3..d76ddcd 100644
--- a/Makefile.mingw
+++ b/Makefile.mingw
@@ -26,8 +26,8 @@
nbexec64.dll: include/jni.h include/jni_types.h jvmlauncher.cpp nbexec.cpp platformlauncher.cpp utilsfuncs.cpp nbexec64.res
x86_64-w64-mingw32-gcc -s -shared -m64 -o nbexec64.dll -I include jvmlauncher.cpp nbexec.cpp platformlauncher.cpp utilsfuncs.cpp nbexec64.res -Wl,--no-insert-timestamp -static -lstdc++ -static-libstdc++ -static-libgcc
-nbexec_exe64.res: nbexec_exe.rc
- x86_64-w64-mingw32-windres -onbexec_exe64.res -Ocoff nbexec_exe.rc
+nbexec_exe64.res: nbexec_exe.rc nbexec.exe.manifest
+ x86_64-w64-mingw32-windres -onbexec_exe64.res -Ocoff -DMANIFEST_FILE=nbexec.exe.manifest nbexec_exe.rc
nbexec64.exe: nbexecexe.cpp utilsfuncs.cpp nbexec_exe64.res
x86_64-w64-mingw32-gcc -s -DNBEXEC_DLL='"nbexec64.dll"' -DARCHITECTURE=64 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh -Wl,--no-insert-timestamp nbexecexe.cpp utilsfuncs.cpp nbexec_exe64.res -onbexec64.exe -static -lstdc++ -static-libstdc++ -static-libgcc
@@ -38,8 +38,8 @@
nbexec.dll: include/jni.h include/jni_types.h jvmlauncher.cpp nbexec.cpp platformlauncher.cpp utilsfuncs.cpp nbexec.res
i686-w64-mingw32-gcc -s -shared -o nbexec.dll -I include jvmlauncher.cpp nbexec.cpp platformlauncher.cpp utilsfuncs.cpp nbexec.res -static -Wl,--no-insert-timestamp -lstdc++ -static-libstdc++ -static-libgcc
-nbexec_exe.res: nbexec_exe.rc
- i686-w64-mingw32-windres -onbexec_exe.res -Ocoff nbexec_exe.rc
+nbexec_exe.res: nbexec_exe.rc nbexec.exe.manifest
+ i686-w64-mingw32-windres -onbexec_exe.res -Ocoff -DMANIFEST_FILE=nbexec.exe.manifest nbexec_exe.rc
nbexec.exe: nbexecexe.cpp utilsfuncs.cpp nbexec_exe.res
i686-w64-mingw32-gcc -s -DNBEXEC_DLL='"nbexec.dll"' -DARCHITECTURE=32 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--no-seh -Wl,--no-insert-timestamp nbexecexe.cpp utilsfuncs.cpp nbexec_exe.res -onbexec.exe -static -lstdc++ -static-libstdc++ -static-libgcc
diff --git a/nbexec.exe.manifest b/nbexec.exe.manifest
index da15223..cfc9190 100644
--- a/nbexec.exe.manifest
+++ b/nbexec.exe.manifest
@@ -25,7 +25,7 @@
name="nbexec.exe"
type="win32"/>
-<description>nbexec Process.</description>
+<description>nbexec process</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
@@ -48,4 +48,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>
diff --git a/nbexec_exe.rc b/nbexec_exe.rc
index 598b6c0..df75c0b 100644
--- a/nbexec_exe.rc
+++ b/nbexec_exe.rc
@@ -24,6 +24,6 @@
#include "version.rc"
-
-CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "nbexec.exe.manifest"
+// Value MANIFEST_FILE id taken from windres parameter -DMANIFEST_FILE
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST MANIFEST_FILE