From b822f427d894f46a85d3ce5ff785d3ea2cef972f Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Thu, 14 Sep 2023 16:07:50 +0100 Subject: win32: improved support for manifests The UTF-8 manifest has been updated to include features from the standard application manifest. Include a copy of the standard application manifest for toolchains that don't provide one. (GitHub issue #366) --- Config.in | 27 ++++++++++++++++++++++++--- configs/make32_defconfig | 4 +++- configs/make64_defconfig | 4 +++- configs/mingw32_defconfig | 4 +++- configs/mingw64_defconfig | 4 +++- configs/mingw64u_defconfig | 4 +++- win32/resources/Kbuild.src | 1 + win32/resources/app.manifest | 24 ++++++++++++++++++++++++ win32/resources/resources.rc | 4 ++++ win32/resources/utf8.manifest | 21 +++++++++++++++++++++ 10 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 win32/resources/app.manifest diff --git a/Config.in b/Config.in index 548eaf20c..5a7eda66a 100644 --- a/Config.in +++ b/Config.in @@ -432,15 +432,36 @@ config FEATURE_VERSIONINFO help Include version information in the application. -config FEATURE_UTF8_MANIFEST - bool "Include UTF-8 manifest in binary" - default n +choice + prompt "Manifest" + default FEATURE_TOOLCHAIN_MANIFEST depends on FEATURE_RESOURCES + help + Manifest to include in resources. + +config FEATURE_TOOLCHAIN_MANIFEST + bool "Toolchain default" + help + Include the default application manifest provided by the build + toolchain, if any. + +config FEATURE_APP_MANIFEST + bool "Application" + help + Include a manifest which declares privileges required by the + application and supported versions of Windows. Enable this + if your build toolchain doesn't include it by default. + +config FEATURE_UTF8_MANIFEST + bool "UTF-8" help Include a manifest which sets the process code page to UTF-8. + This also includes details from the standard application manifest. Users who enable this may also wish to enable FEATURE_UTF8_INPUT and/or FEATURE_UTF8_OUTPUT. +endchoice + config FEATURE_ICON bool "Include application icon in binary" default y diff --git a/configs/make32_defconfig b/configs/make32_defconfig index 9e127b2f5..0892801d3 100644 --- a/configs/make32_defconfig +++ b/configs/make32_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.37.0.git -# Thu Aug 10 10:24:35 2023 +# Thu Sep 14 16:00:50 2023 # CONFIG_HAVE_DOT_CONFIG=y # CONFIG_PLATFORM_POSIX is not set @@ -48,6 +48,8 @@ CONFIG_FEATURE_PRNG_SHELL=y # CONFIG_FEATURE_PRNG_ISAAC is not set # CONFIG_FEATURE_RESOURCES is not set # CONFIG_FEATURE_VERSIONINFO is not set +CONFIG_FEATURE_TOOLCHAIN_MANIFEST=y +# CONFIG_FEATURE_APP_MANIFEST is not set # CONFIG_FEATURE_UTF8_MANIFEST is not set # CONFIG_FEATURE_ICON is not set # CONFIG_FEATURE_ICON_ATERM is not set diff --git a/configs/make64_defconfig b/configs/make64_defconfig index 5a126c9b6..8c372ae54 100644 --- a/configs/make64_defconfig +++ b/configs/make64_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.37.0.git -# Thu Aug 10 10:24:35 2023 +# Thu Sep 14 16:00:50 2023 # CONFIG_HAVE_DOT_CONFIG=y # CONFIG_PLATFORM_POSIX is not set @@ -48,6 +48,8 @@ CONFIG_FEATURE_PRNG_SHELL=y # CONFIG_FEATURE_PRNG_ISAAC is not set # CONFIG_FEATURE_RESOURCES is not set # CONFIG_FEATURE_VERSIONINFO is not set +CONFIG_FEATURE_TOOLCHAIN_MANIFEST=y +# CONFIG_FEATURE_APP_MANIFEST is not set # CONFIG_FEATURE_UTF8_MANIFEST is not set # CONFIG_FEATURE_ICON is not set # CONFIG_FEATURE_ICON_ATERM is not set diff --git a/configs/mingw32_defconfig b/configs/mingw32_defconfig index 7af208171..9a822e351 100644 --- a/configs/mingw32_defconfig +++ b/configs/mingw32_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.37.0.git -# Thu Aug 10 10:20:52 2023 +# Thu Sep 14 16:00:50 2023 # CONFIG_HAVE_DOT_CONFIG=y # CONFIG_PLATFORM_POSIX is not set @@ -48,6 +48,8 @@ CONFIG_FEATURE_PRNG_SHELL=y # CONFIG_FEATURE_PRNG_ISAAC is not set CONFIG_FEATURE_RESOURCES=y CONFIG_FEATURE_VERSIONINFO=y +CONFIG_FEATURE_TOOLCHAIN_MANIFEST=y +# CONFIG_FEATURE_APP_MANIFEST is not set # CONFIG_FEATURE_UTF8_MANIFEST is not set CONFIG_FEATURE_ICON=y # CONFIG_FEATURE_ICON_ATERM is not set diff --git a/configs/mingw64_defconfig b/configs/mingw64_defconfig index 92ceee1b9..7a83a096f 100644 --- a/configs/mingw64_defconfig +++ b/configs/mingw64_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.37.0.git -# Thu Aug 10 10:20:52 2023 +# Thu Sep 14 16:00:50 2023 # CONFIG_HAVE_DOT_CONFIG=y # CONFIG_PLATFORM_POSIX is not set @@ -48,6 +48,8 @@ CONFIG_FEATURE_PRNG_SHELL=y # CONFIG_FEATURE_PRNG_ISAAC is not set CONFIG_FEATURE_RESOURCES=y CONFIG_FEATURE_VERSIONINFO=y +CONFIG_FEATURE_TOOLCHAIN_MANIFEST=y +# CONFIG_FEATURE_APP_MANIFEST is not set # CONFIG_FEATURE_UTF8_MANIFEST is not set CONFIG_FEATURE_ICON=y # CONFIG_FEATURE_ICON_ATERM is not set diff --git a/configs/mingw64u_defconfig b/configs/mingw64u_defconfig index 38ddc0111..e9425d45b 100644 --- a/configs/mingw64u_defconfig +++ b/configs/mingw64u_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.37.0.git -# Thu Aug 10 10:20:52 2023 +# Thu Sep 14 16:00:50 2023 # CONFIG_HAVE_DOT_CONFIG=y # CONFIG_PLATFORM_POSIX is not set @@ -48,6 +48,8 @@ CONFIG_FEATURE_PRNG_SHELL=y # CONFIG_FEATURE_PRNG_ISAAC is not set CONFIG_FEATURE_RESOURCES=y CONFIG_FEATURE_VERSIONINFO=y +# CONFIG_FEATURE_TOOLCHAIN_MANIFEST is not set +# CONFIG_FEATURE_APP_MANIFEST is not set CONFIG_FEATURE_UTF8_MANIFEST=y CONFIG_FEATURE_ICON=y # CONFIG_FEATURE_ICON_ATERM is not set diff --git a/win32/resources/Kbuild.src b/win32/resources/Kbuild.src index c4cb9642f..e2d884e98 100644 --- a/win32/resources/Kbuild.src +++ b/win32/resources/Kbuild.src @@ -27,3 +27,4 @@ quiet_cmd_windres = WINDRES $@ win32/resources/resources.o: win32/resources/resources.rc .config win32/resources/resources.o: win32/resources/aterm.ico win32/resources/sterm.ico win32/resources/resources.o: win32/resources/utf8.manifest +win32/resources/resources.o: win32/resources/app.manifest diff --git a/win32/resources/app.manifest b/win32/resources/app.manifest new file mode 100644 index 000000000..5e76b7b8e --- /dev/null +++ b/win32/resources/app.manifest @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/resources/resources.rc b/win32/resources/resources.rc index b7d82d767..e75bec6ea 100644 --- a/win32/resources/resources.rc +++ b/win32/resources/resources.rc @@ -38,3 +38,7 @@ END #if ENABLE_FEATURE_UTF8_MANIFEST 1 MANIFEST "utf8.manifest" #endif + +#if ENABLE_FEATURE_APP_MANIFEST +1 MANIFEST "app.manifest" +#endif diff --git a/win32/resources/utf8.manifest b/win32/resources/utf8.manifest index cb9a81e5c..efe6a3d2f 100644 --- a/win32/resources/utf8.manifest +++ b/win32/resources/utf8.manifest @@ -6,4 +6,25 @@ UTF-8 + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3-55-g6feb