ZoneCodeGenerator/ZoneCommon: Automatically generate unit tests for struct sizes and alignments to make sure they match the expected values for fastfiles

This commit is contained in:
Jan 2019-09-28 12:31:19 +02:00
parent e7e65127e2
commit c150350fc0
7 changed files with 298 additions and 1 deletions

View File

@ -67,6 +67,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Unlinker", "src\Unlinker\Un
{2A92076F-6DFD-4FB1-9E6A-4542B4B049C7} = {2A92076F-6DFD-4FB1-9E6A-4542B4B049C7}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZoneCommonTests", "test\ZoneCommonTests\ZoneCommonTests.vcxproj", "{D85EBA7C-442B-4627-AEB9-6B5965DDC449}"
ProjectSection(ProjectDependencies) = postProject
{D1C20C32-9CB8-44B8-9DF7-F0CF8FB304D3} = {D1C20C32-9CB8-44B8-9DF7-F0CF8FB304D3}
{2A92076F-6DFD-4FB1-9E6A-4542B4B049C7} = {2A92076F-6DFD-4FB1-9E6A-4542B4B049C7}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@ -203,6 +209,14 @@ Global
{ED93C237-A96A-4332-B131-CAB4E46F1C48}.Release|x64.Build.0 = Release|x64
{ED93C237-A96A-4332-B131-CAB4E46F1C48}.Release|x86.ActiveCfg = Release|Win32
{ED93C237-A96A-4332-B131-CAB4E46F1C48}.Release|x86.Build.0 = Release|Win32
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Debug|x64.ActiveCfg = Debug|x64
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Debug|x64.Build.0 = Debug|x64
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Debug|x86.ActiveCfg = Debug|Win32
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Debug|x86.Build.0 = Debug|Win32
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Release|x64.ActiveCfg = Release|x64
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Release|x64.Build.0 = Release|x64
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Release|x86.ActiveCfg = Release|Win32
{D85EBA7C-442B-4627-AEB9-6B5965DDC449}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -224,6 +238,7 @@ Global
{599A7D9D-0CB8-4B99-AA2E-EA5EC081CF77} = {562895A0-B72F-4A89-9A10-DF97A5D35269}
{FC57DC08-3496-4DCF-B52F-6EDC568B333C} = {562895A0-B72F-4A89-9A10-DF97A5D35269}
{ED93C237-A96A-4332-B131-CAB4E46F1C48} = {EB945BC9-2451-4AB5-B434-BD07FAA2D06A}
{D85EBA7C-442B-4627-AEB9-6B5965DDC449} = {4D65E9A0-1798-4E93-A12F-128FFDC6A690}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBB5097F-0C5C-439C-8E82-19EF614DE3BE}

View File

@ -29,6 +29,9 @@ namespace ZoneCodeGenerator.Generating
},
{
"ZoneWrite", new GeneratorPreset("$asset/$asset_write_db", "ZoneWrite.stg")
},
{
"AssetStructTests", new GeneratorPreset("$asset_struct_test", "AssetStructTests.stg")
}
};

View File

@ -0,0 +1,41 @@
delimiters "$", "$"
import "Common.stg"
TestMethod(structure) ::= <<
$if(structure.NonEmbeddedReferenceExists)$
TEST_METHOD(Test_$structure.Type.Name$)
{
Assert::AreEqual($structure.Type.Size$u, sizeof($structure.Type.FullName$));
Assert::AreEqual($structure.Type.Alignment$u, alignof($structure.Type.FullName$));
}
$endif$
>>
// =======================
// Source file entry point
// =======================
source(context) ::= <<
// ====================================================================
// This file has been generated by ZoneCodeGenerator.
// Do not modify.
// Any changes will be discarded when regenerating.
// ====================================================================
#include "CppUnitTest.h"
#include "Game/$context.Game$/$context.Game$.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace $context.Game$;
namespace ZoneCommonTests
{
TEST_CLASS(AssetStructTest_$context.Asset.Type.Name$)
{
public:
$TestMethod(context.Asset)$
$context.Structures:{structure | $if(!structure.IsAsset)$$TestMethod(structure)$
$endif$}$
};
}
>>

View File

@ -165,6 +165,7 @@
<EmbeddedResource Include="Generating\Templates\Common.stg" />
<EmbeddedResource Include="Generating\Templates\ZoneLoad.stg" />
<EmbeddedResource Include="Generating\Templates\ZoneWrite.stg" />
<EmbeddedResource Include="Generating\Templates\AssetStructTests.stg" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View File

@ -1 +1 @@
# This file exists for automatically generator zone loading code.
# This file exists for automatically generating zone loading code.

View File

@ -0,0 +1 @@
# This file exists for automatically generating tests to ensure the asset structs match their intended sizes, alignments and offsets

View File

@ -0,0 +1,236 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.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="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{D85EBA7C-442B-4627-AEB9-6B5965DDC449}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>ZoneCommonTests</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<ProjectSubType>NativeUnitTestProject</ProjectSubType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)src\ZoneCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;$(SolutionDir)lib\$(Configuration)_$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>ZoneCommon.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)src\ZoneCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;$(SolutionDir)lib\$(Configuration)_$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>ZoneCommon.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)src\ZoneCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;$(SolutionDir)lib\$(Configuration)_$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>ZoneCommon.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)src\ZoneCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;$(SolutionDir)lib\$(Configuration)_$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>ZoneCommon.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Game\T6\XAssets\gen\addonmapents_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\clipmap_t_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\comworld_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\ddlroot_t_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\destructibledef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\emblemset_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\fonticon_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\font_s_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\footstepfxtabledef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\footsteptabledef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\fxeffectdef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\fximpacttable_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\gameworldmp_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\gameworldsp_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\gfximage_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\gfxlightdef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\gfxworld_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\glasses_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\keyvaluepairs_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\leaderboarddef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\localizeentry_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\mapents_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\materialtechniqueset_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\material_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\memoryblock_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\menudef_t_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\menulist_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\physconstraints_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\physpreset_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\qdb_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\rawfile_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\scriptparsetree_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\skinnedvertsdef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\slug_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\sndbank_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\snddriverglobals_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\sndpatch_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\stringtable_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\tracerdef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\vehicledef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\weaponattachmentunique_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\weaponattachment_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\weaponcamo_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\weaponvariantdef_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\xanimparts_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\xglobals_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\xmodel_struct_test.cpp" />
<ClCompile Include="Game\T6\XAssets\gen\zbarrierdef_struct_test.cpp" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="Game\T6\XAssets\T6_AssetStructTests.gen">
<FileType>Document</FileType>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating asset struct tests: %(Filename)</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating asset struct tests: %(Filename)</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating asset struct tests: %(Filename)</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating asset struct tests: %(Filename)</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe" -h "$(SolutionDir)src\ZoneCode\T6\T6.h" -e "$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt" -o "%(RelativeDir)gen" -g "*" "AssetStructTests"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe" -h "$(SolutionDir)src\ZoneCode\T6\T6.h" -e "$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt" -o "%(RelativeDir)gen" -g "*" "AssetStructTests"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe" -h "$(SolutionDir)src\ZoneCode\T6\T6.h" -e "$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt" -o "%(RelativeDir)gen" -g "*" "AssetStructTests"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe" -h "$(SolutionDir)src\ZoneCode\T6\T6.h" -e "$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt" -o "%(RelativeDir)gen" -g "*" "AssetStructTests"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe;$(SolutionDir)src\ZoneCode\T6\T6.h;$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt;%(AdditionalInputs)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe;$(SolutionDir)src\ZoneCode\T6\T6.h;$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt;%(AdditionalInputs)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe;$(SolutionDir)src\ZoneCode\T6\T6.h;$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt;%(AdditionalInputs)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)src\ZoneCodeGenerator\bin\$(Configuration)\ZoneCodeGenerator.exe;$(SolutionDir)src\ZoneCode\T6\T6.h;$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>