Skip to content

Commit 5a83cfb

Browse files
author
Ivan Zhakov
committed
Add Windows manifest with compatibility information to executable files.
Without compatibility information Windows executes application in "compatibility context". For example, this results in 'svn --version -v' displaying wrong OS version information. Other possible changes are listed in [2]. Partly discussed in [3]. [1]: https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests#compatibility [2]: https://learn.microsoft.com/en-us/windows/compatibility/application-executable-manifest#manifestation [3]: https://lists.apache.org/thread/vd19wz81qjqnz6dn01rk5vc46j12sxw3 * build/generator/templates/targets.cmake.ezt (): Add build/win32/compatibility.manifest for executables. * build/generator/templates/vcnet_vcxproj.ezt (): Add build/win32/compatibility.manifest for executables. * build/win32/compatibility.manifest (): New. git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1933257 13f79535-47bb-0310-9956-ffa450edef68
1 parent 3adc180 commit 5a83cfb

3 files changed

Lines changed: 24 additions & 1 deletion

File tree

build/generator/templates/targets.cmake.ezt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ if ([targets.enable_condition])[is targets.type "swig"]
5959
add_executable([targets.name][for targets.sources]
6060
[targets.sources][end]
6161
)
62+
if (WIN32)
63+
target_sources([targets.name] PRIVATE build/win32/compatibility.manifest)
64+
endif()
6265
[end][is targets.type "test"]
6366
add_executable([targets.name][for targets.sources]
6467
[targets.sources][end]

build/generator/templates/vcnet_vcxproj.ezt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@
9696
<TargetMachine>[is platforms "X64"]MachineX64[else][is platforms "ARM64"]MachineARM64[else]MachineX86[end][end]</TargetMachine>
9797
[is configs.name "Debug"] <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
9898
[end] </Lib>
99-
[end][end][end] </ItemDefinitionGroup>
99+
[end][end][end][is config_type "Application"] <Manifest>
100+
<AdditionalManifestFiles>..\compatibility.manifest</AdditionalManifestFiles>
101+
</Manifest>
102+
[end] </ItemDefinitionGroup>
100103
[end][end][if-any target.desc] <ItemGroup>
101104
<ResourceCompile Include="..\svn.rc" />
102105
</ItemGroup>

build/win32/compatibility.manifest

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
3+
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
4+
<application>
5+
<!-- Windows Vista -->
6+
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
7+
<!-- Windows 7 -->
8+
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
9+
<!-- Windows 8 -->
10+
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
11+
<!-- Windows 8.1 -->
12+
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
13+
<!-- Windows 10 -->
14+
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
15+
</application>
16+
</compatibility>
17+
</assembly>

0 commit comments

Comments
 (0)