Add AppVeyor rule to makefile

This should sidestep some problems we are experiencing with AppVeyor during x64 builds. Specifically, the missing VCUpgrade.exe and the poor job it does when upgrading our project for the platform\'s tools.
This recipe takes cryptlib.vcxproj and cryptest.vcxproj, and copies it into TestScripts. This ensures TestScripts always has the latest Visual Studio project files. Then, the recipe changes PlatformToolset to the undocumented $\(DefaultPlatformToolset\). Finally, our AppVeyor test script will copy TestScripts/*.vcxproj into PWD before executing MSbuild.
Also see http://stackoverflow.com/questions/43423761/cant-perform-64-bit-testing-under-appveyor, http://stackoverflow.com/questions/45452145/how-to-set-platformtoolset-property-from-msbuild and  http://stackoverflow.com/questions/43441273/how-to-run-vcupgrade-before-appveyor-build
This commit is contained in:
Jeffrey Walton 2017-08-02 22:01:16 -04:00
parent 76ff3fc03b
commit 77d2e4eaf5
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
3 changed files with 806 additions and 1 deletions

View File

@ -746,8 +746,13 @@ ifeq ($(wildcard Filelist.txt),Filelist.txt)
DIST_FILES := $(shell cat Filelist.txt)
endif
.PHONY: appveyor
appveyor:
sed 's|Toolset>v100|Toolset>$$(DefaultPlatformToolset)|g' cryptlib.vcxproj > TestScripts/cryptlib.vcxproj
sed 's|Toolset>v100|Toolset>$$(DefaultPlatformToolset)|g' cryptest.vcxproj > TestScripts/cryptest.vcxproj
.PHONY: trim
trim:
trim: appveyor
ifneq ($(IS_DARWIN),0)
sed -i '' -e's/[[:space:]]*$$//' *.sh .*.yml *.h *.cpp *.asm *.s *.sln *.vcxproj *.filters GNUmakefile GNUmakefile-cross
sed -i '' -e's/[[:space:]]*$$//' TestData/*.dat TestVectors/*.txt TestScripts/*.*

View File

@ -0,0 +1,321 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.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="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Debug|Win32">
<Configuration>DLL-Import Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Debug|x64">
<Configuration>DLL-Import Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Release|Win32">
<Configuration>DLL-Import Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Release|x64">
<Configuration>DLL-Import Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{09cdac08-e6ae-48a9-8de7-0fbc779eebde}</ProjectGuid>
<RootNamespace>cryptest</RootNamespace>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<ConfigurationType>Application</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<!-- End of Visual Studio boilerplate -->
<!-- All Configurations -->
<PropertyGroup Label="All Configurations">
<ConfigurationType>Application</ConfigurationType>
<TargetName>cryptest</TargetName>
<TargetExt>.exe</TargetExt>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<!-- Intermediate and Output directories -->
<!-- Cryptlib and Cryptest need extra care due to Non-DLL/DLL configs -->
<PropertyGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='Release'" Label="Non-DLL Directories">
<OutDir>$(Platform)\Output\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='DLL-Import Debug'" Label="DLL Directories">
<OutDir>$(Platform)\DLL_Output\Debug\</OutDir>
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='DLL-Import Release'" Label="DLL Directories">
<OutDir>$(Platform)\DLL_Output\Release\</OutDir>
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<!-- All Configurations -->
<ItemDefinitionGroup Label="All Configurations">
<ClCompile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ErrorReporting>None</ErrorReporting>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader />
<PrecompiledHeadeFile />
</ClCompile>
<Link>
<ErrorReporting>NoErrorReport</ErrorReporting>
<AdditionalDependencies>cryptlib.lib;Ws2_32.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>$(Platform)\Output\$(Configuration)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)\cryptlib.pdb</ProgramDatabaseFile>
<OutputFile>$(OutDir)\cryptest.exe</OutputFile>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<!-- Debug Configurations -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='DLL-Import Debug'" Label="Debug Configuration">
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<IntrinsicFunctions>true</IntrinsicFunctions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
</ItemDefinitionGroup>
<!-- Release Configurations -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='DLL-Import Release'" Label="Release Configuration">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<OmitFramePointers>true</OmitFramePointers>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FunctionLevelLinking>true</FunctionLevelLinking>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<!-- DLL-Import Overrides for Preprocessor and Libraries -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='DLL-Import Debug'" Label="DLL Debug Configuration">
<ClCompile>
<PreprocessorDefinitions>CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(Platform)\DLL_Output\Debug</AdditionalLibraryDirectories>
<AdditionalDependencies>cryptopp.lib;cryptlib.lib;Ws2_32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='DLL-Import Release'" Label="DLL Debug Configuration">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(Platform)\DLL_Output\Release</AdditionalLibraryDirectories>
<AdditionalDependencies>cryptopp.lib;cryptlib.lib;Ws2_32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<!-- X86 Configurations -->
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'" Label="X86 Configuration">
<ClCompile>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<!-- X64 Configurations -->
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'" Label="X64 Configuration">
<Link>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<!-- FIPS Validated Warning -->
<ItemDefinitionGroup Label="FIPS Warning">
<PreBuildEvent Condition="'$(Configuration)'=='DLL-Import Debug' Or '$(Configuration)'=='DLL-Import Release'">
<Command>
echo *************************************************************************
echo This configuration requires cryptopp.dll. You can build it yourself using
echo the cryptdll project, or obtain a pre-built, FIPS 140-2 validated DLL. If
echo you build it yourself the resulting DLL will not be considered FIPS
echo validated unless it undergoes the FIPS validation process.
echo *************************************************************************
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<!-- Target for Appvoyer -->
<!-- The rule copies cryptest.exe to the project -->
<!-- root directory so it can be executed in place -->
<Target Name="CopyCryptestToRoot">
<Exec Command="copy $(Platform)\Output\$(Configuration)\cryptest.exe $(SolutionDir)" />
</Target>
<!-- Source Files -->
<ItemGroup>
<ClCompile Include="adhoc.cpp" />
<ClCompile Include="bench1.cpp" />
<ClCompile Include="bench2.cpp" />
<ClCompile Include="datatest.cpp" />
<ClCompile Include="dlltest.cpp" />
<ClCompile Include="fipsalgt.cpp" />
<ClCompile Include="regtest1.cpp" />
<ClCompile Include="regtest2.cpp" />
<ClCompile Include="regtest3.cpp" />
<ClCompile Include="test.cpp" />
<ClCompile Include="validat0.cpp" />
<ClCompile Include="validat1.cpp" />
<ClCompile Include="validat2.cpp" />
<ClCompile Include="validat3.cpp" />
</ItemGroup>
<!-- Header Files -->
<ItemGroup>
<ClInclude Include="bench.h" />
<ClInclude Include="factory.h" />
<ClInclude Include="validate.h" />
</ItemGroup>
<!-- Test Files -->
<ItemGroup>
<None Include="TestVectors\aes.txt" />
<None Include="TestVectors\all.txt" />
<None Include="TestVectors\blake2.txt" />
<None Include="TestVectors\blake2b.txt" />
<None Include="TestVectors\blake2s.txt" />
<None Include="TestVectors\aria.txt" />
<None Include="TestVectors\camellia.txt" />
<None Include="TestVectors\ccm.txt" />
<None Include="TestVectors\chacha.txt" />
<None Include="TestVectors\cmac.txt" />
<None Include="TestVectors\dlies.txt" />
<None Include="TestVectors\dsa.txt" />
<None Include="TestVectors\dsa_1363.txt" />
<None Include="TestVectors\dsa_rfc6979.txt" />
<None Include="TestVectors\eax.txt" />
<None Include="TestVectors\esign.txt" />
<None Include="TestVectors\gcm.txt" />
<None Include="TestVectors\hkdf.txt" />
<None Include="TestVectors\hmac.txt" />
<None Include="TestVectors\kalyna.txt" />
<None Include="TestVectors\mars.txt" />
<None Include="TestVectors\nr.txt" />
<None Include="TestVectors\panama.txt" />
<None Include="TestVectors\Readme.txt" />
<None Include="TestVectors\rsa_oaep.txt" />
<None Include="TestVectors\rsa_pkcs1_1_5.txt" />
<None Include="TestVectors\rsa_pss.txt" />
<None Include="TestVectors\rw.txt" />
<None Include="TestVectors\salsa.txt" />
<None Include="TestVectors\seal.txt" />
<None Include="TestVectors\seed.txt" />
<None Include="TestVectors\sha.txt" />
<None Include="TestVectors\sha2.txt" />
<None Include="TestVectors\sha3.txt" />
<None Include="TestVectors\shacal2.txt" />
<None Include="TestVectors\siphash.txt" />
<None Include="TestVectors\sosemanuk.txt" />
<None Include="TestVectors\tea.txt" />
<None Include="TestVectors\threefish.txt" />
<None Include="TestVectors\ttmac.txt" />
<None Include="TestVectors\vmac.txt" />
<None Include="TestVectors\wake.txt" />
<None Include="TestVectors\whrlpool.txt" />
<None Include="TestData\3desval.dat" />
<None Include="TestData\3wayval.dat" />
<None Include="TestData\aria.dat" />
<None Include="TestData\camellia.dat" />
<None Include="TestData\cast128v.dat" />
<None Include="TestData\cast256v.dat" />
<None Include="TestData\descert.dat" />
<None Include="TestData\dh1024.dat" />
<None Include="TestData\dh2048.dat" />
<None Include="TestData\dlie1024.dat" />
<None Include="TestData\dlie2048.dat" />
<None Include="TestData\dsa1024.dat" />
<None Include="TestData\dsa1024b.dat" />
<None Include="TestData\dsa512.dat" />
<None Include="TestData\elgc1024.dat" />
<None Include="TestData\esig1023.dat" />
<None Include="TestData\esig1536.dat" />
<None Include="TestData\esig2046.dat" />
<None Include="TestData\fhmqv160.dat" />
<None Include="TestData\fhmqv256.dat" />
<None Include="TestData\fhmqv384.dat" />
<None Include="TestData\fhmqv512.dat" />
<None Include="TestData\gostval.dat" />
<None Include="TestData\hmqv160.dat" />
<None Include="TestData\hmqv256.dat" />
<None Include="TestData\hmqv384.dat" />
<None Include="TestData\hmqv512.dat" />
<None Include="TestData\ideaval.dat" />
<None Include="TestData\luc1024.dat" />
<None Include="TestData\luc2048.dat" />
<None Include="TestData\lucc1024.dat" />
<None Include="TestData\lucc512.dat" />
<None Include="TestData\lucd1024.dat" />
<None Include="TestData\lucd512.dat" />
<None Include="TestData\lucs1024.dat" />
<None Include="TestData\lucs512.dat" />
<None Include="TestData\marsval.dat" />
<None Include="TestData\mqv1024.dat" />
<None Include="TestData\mqv2048.dat" />
<None Include="TestData\nr1024.dat" />
<None Include="TestData\nr2048.dat" />
<None Include="TestData\rabi1024.dat" />
<None Include="TestData\rabi2048.dat" />
<None Include="TestData\rc2val.dat" />
<None Include="TestData\rc5val.dat" />
<None Include="TestData\rc6val.dat" />
<None Include="TestData\rijndael.dat" />
<None Include="TestData\rsa1024.dat" />
<None Include="TestData\rsa2048.dat" />
<None Include="TestData\rsa400pb.dat" />
<None Include="TestData\rsa400pv.dat" />
<None Include="TestData\rsa512a.dat" />
<None Include="TestData\rw1024.dat" />
<None Include="TestData\rw2048.dat" />
<None Include="TestData\saferval.dat" />
<None Include="TestData\serpentv.dat" />
<None Include="TestData\shacal2v.dat" />
<None Include="TestData\sharkval.dat" />
<None Include="TestData\skipjack.dat" />
<None Include="TestData\squareva.dat" />
<None Include="TestData\twofishv.dat" />
<None Include="TestData\usage.dat" />
<None Include="TestData\xtrdh171.dat" />
<None Include="TestData\xtrdh342.dat" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,479 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.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="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Debug|Win32">
<Configuration>DLL-Import Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Debug|x64">
<Configuration>DLL-Import Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Release|Win32">
<Configuration>DLL-Import Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL-Import Release|x64">
<Configuration>DLL-Import Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{c39f4b46-6e89-4074-902e-ca57073044d2}</ProjectGuid>
<RootNamespace>cryptlib</RootNamespace>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<!-- End of Visual Studio boilerplate -->
<!-- All Configurations -->
<PropertyGroup Label="All Configurations">
<ConfigurationType>StaticLibrary</ConfigurationType>
<TargetName>cryptlib</TargetName>
<TargetExt>.lib</TargetExt>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<!-- Intermediate and Output directories -->
<!-- Cryptlib and Cryptest need extra care due to Non-DLL/DLL configs -->
<PropertyGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='Release'" Label="Non-DLL Directories">
<OutDir>$(Platform)\Output\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='DLL-Import Debug'" Label="DLL Directories">
<OutDir>$(Platform)\DLL_Output\Debug\</OutDir>
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='DLL-Import Release'" Label="DLL Directories">
<OutDir>$(Platform)\DLL_Output\Release\</OutDir>
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<!-- All Configurations -->
<ItemDefinitionGroup Label="All Configurations">
<ClCompile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ErrorReporting>None</ErrorReporting>
<WarningLevel>Level4</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Lib>
<ErrorReporting>NoErrorReport</ErrorReporting>
</Lib>
</ItemDefinitionGroup>
<!-- Debug Configurations -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='DLL-Import Debug'" Label="Debug Configuration">
<ClCompile>
<PreprocessorDefinitions>USE_PRECOMPILED_HEADERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<IntrinsicFunctions>true</IntrinsicFunctions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
</ItemDefinitionGroup>
<!-- Release Configurations -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='DLL-Import Release'" Label="Release Configuration">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;USE_PRECOMPILED_HEADERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<OmitFramePointers>true</OmitFramePointers>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<FunctionLevelLinking>true</FunctionLevelLinking>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
</ItemDefinitionGroup>
<!-- DLL-Import Overrides for Preprocessor -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='DLL-Import Debug'" Label="DLL Debug Configuration">
<ClCompile>
<PreprocessorDefinitions>USE_PRECOMPILED_HEADERS;CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='DLL-Import Release'" Label="DLL Debug Configuration">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;USE_PRECOMPILED_HEADERS;CRYPTOPP_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- X86 Configurations -->
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'" Label="X86 Configuration">
<ClCompile>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
</Lib>
</ItemDefinitionGroup>
<!-- X64 Configurations -->
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'" Label="X64 Configuration">
<Lib>
<TargetMachine>MachineX64</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<!-- Original File with special treatment -->
<!-- Source Files -->
<!-- The order of the first three matters -->
<ItemGroup>
<ClCompile Include="cryptlib.cpp" />
<ClCompile Include="cpu.cpp" />
<ClCompile Include="integer.cpp" />
<ClCompile Include="3way.cpp" />
<ClCompile Include="adler32.cpp" />
<ClCompile Include="algebra.cpp" />
<ClCompile Include="algparam.cpp" />
<ClCompile Include="arc4.cpp" />
<ClCompile Include="aria.cpp" />
<ClCompile Include="asn.cpp" />
<ClCompile Include="authenc.cpp" />
<ClCompile Include="base32.cpp" />
<ClCompile Include="base64.cpp" />
<ClCompile Include="basecode.cpp" />
<ClCompile Include="bfinit.cpp" />
<ClCompile Include="blake2.cpp" />
<ClCompile Include="blowfish.cpp" />
<ClCompile Include="blumshub.cpp" />
<ClCompile Include="camellia.cpp" />
<ClCompile Include="cast.cpp" />
<ClCompile Include="casts.cpp" />
<ClCompile Include="cbcmac.cpp" />
<ClCompile Include="ccm.cpp" />
<ClCompile Include="chacha.cpp" />
<ClCompile Include="channels.cpp" />
<ClCompile Include="cmac.cpp" />
<ClCompile Include="crc.cpp" />
<ClCompile Include="default.cpp" />
<ClCompile Include="des.cpp" />
<ClCompile Include="dessp.cpp" />
<ClCompile Include="dh.cpp" />
<ClCompile Include="dh2.cpp" />
<ClCompile Include="dll.cpp">
<PrecompiledHeader />
</ClCompile>
<ClCompile Include="dsa.cpp" />
<ClCompile Include="eax.cpp" />
<ClCompile Include="ec2n.cpp" />
<ClCompile Include="eccrypto.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="ecp.cpp" />
<ClCompile Include="elgamal.cpp" />
<ClCompile Include="emsa2.cpp" />
<ClCompile Include="eprecomp.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="esign.cpp" />
<ClCompile Include="files.cpp" />
<ClCompile Include="filters.cpp" />
<ClCompile Include="fips140.cpp" />
<ClCompile Include="fipstest.cpp" />
<ClCompile Include="gcm.cpp" />
<ClCompile Include="gf256.cpp" />
<ClCompile Include="gf2_32.cpp" />
<ClCompile Include="gf2n.cpp" />
<ClCompile Include="gfpcrypt.cpp" />
<ClCompile Include="gost.cpp" />
<ClCompile Include="gzip.cpp" />
<ClCompile Include="hex.cpp" />
<ClCompile Include="hmac.cpp" />
<ClCompile Include="hrtimer.cpp" />
<ClCompile Include="ida.cpp" />
<ClCompile Include="idea.cpp" />
<ClCompile Include="iterhash.cpp">
<PrecompiledHeader />
</ClCompile>
<ClCompile Include="kalyna.cpp" />
<ClCompile Include="kalynatab.cpp" />
<ClCompile Include="keccak.cpp" />
<ClCompile Include="luc.cpp" />
<ClCompile Include="mars.cpp" />
<ClCompile Include="marss.cpp" />
<ClCompile Include="md2.cpp" />
<ClCompile Include="md4.cpp" />
<ClCompile Include="md5.cpp" />
<ClCompile Include="misc.cpp" />
<ClCompile Include="modes.cpp" />
<ClCompile Include="mqueue.cpp" />
<ClCompile Include="mqv.cpp" />
<ClCompile Include="nbtheory.cpp" />
<ClCompile Include="network.cpp" />
<ClCompile Include="oaep.cpp" />
<ClCompile Include="osrng.cpp" />
<ClCompile Include="panama.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="pkcspad.cpp" />
<ClCompile Include="poly1305.cpp" />
<ClCompile Include="polynomi.cpp" />
<ClCompile Include="pssr.cpp" />
<ClCompile Include="pubkey.cpp" />
<ClCompile Include="queue.cpp" />
<ClCompile Include="rabin.cpp" />
<ClCompile Include="randpool.cpp" />
<ClCompile Include="rc2.cpp" />
<ClCompile Include="rc5.cpp" />
<ClCompile Include="rc6.cpp" />
<ClCompile Include="rdrand.cpp" />
<ClCompile Include="rdtables.cpp" />
<ClCompile Include="rijndael.cpp" />
<ClCompile Include="ripemd.cpp" />
<ClCompile Include="rng.cpp" />
<ClCompile Include="rsa.cpp" />
<ClCompile Include="rw.cpp" />
<ClCompile Include="safer.cpp" />
<ClCompile Include="salsa.cpp" />
<ClCompile Include="seal.cpp" />
<ClCompile Include="seed.cpp" />
<ClCompile Include="serpent.cpp" />
<ClCompile Include="sha.cpp" />
<ClCompile Include="sha3.cpp" />
<ClCompile Include="shacal2.cpp" />
<ClCompile Include="shark.cpp" />
<ClCompile Include="sharkbox.cpp" />
<ClCompile Include="simple.cpp" />
<ClCompile Include="skipjack.cpp" />
<ClCompile Include="socketft.cpp" />
<ClCompile Include="sosemanuk.cpp" />
<ClCompile Include="square.cpp" />
<ClCompile Include="squaretb.cpp" />
<ClCompile Include="strciphr.cpp" />
<ClCompile Include="tea.cpp" />
<ClCompile Include="tftables.cpp" />
<ClCompile Include="threefish.cpp" />
<ClCompile Include="tiger.cpp" />
<ClCompile Include="tigertab.cpp" />
<ClCompile Include="trdlocal.cpp" />
<ClCompile Include="ttmac.cpp" />
<ClCompile Include="twofish.cpp" />
<ClCompile Include="vmac.cpp" />
<ClCompile Include="wait.cpp" />
<ClCompile Include="wake.cpp" />
<ClCompile Include="whrlpool.cpp" />
<ClCompile Include="winpipes.cpp" />
<ClCompile Include="xtr.cpp" />
<ClCompile Include="xtrcrypt.cpp" />
<ClCompile Include="zdeflate.cpp" />
<ClCompile Include="zinflate.cpp" />
<ClCompile Include="zlib.cpp" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="adhoc.cpp.proto">
<Command>
if not exist adhoc.cpp copy "%(FullPath)" adhoc.cpp
echo: &gt;&gt; adhoc.cpp.copied
</Command>
<Outputs>adhoc.cpp.copied;%(Outputs)</Outputs>
</CustomBuild>
<None Include="Doxyfile" />
<None Include="GNUmakefile" />
<None Include="License.txt" />
<None Include="Readme.txt" />
</ItemGroup>
<ItemGroup>
<CustomBuild Condition="'$(Platform)'=='Win32'" Include="rdrand.asm">
<Message>Building and assembling rdrand.asm</Message>
<Command>ml.exe /c /nologo /D_M_X86 /W3 /Cx /Zi /safeseh /Fo"$(IntDir)rdrand-x86.obj" "%(FullPath)"</Command>
<Outputs>$(IntDir)\rdrand-x86.obj;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Condition="'$(Platform)'=='x64'" Include="rdrand.asm">
<Message>Building and assembling rdrand.asm</Message>
<Command>ml64.exe /c /nologo /D_M_X64 /W3 /Cx /Zi /Fo"$(IntDir)rdrand-x64.obj" "%(FullPath)"</Command>
<Outputs>$(IntDir)\rdrand-x64.obj;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Condition="'$(Platform)'=='x64' AND ('$(Configuration)'=='Debug' Or '$(Configuration)'=='Release')" Include="x64dll.asm">
<Message>Building and assembling x64dll.asm</Message>
<Command>ml64.exe /c /nologo /D_M_X64 /W3 /Zi /Fo"$(IntDir)x64dll.obj" "%(FullPath)"</Command>
<Outputs>$(IntDir)x64dll.obj;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Condition="'$(Platform)'=='x64'" Include="x64masm.asm">
<Message>Building and Assembling x64masm.asm</Message>
<Command>ml64.exe /c /nologo /D_M_X64 /W3 /Zi /Fo"$(IntDir)x64masm.obj" "%(FullPath)"</Command>
<Outputs>$(IntDir)x64masm.obj;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClInclude Include="3way.h" />
<ClInclude Include="adler32.h" />
<ClInclude Include="aes.h" />
<ClInclude Include="algebra.h" />
<ClInclude Include="algparam.h" />
<ClInclude Include="arc4.h" />
<ClInclude Include="aria.h" />
<ClInclude Include="argnames.h" />
<ClInclude Include="asn.h" />
<ClInclude Include="authenc.h" />
<ClInclude Include="base32.h" />
<ClInclude Include="base64.h" />
<ClInclude Include="basecode.h" />
<ClInclude Include="blake2.h" />
<ClInclude Include="blowfish.h" />
<ClInclude Include="blumshub.h" />
<ClInclude Include="camellia.h" />
<ClInclude Include="cast.h" />
<ClInclude Include="cbcmac.h" />
<ClInclude Include="ccm.h" />
<ClInclude Include="chacha.h" />
<ClInclude Include="channels.h" />
<ClInclude Include="cmac.h" />
<ClInclude Include="config.h" />
<ClInclude Include="cpu.h" />
<ClInclude Include="crc.h" />
<ClInclude Include="cryptlib.h" />
<ClInclude Include="default.h" />
<ClInclude Include="des.h" />
<ClInclude Include="dh.h" />
<ClInclude Include="dh2.h" />
<ClInclude Include="dmac.h" />
<ClInclude Include="drbg.h" />
<ClInclude Include="dsa.h" />
<ClInclude Include="eax.h" />
<ClInclude Include="ec2n.h" />
<ClInclude Include="eccrypto.h" />
<ClInclude Include="ecp.h" />
<ClInclude Include="ecpoint.h" />
<ClInclude Include="elgamal.h" />
<ClInclude Include="emsa2.h" />
<ClInclude Include="eprecomp.h" />
<ClInclude Include="esign.h" />
<ClInclude Include="files.h" />
<ClInclude Include="filters.h" />
<ClInclude Include="fips140.h" />
<ClInclude Include="fhmqv.h" />
<ClInclude Include="fltrimpl.h" />
<ClInclude Include="gcm.h" />
<ClInclude Include="gf256.h" />
<ClInclude Include="gf2_32.h" />
<ClInclude Include="gf2n.h" />
<ClInclude Include="gfpcrypt.h" />
<ClInclude Include="gost.h" />
<ClInclude Include="gzip.h" />
<ClInclude Include="hex.h" />
<ClInclude Include="hkdf.h" />
<ClInclude Include="hmac.h" />
<ClInclude Include="hmqv.h" />
<ClInclude Include="hrtimer.h" />
<ClInclude Include="ida.h" />
<ClInclude Include="idea.h" />
<ClInclude Include="integer.h" />
<ClInclude Include="iterhash.h" />
<ClInclude Include="kalyna.h" />
<ClInclude Include="keccak.h" />
<ClInclude Include="lubyrack.h" />
<ClInclude Include="luc.h" />
<ClInclude Include="mars.h" />
<ClInclude Include="md2.h" />
<ClInclude Include="md4.h" />
<ClInclude Include="md5.h" />
<ClInclude Include="mdc.h" />
<ClInclude Include="misc.h" />
<ClInclude Include="modarith.h" />
<ClInclude Include="modes.h" />
<ClInclude Include="modexppc.h" />
<ClInclude Include="mqueue.h" />
<ClInclude Include="mqv.h" />
<ClInclude Include="nbtheory.h" />
<ClInclude Include="network.h" />
<ClInclude Include="nr.h" />
<ClInclude Include="oaep.h" />
<ClInclude Include="oids.h" />
<ClInclude Include="osrng.h" />
<ClInclude Include="panama.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="pkcspad.h" />
<ClInclude Include="poly1305.h" />
<ClInclude Include="polynomi.h" />
<ClInclude Include="pssr.h" />
<ClInclude Include="pubkey.h" />
<ClInclude Include="pwdbased.h" />
<ClInclude Include="queue.h" />
<ClInclude Include="rabin.h" />
<ClInclude Include="randpool.h" />
<ClInclude Include="rc2.h" />
<ClInclude Include="rc5.h" />
<ClInclude Include="rc6.h" />
<ClInclude Include="rdrand.h" />
<ClInclude Include="rijndael.h" />
<ClInclude Include="ripemd.h" />
<ClInclude Include="rng.h" />
<ClInclude Include="rsa.h" />
<ClInclude Include="rw.h" />
<ClInclude Include="safer.h" />
<ClInclude Include="salsa.h" />
<ClInclude Include="seal.h" />
<ClInclude Include="secblock.h" />
<ClInclude Include="seckey.h" />
<ClInclude Include="seed.h" />
<ClInclude Include="serpent.h" />
<ClInclude Include="sha.h" />
<ClInclude Include="sha3.h" />
<ClInclude Include="shacal2.h" />
<ClInclude Include="shark.h" />
<ClInclude Include="simple.h" />
<ClInclude Include="siphash.h" />
<ClInclude Include="skipjack.h" />
<ClInclude Include="smartptr.h" />
<ClInclude Include="socketft.h" />
<ClInclude Include="sosemanuk.h" />
<ClInclude Include="square.h" />
<ClInclude Include="stdcpp.h" />
<ClInclude Include="strciphr.h" />
<ClInclude Include="tea.h" />
<ClInclude Include="threefish.h" />
<ClInclude Include="tiger.h" />
<ClInclude Include="trap.h" />
<ClInclude Include="trdlocal.h" />
<ClInclude Include="trunhash.h" />
<ClInclude Include="ttmac.h" />
<ClInclude Include="twofish.h" />
<ClInclude Include="vmac.h" />
<ClInclude Include="wait.h" />
<ClInclude Include="wake.h" />
<ClInclude Include="whrlpool.h" />
<ClInclude Include="winpipes.h" />
<ClInclude Include="words.h" />
<ClInclude Include="xtr.h" />
<ClInclude Include="xtrcrypt.h" />
<ClInclude Include="zdeflate.h" />
<ClInclude Include="zinflate.h" />
<ClInclude Include="zlib.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>