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.
133 lines
7.0 KiB
XML
133 lines
7.0 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup Label="Globals">
|
|
<ProjectGuid>{C2B04507-2521-4801-BF0D-5FD79D6D518C}</ProjectGuid>
|
|
</PropertyGroup>
|
|
<PropertyGroup Label="Configuration">
|
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
<UseOfMfc>false</UseOfMfc>
|
|
<CharacterSet>MultiByte</CharacterSet>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
<!-- The following import will include the 'default' configuration options for VS projects. -->
|
|
<Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
|
|
<!-- The following import will include the library configuration options for VS projects. -->
|
|
<Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
<ImportGroup Label="ExtensionSettings">
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 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>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 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>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 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>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 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>.\$(Platform)\$(Configuration)\</OutDir>
|
|
<IntDir>.\$(Platform)\$(Configuration)\</IntDir>
|
|
<!-- The ICU projects use "Win32" to mean "x86", so we need to special case it. -->
|
|
<OutDir Condition="'$(Platform)'=='Win32'">.\x86\$(Configuration)\</OutDir>
|
|
<IntDir Condition="'$(Platform)'=='Win32'">.\x86\$(Configuration)\</IntDir>
|
|
<!-- Disable Incremental Linking for Release builds as it prevents Link-time Code Generation -->
|
|
<LinkIncremental Condition="'$(Configuration)'=='Debug'">true</LinkIncremental>
|
|
<LinkIncremental Condition="'$(Configuration)'=='Release'">false</LinkIncremental>
|
|
</PropertyGroup>
|
|
<!-- Options that are common to *all* project configurations -->
|
|
<ItemDefinitionGroup>
|
|
<Midl>
|
|
<TypeLibraryName>$(OutDir)\icuio.tlb</TypeLibraryName>
|
|
</Midl>
|
|
<ClCompile>
|
|
<AdditionalIncludeDirectories>..\..\include;..\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>U_IO_IMPLEMENTATION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
|
<WarningLevel>Level3</WarningLevel>
|
|
<CompileAs>Default</CompileAs>
|
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
<PrecompiledHeaderOutputFile>$(OutDir)/icuio.pch</PrecompiledHeaderOutputFile>
|
|
<AssemblerListingLocation>$(OutDir)/</AssemblerListingLocation>
|
|
<ObjectFileName>$(OutDir)/</ObjectFileName>
|
|
<ProgramDataBaseFileName>$(OutDir)/icuio.pdb</ProgramDataBaseFileName>
|
|
</ClCompile>
|
|
<ResourceCompile>
|
|
<AdditionalIncludeDirectories>..\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
</ResourceCompile>
|
|
<Link>
|
|
<AdditionalLibraryDirectories>..\..\$(IcuLibOutputDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<!-- Options that are common to all 'Debug' project configurations -->
|
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
|
<ClCompile>
|
|
<BrowseInformation>true</BrowseInformation>
|
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
</ClCompile>
|
|
<Link>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<OutputFile>..\..\$(IcuBinOutputDir)\icuio64d.dll</OutputFile>
|
|
<ProgramDatabaseFile>..\..\$(IcuLibOutputDir)\icuiod.pdb</ProgramDatabaseFile>
|
|
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuiod.lib</ImportLibrary>
|
|
<AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<!-- Options that are common to all 'Release' project configurations -->
|
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
|
<ClCompile>
|
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
</ClCompile>
|
|
<Link>
|
|
<OutputFile>..\..\$(IcuBinOutputDir)\icuio64.dll</OutputFile>
|
|
<ProgramDatabaseFile>..\..\$(IcuLibOutputDir)\icuio.pdb</ProgramDatabaseFile>
|
|
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuio.lib</ImportLibrary>
|
|
<AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="locbund.cpp" />
|
|
<ClCompile Include="sprintf.cpp" />
|
|
<ClCompile Include="sscanf.cpp" />
|
|
<ClCompile Include="ucln_io.cpp">
|
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
|
</ClCompile>
|
|
<ClCompile Include="ufile.cpp" />
|
|
<ClCompile Include="ufmt_cmn.cpp" />
|
|
<ClCompile Include="uprintf.cpp" />
|
|
<ClCompile Include="uprntf_p.cpp" />
|
|
<ClCompile Include="uscanf.cpp" />
|
|
<ClCompile Include="uscanf_p.cpp" />
|
|
<ClCompile Include="ustdio.cpp" />
|
|
<ClCompile Include="ustream.cpp">
|
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
|
</ClCompile>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="locbund.h" />
|
|
<ClInclude Include="ucln_io.h" />
|
|
<ClInclude Include="ufile.h" />
|
|
<ClInclude Include="ufmt_cmn.h" />
|
|
<ClInclude Include="uprintf.h" />
|
|
<ClInclude Include="uscanf.h" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ResourceCompile Include="io.rc" />
|
|
</ItemGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
<!-- The following import will copy all of the header files from this projects 'unicode' folder. -->
|
|
<Import Project="$(SolutionDir)\Windows.CopyUnicodeHeaderFiles.targets" />
|
|
<ImportGroup Label="ExtensionTargets">
|
|
</ImportGroup>
|
|
</Project>
|