Add code generation on compiling to premake scripts using custom build commands

This commit is contained in:
Jan 2019-10-25 02:13:37 +02:00
parent d93b4f5fac
commit 034de70bbc
27 changed files with 345 additions and 325 deletions

View File

@ -1,4 +1,9 @@
-- Functions for locating commonly used folders -- Functions for locating commonly used folders
local _BuildFolder = path.getabsolute("build")
function BuildFolder()
return path.getrelative(os.getcwd(), _BuildFolder)
end
local _ThirdPartyFolder = path.getabsolute("thirdparty") local _ThirdPartyFolder = path.getabsolute("thirdparty")
function ThirdPartyFolder() function ThirdPartyFolder()
return path.getrelative(os.getcwd(), _ThirdPartyFolder) return path.getrelative(os.getcwd(), _ThirdPartyFolder)
@ -89,6 +94,7 @@ include "src/Crypto.lua"
include "src/Linker.lua" include "src/Linker.lua"
include "src/Unlinker.lua" include "src/Unlinker.lua"
include "src/Utils.lua" include "src/Utils.lua"
include "src/ZoneCode.lua"
include "src/ZoneCodeGenerator.lua" include "src/ZoneCodeGenerator.lua"
include "src/ZoneCommon.lua" include "src/ZoneCommon.lua"
include "src/ZoneLoading.lua" include "src/ZoneLoading.lua"
@ -98,6 +104,7 @@ include "src/ZoneWriting.lua"
group "Components" group "Components"
Crypto:project() Crypto:project()
Utils:project() Utils:project()
ZoneCode:project()
ZoneCodeGenerator:project() ZoneCodeGenerator:project()
ZoneCommon:project() ZoneCommon:project()
ZoneLoading:project() ZoneLoading:project()

View File

@ -10,9 +10,11 @@ function Crypto:link()
libtomcrypt:link() libtomcrypt:link()
libtommath:link() libtommath:link()
salsa20:link() salsa20:link()
links { links "Crypto"
"Crypto" end
}
function Crypto:use()
end end
function Crypto:project() function Crypto:project()

View File

@ -10,6 +10,10 @@ function Linker:link()
end end
function Linker:use()
dependson "Linker"
end
function Linker:project() function Linker:project()
local folder = ProjectFolder(); local folder = ProjectFolder();

View File

@ -10,6 +10,10 @@ function Unlinker:link()
end end
function Unlinker:use()
dependson "Unlinker"
end
function Unlinker:project() function Unlinker:project()
local folder = ProjectFolder(); local folder = ProjectFolder();

View File

@ -7,9 +7,11 @@ function Utils:include()
end end
function Utils:link() function Utils:link()
links { links "Utils"
"Utils" end
}
function Utils:use()
end end
function Utils:project() function Utils:project()

168
src/ZoneCode.lua Normal file
View File

@ -0,0 +1,168 @@
ZoneCode = {}
ZoneCode.Assets = {
T6 = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"SndBank",
"SndPatch",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"FontIcon",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponVariantDef",
"WeaponAttachment",
"WeaponAttachmentUnique",
"WeaponCamo",
"SndDriverGlobals",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"LeaderboardDef",
"XGlobals",
"ddlRoot_t",
"Glasses",
"EmblemSet",
"ScriptParseTree",
"KeyValuePairs",
"VehicleDef",
"MemoryBlock",
"AddonMapEnts",
"TracerDef",
"SkinnedVertsDef",
"Qdb",
"Slug",
"FootstepTableDef",
"FootstepFXTableDef",
"ZBarrierDef"
}
}
function ZoneCode:outputForAssets(assetList)
for i = 1, #assetList do
local assetNameLower = string.lower(assetList[i])
buildoutputs {
"%{wks.location}/src/ZoneCode/Game/%{file.basename}/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_load_db.cpp",
"%{wks.location}/src/ZoneCode/Game/%{file.basename}/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_load_db.h",
"%{wks.location}/src/ZoneCode/Game/%{file.basename}/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_write_db.cpp",
"%{wks.location}/src/ZoneCode/Game/%{file.basename}/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_write_db.h",
"%{wks.location}/src/ZoneCode/Game/%{file.basename}/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_struct_test.cpp",
}
end
end
function ZoneCode:allTestFiles()
result = {}
for game, assets in pairs(self.Assets) do
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_struct_test.cpp")
end
end
return result
end
function ZoneCode:allLoadFiles()
result = {}
for game, assets in pairs(self.Assets) do
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_load_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_load_db.h")
end
end
return result
end
function ZoneCode:allWriteFiles()
result = {}
for game, assets in pairs(self.Assets) do
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_write_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_write_db.h")
end
end
return result
end
function ZoneCode:include()
includedirs {
path.join(ProjectFolder(), "ZoneCode"),
"%{wks.location}/src/ZoneCode"
}
end
function ZoneCode:link()
end
function ZoneCode:use()
dependson "ZoneCode"
end
function ZoneCode:project()
local folder = ProjectFolder();
project "ZoneCode"
targetdir(TargetDirectoryLib)
location "%{wks.location}/src/%{prj.name}"
kind "Utility"
files {
path.join(folder, "ZoneCode/**.gen"),
path.join(folder, "ZoneCode/**.h"),
path.join(folder, "ZoneCode/**_Commands.txt")
}
vpaths {
["*"] = {
path.join(folder, "ZoneCode")
}
}
ZoneCodeGenerator:use()
filter "files:**.gen"
buildmessage "Generating ZoneCode for game %{file.basename}"
buildcommands {
'"' .. TargetDirectoryLib .. '/ZoneCodeGenerator.exe"'
.. ' -h "' .. path.join(path.getabsolute(ProjectFolder()), 'ZoneCode/Game/%{file.basename}/%{file.basename}.h') .. '"'
.. ' -e "' .. path.join(path.getabsolute(ProjectFolder()), 'ZoneCode/Game/%{file.basename}/%{file.basename}_Commands.txt') .. '"'
.. ' -o "%{wks.location}/src/ZoneCode/Game/%{file.basename}/XAssets"'
.. ' -g * ZoneLoad'
.. ' -g * ZoneWrite'
.. ' -g * AssetStructTests'
}
buildinputs {
path.join(ProjectFolder(), "ZoneCode/Game/%{file.basename}/%{file.basename}.h"),
path.join(ProjectFolder(), "ZoneCode/Game/%{file.basename}/%{file.basename}_Commands.txt"),
TargetDirectoryLib .. "/ZoneCodeGenerator.exe"
}
filter {}
filter "files:**/T6.gen"
self:outputForAssets(self.Assets.T6)
filter {}
end

View File

@ -3,6 +3,6 @@
// Entry point for T6 code generation // Entry point for T6 code generation
#include "../Common.h" #include "../Common.h"
#include "../../ZoneCommon/Game/T6/T6_Assets.h" #include "../../../ZoneCommon/Game/T6/T6_Assets.h"
// EOF // EOF

View File

@ -5,25 +5,32 @@ function ZoneCodeGenerator:include()
end end
function ZoneCodeGenerator:link() function ZoneCodeGenerator:link()
links { links "ZoneCodeGenerator"
"ZoneCodeGenerator" end
}
function ZoneCodeGenerator:use()
dependson "ZoneCodeGenerator"
end end
function ZoneCodeGenerator:project() function ZoneCodeGenerator:project()
local folder = ProjectFolder(); local folder = ProjectFolder();
project "ZoneCodeGenerator" project "ZoneCodeGenerator"
targetdir(TargetDirectoryBin) targetdir(TargetDirectoryLib)
location "%{wks.location}/src/%{prj.name}" location "%{wks.location}/src/%{prj.name}"
kind "ConsoleApp" kind "ConsoleApp"
language "C#" language "C#"
namespace "ZoneCodeGenerator" namespace "ZoneCodeGenerator"
files { files {
path.join(folder, "ZoneCodeGenerator/**.cs") path.join(folder, "ZoneCodeGenerator/**.cs"),
path.join(folder, "ZoneCodeGenerator/**.stg")
} }
filter "files:**.stg"
buildaction "Embed"
filter {}
vpaths { ["*"] = "src/ZoneCodeGenerator" } vpaths { ["*"] = "src/ZoneCodeGenerator" }
nuget { nuget {

View File

@ -31,7 +31,7 @@ namespace ZoneCodeGenerator.Generating
"ZoneWrite", new GeneratorPreset("$asset/$asset_write_db", "ZoneWrite.stg") "ZoneWrite", new GeneratorPreset("$asset/$asset_write_db", "ZoneWrite.stg")
}, },
{ {
"AssetStructTests", new GeneratorPreset("$asset_struct_test", "AssetStructTests.stg") "AssetStructTests", new GeneratorPreset("$asset/$asset_struct_test", "AssetStructTests.stg")
} }
}; };
@ -40,7 +40,10 @@ namespace ZoneCodeGenerator.Generating
public static bool GenerateCodeForPreset(string presetName, StructureInformation asset, CUISession session) public static bool GenerateCodeForPreset(string presetName, StructureInformation asset, CUISession session)
{ {
if (!presets.ContainsKey(presetName)) if (!presets.ContainsKey(presetName))
{
Console.WriteLine($"Unknown preset '{presetName}'");
return false; return false;
}
var preset = presets[presetName]; var preset = presets[presetName];
@ -67,12 +70,19 @@ namespace ZoneCodeGenerator.Generating
var renderingContext = RenderingContext.BuildContext(session, asset); var renderingContext = RenderingContext.BuildContext(session, asset);
if (renderingContext == null) if (renderingContext == null)
{
Console.WriteLine("Building rendering context failed");
return false; return false;
}
if (!codeTemplate.HasHeaderTemplate && !codeTemplate.HasSourceTemplate)
{
Console.WriteLine($"Preset '{presetName}' does not have a header or a source! This is weird.");
return false;
}
var generatedCode = false;
if (codeTemplate.HasHeaderTemplate) if (codeTemplate.HasHeaderTemplate)
{ {
generatedCode = true;
using (var fileStream = new FileStream(fullPath + ".h", FileMode.Create)) using (var fileStream = new FileStream(fullPath + ".h", FileMode.Create))
{ {
codeTemplate.RenderHeaderFile(fileStream, renderingContext); codeTemplate.RenderHeaderFile(fileStream, renderingContext);
@ -82,7 +92,6 @@ namespace ZoneCodeGenerator.Generating
if (codeTemplate.HasSourceTemplate) if (codeTemplate.HasSourceTemplate)
{ {
generatedCode = true;
using (var fileStream = new FileStream(fullPath + ".cpp", FileMode.Create)) using (var fileStream = new FileStream(fullPath + ".cpp", FileMode.Create))
{ {
codeTemplate.RenderSourceFile(fileStream, renderingContext); codeTemplate.RenderSourceFile(fileStream, renderingContext);
@ -90,10 +99,13 @@ namespace ZoneCodeGenerator.Generating
} }
} }
return generatedCode; return true;
} }
catch (Exception) catch (Exception e)
{ {
Console.WriteLine("An exception occured while trying to generate code");
Console.WriteLine(e.GetType().Name);
Console.WriteLine(e.Message);
return false; return false;
} }
} }

View File

@ -82,8 +82,8 @@ namespace ZoneCodeGenerator.Generating
{ {
if (resourceStream == null) if (resourceStream == null)
{ {
if (Verbose) Console.WriteLine($"Resource '{fileName}' doesn't exist");
Console.WriteLine($"Resource '{fileName}' doesn't exist"); Console.WriteLine("The following files do exist: " + string.Join(", ", Assembly.GetExecutingAssembly().GetManifestResourceNames()));
return; return;
} }

View File

@ -56,8 +56,10 @@ namespace ZoneCodeGenerator.Parsing.C_Header
return dataRepository; return dataRepository;
} }
} }
catch (IOException) catch (IOException e)
{ {
Console.WriteLine("An exception occured while trying to read header file");
Console.WriteLine(e.Message);
return null; return null;
} }
} }

View File

@ -12,6 +12,10 @@ function ZoneCommon:link()
} }
end end
function ZoneCommon:use()
end
function ZoneCommon:project() function ZoneCommon:project()
local folder = ProjectFolder(); local folder = ProjectFolder();

View File

@ -17,6 +17,10 @@ function ZoneLoading:link()
} }
end end
function ZoneLoading:use()
end
function ZoneLoading:project() function ZoneLoading:project()
local folder = ProjectFolder(); local folder = ProjectFolder();
@ -28,11 +32,22 @@ function ZoneLoading:project()
files { files {
path.join(folder, "ZoneLoading/**.h"), path.join(folder, "ZoneLoading/**.h"),
path.join(folder, "ZoneLoading/**.cpp") path.join(folder, "ZoneLoading/**.cpp"),
ZoneCode:allLoadFiles()
}
vpaths {
["*"] = {
path.join(folder, "ZoneLoading"),
path.join(BuildFolder(), "src/ZoneCode")
}
} }
self:include() self:include()
Crypto:include() Crypto:include()
Utils:include() Utils:include()
zlib:include() zlib:include()
ZoneCode:include()
ZoneCode:use()
end end

View File

@ -4,54 +4,54 @@
#include <cassert> #include <cassert>
#include "XAssets/gen/addonmapents/addonmapents_load_db.h" #include "Game/T6/XAssets/addonmapents/addonmapents_load_db.h"
#include "XAssets/gen/clipmap_t/clipmap_t_load_db.h" #include "Game/T6/XAssets/clipmap_t/clipmap_t_load_db.h"
#include "XAssets/gen/comworld/comworld_load_db.h" #include "Game/T6/XAssets/comworld/comworld_load_db.h"
#include "XAssets/gen/ddlroot_t/ddlroot_t_load_db.h" #include "Game/T6/XAssets/ddlroot_t/ddlroot_t_load_db.h"
#include "XAssets/gen/destructibledef/destructibledef_load_db.h" #include "Game/T6/XAssets/destructibledef/destructibledef_load_db.h"
#include "XAssets/gen/emblemset/emblemset_load_db.h" #include "Game/T6/XAssets/emblemset/emblemset_load_db.h"
#include "XAssets/gen/font_s/font_s_load_db.h" #include "Game/T6/XAssets/font_s/font_s_load_db.h"
#include "XAssets/gen/fonticon/fonticon_load_db.h" #include "Game/T6/XAssets/fonticon/fonticon_load_db.h"
#include "XAssets/gen/footstepfxtabledef/footstepfxtabledef_load_db.h" #include "Game/T6/XAssets/footstepfxtabledef/footstepfxtabledef_load_db.h"
#include "XAssets/gen/footsteptabledef/footsteptabledef_load_db.h" #include "Game/T6/XAssets/footsteptabledef/footsteptabledef_load_db.h"
#include "XAssets/gen/fxeffectdef/fxeffectdef_load_db.h" #include "Game/T6/XAssets/fxeffectdef/fxeffectdef_load_db.h"
#include "XAssets/gen/fximpacttable/fximpacttable_load_db.h" #include "Game/T6/XAssets/fximpacttable/fximpacttable_load_db.h"
#include "XAssets/gen/gameworldmp/gameworldmp_load_db.h" #include "Game/T6/XAssets/gameworldmp/gameworldmp_load_db.h"
#include "XAssets/gen/gameworldsp/gameworldsp_load_db.h" #include "Game/T6/XAssets/gameworldsp/gameworldsp_load_db.h"
#include "XAssets/gen/gfximage/gfximage_load_db.h" #include "Game/T6/XAssets/gfximage/gfximage_load_db.h"
#include "XAssets/gen/gfxlightdef/gfxlightdef_load_db.h" #include "Game/T6/XAssets/gfxlightdef/gfxlightdef_load_db.h"
#include "XAssets/gen/gfxworld/gfxworld_load_db.h" #include "Game/T6/XAssets/gfxworld/gfxworld_load_db.h"
#include "XAssets/gen/glasses/glasses_load_db.h" #include "Game/T6/XAssets/glasses/glasses_load_db.h"
#include "XAssets/gen/keyvaluepairs/keyvaluepairs_load_db.h" #include "Game/T6/XAssets/keyvaluepairs/keyvaluepairs_load_db.h"
#include "XAssets/gen/leaderboarddef/leaderboarddef_load_db.h" #include "Game/T6/XAssets/leaderboarddef/leaderboarddef_load_db.h"
#include "XAssets/gen/localizeentry/localizeentry_load_db.h" #include "Game/T6/XAssets/localizeentry/localizeentry_load_db.h"
#include "XAssets/gen/mapents/mapents_load_db.h" #include "Game/T6/XAssets/mapents/mapents_load_db.h"
#include "XAssets/gen/material/material_load_db.h" #include "Game/T6/XAssets/material/material_load_db.h"
#include "XAssets/gen/materialtechniqueset/materialtechniqueset_load_db.h" #include "Game/T6/XAssets/materialtechniqueset/materialtechniqueset_load_db.h"
#include "XAssets/gen/memoryblock/memoryblock_load_db.h" #include "Game/T6/XAssets/memoryblock/memoryblock_load_db.h"
#include "XAssets/gen/menudef_t/menudef_t_load_db.h" #include "Game/T6/XAssets/menudef_t/menudef_t_load_db.h"
#include "XAssets/gen/menulist/menulist_load_db.h" #include "Game/T6/XAssets/menulist/menulist_load_db.h"
#include "XAssets/gen/physconstraints/physconstraints_load_db.h" #include "Game/T6/XAssets/physconstraints/physconstraints_load_db.h"
#include "XAssets/gen/physpreset/physpreset_load_db.h" #include "Game/T6/XAssets/physpreset/physpreset_load_db.h"
#include "XAssets/gen/qdb/qdb_load_db.h" #include "Game/T6/XAssets/qdb/qdb_load_db.h"
#include "XAssets/gen/rawfile/rawfile_load_db.h" #include "Game/T6/XAssets/rawfile/rawfile_load_db.h"
#include "XAssets/gen/scriptparsetree/scriptparsetree_load_db.h" #include "Game/T6/XAssets/scriptparsetree/scriptparsetree_load_db.h"
#include "XAssets/gen/skinnedvertsdef/skinnedvertsdef_load_db.h" #include "Game/T6/XAssets/skinnedvertsdef/skinnedvertsdef_load_db.h"
#include "XAssets/gen/slug/slug_load_db.h" #include "Game/T6/XAssets/slug/slug_load_db.h"
#include "XAssets/gen/sndbank/sndbank_load_db.h" #include "Game/T6/XAssets/sndbank/sndbank_load_db.h"
#include "XAssets/gen/snddriverglobals/snddriverglobals_load_db.h" #include "Game/T6/XAssets/snddriverglobals/snddriverglobals_load_db.h"
#include "XAssets/gen/sndpatch/sndpatch_load_db.h" #include "Game/T6/XAssets/sndpatch/sndpatch_load_db.h"
#include "XAssets/gen/stringtable/stringtable_load_db.h" #include "Game/T6/XAssets/stringtable/stringtable_load_db.h"
#include "XAssets/gen/tracerdef/tracerdef_load_db.h" #include "Game/T6/XAssets/tracerdef/tracerdef_load_db.h"
#include "XAssets/gen/vehicledef/vehicledef_load_db.h" #include "Game/T6/XAssets/vehicledef/vehicledef_load_db.h"
#include "XAssets/gen/weaponattachment/weaponattachment_load_db.h" #include "Game/T6/XAssets/weaponattachment/weaponattachment_load_db.h"
#include "XAssets/gen/weaponattachmentunique/weaponattachmentunique_load_db.h" #include "Game/T6/XAssets/weaponattachmentunique/weaponattachmentunique_load_db.h"
#include "XAssets/gen/weaponcamo/weaponcamo_load_db.h" #include "Game/T6/XAssets/weaponcamo/weaponcamo_load_db.h"
#include "XAssets/gen/weaponvariantdef/weaponvariantdef_load_db.h" #include "Game/T6/XAssets/weaponvariantdef/weaponvariantdef_load_db.h"
#include "XAssets/gen/xanimparts/xanimparts_load_db.h" #include "Game/T6/XAssets/xanimparts/xanimparts_load_db.h"
#include "XAssets/gen/xglobals/xglobals_load_db.h" #include "Game/T6/XAssets/xglobals/xglobals_load_db.h"
#include "XAssets/gen/xmodel/xmodel_load_db.h" #include "Game/T6/XAssets/xmodel/xmodel_load_db.h"
#include "XAssets/gen/zbarrierdef/zbarrierdef_load_db.h" #include "Game/T6/XAssets/zbarrierdef/zbarrierdef_load_db.h"
using namespace T6; using namespace T6;

View File

@ -17,6 +17,10 @@ function ZoneWriting:link()
} }
end end
function ZoneWriting:use()
end
function ZoneWriting:project() function ZoneWriting:project()
local folder = ProjectFolder(); local folder = ProjectFolder();
@ -35,4 +39,6 @@ function ZoneWriting:project()
Crypto:include() Crypto:include()
Utils:include() Utils:include()
zlib:include() zlib:include()
ZoneCode:use()
end end

View File

@ -5,6 +5,10 @@ function ZoneCodeGeneratorTests:include()
end end
function ZoneCodeGeneratorTests:link() function ZoneCodeGeneratorTests:link()
links "ZoneCommonTests"
end
function ZoneCodeGeneratorTests:use()
end end
@ -32,9 +36,7 @@ function ZoneCodeGeneratorTests:project()
links { links {
"System", "System",
"System.Core", "System.Core",
"System.Data", "System.Data"
"Moq",
"MSTest.TestFramework"
} }
ZoneCodeGenerator:link() ZoneCodeGenerator:link()

View File

@ -5,6 +5,10 @@ function ZoneCommonTests:include()
end end
function ZoneCommonTests:link() function ZoneCommonTests:link()
links "ZoneCommonTests"
end
function ZoneCommonTests:use()
end end
@ -19,11 +23,21 @@ function ZoneCommonTests:project()
files { files {
path.join(folder, "ZoneCommonTests/**.h"), path.join(folder, "ZoneCommonTests/**.h"),
path.join(folder, "ZoneCommonTests/**.cpp") path.join(folder, "ZoneCommonTests/**.cpp"),
ZoneCode:allTestFiles()
}
vpaths {
["*"] = {
path.join(folder, "ZoneCommonTests"),
path.join(BuildFolder(), "src/ZoneCode")
}
} }
self:include() self:include()
ZoneCommon:include() ZoneCommon:include()
ZoneCommon:link() ZoneCommon:link()
ZoneCode:use()
end end

View File

View File

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

View File

@ -1,236 +0,0 @@
<?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</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>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</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>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</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)\tests\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\tests\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\tests\</OutDir>
<IntDir>$(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)_$(Platform)\tests\</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\ZoneCommon\Game\T6\T6_Assets.h;$(SolutionDir)src\ZoneCode\Common.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\ZoneCommon\Game\T6\T6_Assets.h;$(SolutionDir)src\ZoneCode\Common.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\ZoneCommon\Game\T6\T6_Assets.h;$(SolutionDir)src\ZoneCode\Common.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\ZoneCommon\Game\T6\T6_Assets.h;$(SolutionDir)src\ZoneCode\Common.h;$(SolutionDir)src\ZoneCode\T6\T6_Commands.txt;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(RelativeDir)gen\clipmap_t_struct_test.cpp;%(RelativeDir)gen\comworld_struct_test.cpp;%(RelativeDir)gen\ddlroot_t_struct_test.cpp;%(RelativeDir)gen\destructibledef_struct_test.cpp;%(RelativeDir)gen\emblemset_struct_test.cpp;%(RelativeDir)gen\font_s_struct_test.cpp;%(RelativeDir)gen\fonticon_struct_test.cpp;%(RelativeDir)gen\footstepfxtabledef_struct_test.cpp;%(RelativeDir)gen\footsteptabledef_struct_test.cpp;%(RelativeDir)gen\fxeffectdef_struct_test.cpp;%(RelativeDir)gen\fximpacttable_struct_test.cpp;%(RelativeDir)gen\gameworldmp_struct_test.cpp;%(RelativeDir)gen\gameworldsp_struct_test.cpp;%(RelativeDir)gen\gfximage_struct_test.cpp;%(RelativeDir)gen\gfxlightdef_struct_test.cpp;%(RelativeDir)gen\gfxworld_struct_test.cpp;%(RelativeDir)gen\glasses_struct_test.cpp;%(RelativeDir)gen\keyvaluepairs_struct_test.cpp;%(RelativeDir)gen\leaderboarddef_struct_test.cpp;%(RelativeDir)gen\localizeentry_struct_test.cpp;%(RelativeDir)gen\mapents_struct_test.cpp;%(RelativeDir)gen\material_struct_test.cpp;%(RelativeDir)gen\materialtechniqueset_struct_test.cpp;%(RelativeDir)gen\memoryblock_struct_test.cpp;%(RelativeDir)gen\menudef_t_struct_test.cpp;%(RelativeDir)gen\menulist_struct_test.cpp;%(RelativeDir)gen\physconstraints_struct_test.cpp;%(RelativeDir)gen\physpreset_struct_test.cpp;%(RelativeDir)gen\qdb_struct_test.cpp;%(RelativeDir)gen\rawfile_struct_test.cpp;%(RelativeDir)gen\scriptparsetree_struct_test.cpp;%(RelativeDir)gen\skinnedvertsdef_struct_test.cpp;%(RelativeDir)gen\slug_struct_test.cpp;%(RelativeDir)gen\sndbank_struct_test.cpp;%(RelativeDir)gen\snddriverglobals_struct_test.cpp;%(RelativeDir)gen\sndpatch_struct_test.cpp;%(RelativeDir)gen\stringtable_struct_test.cpp;%(RelativeDir)gen\tracerdef_struct_test.cpp;%(RelativeDir)gen\vehicledef_struct_test.cpp;%(RelativeDir)gen\weaponattachment_struct_test.cpp;%(RelativeDir)gen\weaponattachmentunique_struct_test.cpp;%(RelativeDir)gen\weaponcamo_struct_test.cpp;%(RelativeDir)gen\weaponvariantdef_struct_test.cpp;%(RelativeDir)gen\xanimparts_struct_test.cpp;%(RelativeDir)gen\xglobals_struct_test.cpp;%(RelativeDir)gen\xmodel_struct_test.cpp;%(RelativeDir)gen\zbarrierdef_struct_test.cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(RelativeDir)gen\clipmap_t_struct_test.cpp;%(RelativeDir)gen\comworld_struct_test.cpp;%(RelativeDir)gen\ddlroot_t_struct_test.cpp;%(RelativeDir)gen\destructibledef_struct_test.cpp;%(RelativeDir)gen\emblemset_struct_test.cpp;%(RelativeDir)gen\font_s_struct_test.cpp;%(RelativeDir)gen\fonticon_struct_test.cpp;%(RelativeDir)gen\footstepfxtabledef_struct_test.cpp;%(RelativeDir)gen\footsteptabledef_struct_test.cpp;%(RelativeDir)gen\fxeffectdef_struct_test.cpp;%(RelativeDir)gen\fximpacttable_struct_test.cpp;%(RelativeDir)gen\gameworldmp_struct_test.cpp;%(RelativeDir)gen\gameworldsp_struct_test.cpp;%(RelativeDir)gen\gfximage_struct_test.cpp;%(RelativeDir)gen\gfxlightdef_struct_test.cpp;%(RelativeDir)gen\gfxworld_struct_test.cpp;%(RelativeDir)gen\glasses_struct_test.cpp;%(RelativeDir)gen\keyvaluepairs_struct_test.cpp;%(RelativeDir)gen\leaderboarddef_struct_test.cpp;%(RelativeDir)gen\localizeentry_struct_test.cpp;%(RelativeDir)gen\mapents_struct_test.cpp;%(RelativeDir)gen\material_struct_test.cpp;%(RelativeDir)gen\materialtechniqueset_struct_test.cpp;%(RelativeDir)gen\memoryblock_struct_test.cpp;%(RelativeDir)gen\menudef_t_struct_test.cpp;%(RelativeDir)gen\menulist_struct_test.cpp;%(RelativeDir)gen\physconstraints_struct_test.cpp;%(RelativeDir)gen\physpreset_struct_test.cpp;%(RelativeDir)gen\qdb_struct_test.cpp;%(RelativeDir)gen\rawfile_struct_test.cpp;%(RelativeDir)gen\scriptparsetree_struct_test.cpp;%(RelativeDir)gen\skinnedvertsdef_struct_test.cpp;%(RelativeDir)gen\slug_struct_test.cpp;%(RelativeDir)gen\sndbank_struct_test.cpp;%(RelativeDir)gen\snddriverglobals_struct_test.cpp;%(RelativeDir)gen\sndpatch_struct_test.cpp;%(RelativeDir)gen\stringtable_struct_test.cpp;%(RelativeDir)gen\tracerdef_struct_test.cpp;%(RelativeDir)gen\vehicledef_struct_test.cpp;%(RelativeDir)gen\weaponattachment_struct_test.cpp;%(RelativeDir)gen\weaponattachmentunique_struct_test.cpp;%(RelativeDir)gen\weaponcamo_struct_test.cpp;%(RelativeDir)gen\weaponvariantdef_struct_test.cpp;%(RelativeDir)gen\xanimparts_struct_test.cpp;%(RelativeDir)gen\xglobals_struct_test.cpp;%(RelativeDir)gen\xmodel_struct_test.cpp;%(RelativeDir)gen\zbarrierdef_struct_test.cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(RelativeDir)gen\clipmap_t_struct_test.cpp;%(RelativeDir)gen\comworld_struct_test.cpp;%(RelativeDir)gen\ddlroot_t_struct_test.cpp;%(RelativeDir)gen\destructibledef_struct_test.cpp;%(RelativeDir)gen\emblemset_struct_test.cpp;%(RelativeDir)gen\font_s_struct_test.cpp;%(RelativeDir)gen\fonticon_struct_test.cpp;%(RelativeDir)gen\footstepfxtabledef_struct_test.cpp;%(RelativeDir)gen\footsteptabledef_struct_test.cpp;%(RelativeDir)gen\fxeffectdef_struct_test.cpp;%(RelativeDir)gen\fximpacttable_struct_test.cpp;%(RelativeDir)gen\gameworldmp_struct_test.cpp;%(RelativeDir)gen\gameworldsp_struct_test.cpp;%(RelativeDir)gen\gfximage_struct_test.cpp;%(RelativeDir)gen\gfxlightdef_struct_test.cpp;%(RelativeDir)gen\gfxworld_struct_test.cpp;%(RelativeDir)gen\glasses_struct_test.cpp;%(RelativeDir)gen\keyvaluepairs_struct_test.cpp;%(RelativeDir)gen\leaderboarddef_struct_test.cpp;%(RelativeDir)gen\localizeentry_struct_test.cpp;%(RelativeDir)gen\mapents_struct_test.cpp;%(RelativeDir)gen\material_struct_test.cpp;%(RelativeDir)gen\materialtechniqueset_struct_test.cpp;%(RelativeDir)gen\memoryblock_struct_test.cpp;%(RelativeDir)gen\menudef_t_struct_test.cpp;%(RelativeDir)gen\menulist_struct_test.cpp;%(RelativeDir)gen\physconstraints_struct_test.cpp;%(RelativeDir)gen\physpreset_struct_test.cpp;%(RelativeDir)gen\qdb_struct_test.cpp;%(RelativeDir)gen\rawfile_struct_test.cpp;%(RelativeDir)gen\scriptparsetree_struct_test.cpp;%(RelativeDir)gen\skinnedvertsdef_struct_test.cpp;%(RelativeDir)gen\slug_struct_test.cpp;%(RelativeDir)gen\sndbank_struct_test.cpp;%(RelativeDir)gen\snddriverglobals_struct_test.cpp;%(RelativeDir)gen\sndpatch_struct_test.cpp;%(RelativeDir)gen\stringtable_struct_test.cpp;%(RelativeDir)gen\tracerdef_struct_test.cpp;%(RelativeDir)gen\vehicledef_struct_test.cpp;%(RelativeDir)gen\weaponattachment_struct_test.cpp;%(RelativeDir)gen\weaponattachmentunique_struct_test.cpp;%(RelativeDir)gen\weaponcamo_struct_test.cpp;%(RelativeDir)gen\weaponvariantdef_struct_test.cpp;%(RelativeDir)gen\xanimparts_struct_test.cpp;%(RelativeDir)gen\xglobals_struct_test.cpp;%(RelativeDir)gen\xmodel_struct_test.cpp;%(RelativeDir)gen\zbarrierdef_struct_test.cpp;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(RelativeDir)gen\addonmapents_struct_test.cpp;%(RelativeDir)gen\clipmap_t_struct_test.cpp;%(RelativeDir)gen\comworld_struct_test.cpp;%(RelativeDir)gen\ddlroot_t_struct_test.cpp;%(RelativeDir)gen\destructibledef_struct_test.cpp;%(RelativeDir)gen\emblemset_struct_test.cpp;%(RelativeDir)gen\font_s_struct_test.cpp;%(RelativeDir)gen\fonticon_struct_test.cpp;%(RelativeDir)gen\footstepfxtabledef_struct_test.cpp;%(RelativeDir)gen\footsteptabledef_struct_test.cpp;%(RelativeDir)gen\fxeffectdef_struct_test.cpp;%(RelativeDir)gen\fximpacttable_struct_test.cpp;%(RelativeDir)gen\gameworldmp_struct_test.cpp;%(RelativeDir)gen\gameworldsp_struct_test.cpp;%(RelativeDir)gen\gfximage_struct_test.cpp;%(RelativeDir)gen\gfxlightdef_struct_test.cpp;%(RelativeDir)gen\gfxworld_struct_test.cpp;%(RelativeDir)gen\glasses_struct_test.cpp;%(RelativeDir)gen\keyvaluepairs_struct_test.cpp;%(RelativeDir)gen\leaderboarddef_struct_test.cpp;%(RelativeDir)gen\localizeentry_struct_test.cpp;%(RelativeDir)gen\mapents_struct_test.cpp;%(RelativeDir)gen\material_struct_test.cpp;%(RelativeDir)gen\materialtechniqueset_struct_test.cpp;%(RelativeDir)gen\memoryblock_struct_test.cpp;%(RelativeDir)gen\menudef_t_struct_test.cpp;%(RelativeDir)gen\menulist_struct_test.cpp;%(RelativeDir)gen\physconstraints_struct_test.cpp;%(RelativeDir)gen\physpreset_struct_test.cpp;%(RelativeDir)gen\qdb_struct_test.cpp;%(RelativeDir)gen\rawfile_struct_test.cpp;%(RelativeDir)gen\scriptparsetree_struct_test.cpp;%(RelativeDir)gen\skinnedvertsdef_struct_test.cpp;%(RelativeDir)gen\slug_struct_test.cpp;%(RelativeDir)gen\sndbank_struct_test.cpp;%(RelativeDir)gen\snddriverglobals_struct_test.cpp;%(RelativeDir)gen\sndpatch_struct_test.cpp;%(RelativeDir)gen\stringtable_struct_test.cpp;%(RelativeDir)gen\tracerdef_struct_test.cpp;%(RelativeDir)gen\vehicledef_struct_test.cpp;%(RelativeDir)gen\weaponattachment_struct_test.cpp;%(RelativeDir)gen\weaponattachmentunique_struct_test.cpp;%(RelativeDir)gen\weaponcamo_struct_test.cpp;%(RelativeDir)gen\weaponvariantdef_struct_test.cpp;%(RelativeDir)gen\xanimparts_struct_test.cpp;%(RelativeDir)gen\xglobals_struct_test.cpp;%(RelativeDir)gen\xmodel_struct_test.cpp;%(RelativeDir)gen\zbarrierdef_struct_test.cpp;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -11,9 +11,11 @@ function libtomcrypt:include()
end end
function libtomcrypt:link() function libtomcrypt:link()
links { links "libtomcrypt"
"libtomcrypt" end
}
function libtomcrypt:use()
end end
function libtomcrypt:project() function libtomcrypt:project()

View File

@ -7,9 +7,11 @@ function libtommath:include()
end end
function libtommath:link() function libtommath:link()
links { links "libtommath"
"libtommath" end
}
function libtommath:use()
end end
function libtommath:project() function libtommath:project()

View File

@ -7,9 +7,11 @@ function salsa20:include()
end end
function salsa20:link() function salsa20:link()
links { links "salsa20"
"salsa20" end
}
function salsa20:use()
end end
function salsa20:project() function salsa20:project()

8
thirdparty/zlib.lua vendored
View File

@ -12,9 +12,11 @@ function zlib:include()
end end
function zlib:link() function zlib:link()
links { links "zlib"
"zlib" end
}
function zlib:use()
end end
function zlib:project() function zlib:project()