scuffed-code/icu4c/source/data/makedata_uwp.vcxproj
Jeff Genovy 408752ec49 ICU-20782 Enable Windows desktop ARM and ARM64 builds of ICU4C.
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.
2019-08-26 22:50:31 -07:00

98 lines
4.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Arm">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B1D53358-37BD-48BC-B27C-68BAF1E78508}</ProjectGuid>
<Keyword>MakeFileProj</Keyword>
<DefaultLanguage>en-US</DefaultLanguage>
<ConfigurationType>Makefile</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<!-- The following import will include the 'default' configuration options for VS UWP projects. -->
<Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir>.\data\tmp\$(Platform)\</OutDir>
<IntDir>.\data\build\</IntDir>
<MakeCFG>$(Platform)\$(Configuration)</MakeCFG>
<!-- The ICU projects use "Win32" to mean "x86", so we need to special case it. -->
<OutDir Condition="'$(Platform)'=='Win32'">.\data\tmp\x86\</OutDir>
<MakeCFG Condition="'$(Platform)'=='Win32'">x86\$(Configuration)</MakeCFG>
<!-- NMake -->
<NMakeBuildCommandLine>NMAKE /f makedata.mak ICUMAKE="$(ProjectDir)\" CFG=$(MakeCFG) UWP=UWP</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>NMAKE /f makedata.mak ICUMAKE="$(ProjectDir)\" CFG=$(MakeCFG) UWP=UWP clean all</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>NMAKE /f makedata.mak ICUMAKE="$(ProjectDir)\" CFG=$(MakeCFG) UWP=UWP clean</NMakeCleanCommandLine>
</PropertyGroup>
<ItemDefinitionGroup>
<BuildLog>
<Path>$(OutDir)$(Configuration)UWPBuildLog.html</Path>
</BuildLog>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="brkitr\brkfiles.mk" />
<None Include="coll\colfiles.mk" />
<None Include="makedata.mak" />
<None Include="misc\miscfiles.mk" />
<None Include="rbnf\rbnffiles.mk" />
<None Include="locales\resfiles.mk" />
<None Include="..\test\testdata\testdata.mak" />
<None Include="translit\trnsfiles.mk" />
<None Include="mappings\ucmcore.mk" />
<None Include="mappings\ucmebcdic.mk" />
<None Include="mappings\ucmfiles.mk" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include=".\makedata.vcxproj">
<Project>{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Target Name="Build" Condition="'$(SkipUWP)'=='true'">
<Message Text="Skipping building the UWP project: $(MSBuildThisFile)" Importance="high" />
</Target>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" Condition="'$(SkipUWP)'!='true'" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>