408752ec49
This enables "classic" desktop builds of ICU4C for both ARM (32-bit) and ARM64 (64-bit) on Windows. All but the two samples "cal" and "date" in the "allinone" project now have ARM and ARM64 project configurations, and build for Windows Desktop ARM/ARM64. Note: In order to build the ARM/ARM64 data DLL, you need to first build x64/Release, as the ARM/ARM build uses the x64 bits in order to be able to cross-compile for ARM/ARM64. This allows for completely building ARM/ARM64 binaries using only x64 hardware. The ARM/ARM64 builds require using a newer version of the Windows SDK than 8.1, so they have a separate WindowsTargetPlatformVersion which uses Windows 10 SDK version 10.0.16299.0 (aka RS3), which is the first version of the Windows SDK to support building ARM64 desktop applications. In addition this also greatly cleans-up the ICU4C ".vcxproj" files, in order to remove redundant parts, fix inconsistencies, and make them more readable. This introduces two new variables in the shared `*.props` files: `IcuBinOutputDir` and `IcuLibOutputDir` in order to further reduce the amount of duplicated lines in the individual ".vcxproj" files themselves.
64 lines
3.8 KiB
XML
64 lines
3.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
|
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<!-- This file is used to set common configuration options for all *_uwp projects. -->
|
|
<PropertyGroup>
|
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
|
<AppContainerApplication>true</AppContainerApplication>
|
|
<ApplicationType>Windows Store</ApplicationType>
|
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
|
</PropertyGroup>
|
|
<!-- If not already set, then we will default to using the latest installed Windows 10 SDK version. -->
|
|
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
|
|
<!-- Detect the SDK version. -->
|
|
<WindowsSdkInstallFolder_10 Condition="'$(WindowsSdkInstallFolder_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</WindowsSdkInstallFolder_10>
|
|
<WindowsSdkInstallFolder_10 Condition="'$(WindowsSdkInstallFolder_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</WindowsSdkInstallFolder_10>
|
|
<WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
|
|
<WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
|
|
<!-- Sometimes the version in the registry has the '.0' suffix, and sometimes it doesn't. Check and add it. -->
|
|
<WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' != '' and !$(WindowsTargetPlatformVersion_10.EndsWith('.0'))">$(WindowsTargetPlatformVersion_10).0</WindowsTargetPlatformVersion_10>
|
|
<!-- Set the default. -->
|
|
<WindowsTargetPlatformVersion>$(WindowsTargetPlatformVersion_10)</WindowsTargetPlatformVersion>
|
|
<!-- Set the minimum Win10 SDK version to TH1/RTM. -->
|
|
<WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
|
|
</PropertyGroup>
|
|
<!-- The following import will set the PlatformToolset configuration. -->
|
|
<Import Project="..\allinone\Build.Windows.PlatformToolset.props" />
|
|
<!-- The following PropertyGroups are used to set the binary and lib output locations -->
|
|
<PropertyGroup Condition="'$(Platform)'=='Win32'">
|
|
<IcuBinOutputDir>bin32uwp</IcuBinOutputDir>
|
|
<IcuLibOutputDir>lib32uwp</IcuLibOutputDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
|
<IcuBinOutputDir>bin64uwp</IcuBinOutputDir>
|
|
<IcuLibOutputDir>lib64uwp</IcuLibOutputDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Platform)'=='ARM'">
|
|
<IcuBinOutputDir>binARMuwp</IcuBinOutputDir>
|
|
<IcuLibOutputDir>libARMuwp</IcuLibOutputDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
|
<IcuBinOutputDir>binARM64uwp</IcuBinOutputDir>
|
|
<IcuLibOutputDir>libARM64uwp</IcuLibOutputDir>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup>
|
|
<Midl>
|
|
<PreprocessorDefinitions>
|
|
%(PreprocessorDefinitions)
|
|
U_PLATFORM_HAS_WINUWP_API=1;
|
|
</PreprocessorDefinitions>
|
|
</Midl>
|
|
<ClCompile>
|
|
<PreprocessorDefinitions>
|
|
%(PreprocessorDefinitions);
|
|
U_PLATFORM_HAS_WINUWP_API=1;
|
|
</PreprocessorDefinitions>
|
|
</ClCompile>
|
|
<ResourceCompile>
|
|
<PreprocessorDefinitions>
|
|
%(PreprocessorDefinitions)
|
|
U_PLATFORM_HAS_WINUWP_API=1;
|
|
</PreprocessorDefinitions>
|
|
</ResourceCompile>
|
|
</ItemDefinitionGroup>
|
|
</Project> |