[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>