xstructは、xmlファイルをもとに対応するメタデータ付きの構造体と そのマーシャリング/アンマーシャリング関数を生成するツールです。
go get github.com/desktopgame/xstruct
xstruct data.xml
xstruct -package mypkg -prefix=Prefix -suffix=Suffix data.xml
VisualStudioのnuget定義ファイルを構造体へ変換する
INPUT
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="freeglut" version="2.8.1.15" targetFramework="native" />
<package id="freeglut.redist" version="2.8.1.15" targetFramework="native" />
<package id="freetype" version="2.8.0.1" targetFramework="native" />
<package id="freetype.redist" version="2.8.0.1" targetFramework="native" />
<package id="glew" version="1.9.0.1" targetFramework="native" />
<package id="glew.redist" version="1.9.0.1" targetFramework="native" />
<package id="glfw" version="3.3.0.1" targetFramework="native" />
<package id="glm" version="0.9.9.600" targetFramework="native" />
<package id="soil" version="1.16.0" targetFramework="native" />
</packages>
OUTPUT
package main
type PackagesPackage struct {
// define attribute
AttrId string `xml:"id,attr"`
AttrVersion string `xml:"version,attr"`
AttrTargetFramework string `xml:"targetFramework,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type Packages struct {
// define attribute
// define subelement
SubPackage []*PackagesPackage `xml:"package"`
// define content
Content string `xml:",chardata"`
}
func LoadPackages(path string) (*Packages, error) {
xmlFile, err := os.Open(path)
if err != nil {
return nil, err
}
defer xmlFile.Close()
xmlData, err := ioutil.ReadAll(xmlFile)
if err != nil {
return nil, err
}
var data Packages
xml.Unmarshal(xmlData, &data)
return &data, nil
}
func SavePackages(path string, data *Packages, perm os.FileMode) error {
buf, err := xml.MarshalIndent(data, "", " ")
if err != nil {
return err
}
err = ioutil.WriteFile(path, buf, perm)
if err != nil {
return err
}
return nil
}
もう少し大きなサンプル VisualStudioのプロジェクトを構造体へ変換する
INPUT
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\soil.1.16.0\build\native\soil.props" Condition="Exists('..\packages\soil.1.16.0\build\native\soil.props')" />
<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>{5A11DAC0-4F35-4BF8-AB39-AD2489531C1C}</ProjectGuid>
<RootNamespace>Planet</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</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 />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)packages\freetype.2.8.0.1\build\native\include;$(SolutionDir)packages\soil.1.16.0\build\native\include;$(SolutionDir)packages\glm.0.9.9.500\build\native\include;C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\include;C:\Program Files (x86)\OpenAL 1.1 SDK\ALUT\freealut-freealut_1_1_0\include;C:\Program Files (x86)\OpenAL 1.1 SDK\include;$(SolutionDir)packages\freeglut.2.8.1.15\build\native\include\GL;$(SolutionDir)packages\glew.1.9.0.1\build\native\include\GL;$(SolutionDir)packages\glfw.3.3.0.1\build\native\include\GLFW;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;DEBUG;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(SolutionDir)packages\freetype.2.8.0.1\build\native\lib\Win32\v141\static\Debug;$(SolutionDir)packages\soil.1.16.0\build\native\lib\Win32\Debug;C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\lib\vs2017\x86\debug;C:\Program Files (x86)\OpenAL 1.1 SDK\ALUT\build\debug;C:\Program Files (x86)\OpenAL 1.1 SDK\libs\Win32\EFX-Util_MT;C:\Program Files (x86)\OpenAL 1.1 SDK\libs\Win32;$(SolutionDir)packages\zlib.v140.windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\lib\native\v140\windesktop\msvcstl\dyn\rt-dyn\Win32\Debug;$(SolutionDir)packages\glfw.3.3.0.1\build\native\lib\static\v142\win32;$(SolutionDir)packages\glew.1.9.0.1\build\native\lib\v110\Win32\Debug\static;$(SolutionDir)packages\freeglut.2.8.1.15\build\native\lib\v110\Win32\Debug\static;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>freetype28d.lib;freeglut.lib;glew.lib;glfw3.lib;zlib-md.lib;alut.lib;OpenAL32.lib;EFX-Util.lib;libfbxsdk.lib;libxml2-md.lib;soil.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)packages\libpng.1.6.28.1\build\native\include;$(SolutionDir)packages\glfw.3.3.0.1\build\native\include\GLFW;$(SolutionDir)packages\glew.1.9.0.1\build\native\include\GL;$(SolutionDir)packages\freeglut.2.8.1.15\build\native\include\GL;C:\Program Files (x86)\OpenAL 1.1 SDK\include;C:\Program Files (x86)\OpenAL 1.1 SDK\ALUT\freealut-freealut_1_1_0\include;C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(SolutionDir)packages\freeglut.2.8.1.15\build\native\lib\v110\Win32\Debug\static;$(SolutionDir)packages\glew.1.9.0.1\build\native\lib\v110\Win32\Debug\static;$(SolutionDir)packages\glfw.3.3.0.1\build\native\lib\static\v142\win32;$(SolutionDir)packages\libpng.1.6.28.1\build\native\lib\Win32\v140\dynamic\Debug;$(SolutionDir)packages\zlib.v140.windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\lib\native\v140\windesktop\msvcstl\dyn\rt-dyn\Win32\Debug;C:\Program Files (x86)\OpenAL 1.1 SDK\libs\Win32;C:\Program Files (x86)\OpenAL 1.1 SDK\libs\Win32\EFX-Util_MT;C:\Program Files (x86)\OpenAL 1.1 SDK\ALUT\build\debug;C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\lib\vs2017\x86\debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>freeglut.lib;glew.lib;glfw3.lib;zlibd.lib;libpng16.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)packages\libjpeg.9.2.0.1\build\native\include;C:\Work\PlanetSln\Planet\packages\glm.0.9.9.500\build\native\include;C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\include;C:\Program Files (x86)\OpenAL 1.1 SDK\ALUT\freealut-freealut_1_1_0\include;C:\Program Files (x86)\OpenAL 1.1 SDK\include;$(SolutionDir)packages\freeglut.2.8.1.15\build\native\include\GL;$(SolutionDir)packages\glew.1.9.0.1\build\native\include\GL;$(SolutionDir)packages\glfw.3.3.0.1\build\native\include\GLFW;$(SolutionDir)packages\libpng.1.6.28.1\build\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;DEBUG;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(SolutionDir)packages\libjpeg.9.2.0.1\build\native\lib\v140\Win32\Release\static\cdecl;C:\Program Files\Autodesk\FBX\FBX SDK\2019.2\lib\vs2017\x86\Release;C:\Program Files (x86)\OpenAL 1.1 SDK\ALUT\build\Release;C:\Program Files (x86)\OpenAL 1.1 SDK\libs\Win32\EFX-Util_MT;C:\Program Files (x86)\OpenAL 1.1 SDK\libs\Win32;$(SolutionDir)packages\zlib.v140.windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\lib\native\v140\windesktop\msvcstl\dyn\rt-dyn\Win32\Release;$(SolutionDir)packages\libpng.1.6.28.1\build\native\lib\Win32\v140\dynamic\Release;$(SolutionDir)packages\glfw.3.3.0.1\build\native\lib\static\v142\win32;$(SolutionDir)packages\glew.1.9.0.1\build\native\lib\v110\Win32\Release\static;$(SolutionDir)packages\freeglut.2.8.1.15\build\native\lib\v110\Win32\Release\static;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>jpeg.lib;freeglut.lib;glew.lib;glfw3.lib;zlib-md.lib;libpng16.lib;alut.lib;OpenAL32.lib;EFX-Util.lib;libfbxsdk.lib;libxml2-md.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="game\input\KeyMove.cpp" />
<ClCompile Include="game\input\MouseScroll.cpp" />
<ClCompile Include="game\main.cpp" />
<ClCompile Include="game\MyGame.cpp" />
<ClCompile Include="game\resources.cpp" />
<ClCompile Include="game\scene\LoadScene.cpp" />
<ClCompile Include="game\scene\PlayScene.cpp" />
<ClCompile Include="game\scene\TestScene.cpp" />
<ClCompile Include="game\scene\TitleScene.cpp" />
<ClCompile Include="game\scene\TutorialScene.cpp" />
<ClCompile Include="game\ui\RightHandUI.cpp" />
<ClCompile Include="game\world\biome\BasicBiome.cpp" />
<ClCompile Include="game\world\biome\Biome.cpp" />
<ClCompile Include="game\world\biome\DesertBiome.cpp" />
<ClCompile Include="game\world\biome\HillBiome.cpp" />
<ClCompile Include="game\world\biome\PlainBiome.cpp" />
<ClCompile Include="game\world\Block.cpp" />
<ClCompile Include="game\world\BlockRegistry.cpp" />
<ClCompile Include="game\world\Entity.cpp" />
<ClCompile Include="game\world\EntityPhysics.cpp" />
<ClCompile Include="game\world\gen\Cell.cpp" />
<ClCompile Include="game\world\gen\Xorshift.cpp" />
<ClCompile Include="game\world\MultiBlock.cpp" />
<ClCompile Include="game\world\Planet.cpp" />
<ClCompile Include="game\world\Space.cpp" />
<ClCompile Include="game\world\TexturePack.cpp" />
<ClCompile Include="game\world\WarpPoint.cpp" />
<ClCompile Include="game\world\World.cpp" />
<ClCompile Include="gel\asset\AssetLoadException.cpp" />
<ClCompile Include="gel\asset\FontLayout.cpp" />
<ClCompile Include="gel\asset\FreeTypeFont.cpp" />
<ClCompile Include="gel\asset\FreeTypeFontInstance.cpp" />
<ClCompile Include="gel\asset\ProxyTexture.cpp" />
<ClCompile Include="gel\GameConfig.cpp" />
<ClCompile Include="gel\input\Drag.cpp" />
<ClCompile Include="gel\input\Input.cpp" />
<ClCompile Include="gel\input\InputState.cpp" />
<ClCompile Include="gel\input\InputSystem.cpp" />
<ClCompile Include="gel\input\KeyboardBuffer.cpp" />
<ClCompile Include="gel\input\KeyboardState.cpp" />
<ClCompile Include="gel\input\MouseState.cpp" />
<ClCompile Include="gel\pipeline\BmpPipeline.cpp" />
<ClCompile Include="gel\pipeline\ContentManager.cpp" />
<ClCompile Include="gel\pipeline\FbxPipeline.cpp" />
<ClCompile Include="gel\pipeline\JpegPipeline.cpp" />
<ClCompile Include="gel\pipeline\OtfPipeline.cpp" />
<ClCompile Include="gel\pipeline\PngPipeline.cpp" />
<ClCompile Include="gel\pipeline\TtfPipeline.cpp" />
<ClCompile Include="gel\pipeline\WavePipeline.cpp" />
<ClCompile Include="gel\asset\AssetDatabase.cpp" />
<ClCompile Include="gel\asset\FbxModel.cpp" />
<ClCompile Include="gel\asset\SOILTexture.cpp" />
<ClCompile Include="gel\asset\TextureIO.cpp" />
<ClCompile Include="gel\asset\WaveAudio.cpp" />
<ClCompile Include="gel\Game.cpp" />
<ClCompile Include="gel\gsystem\Camera.cpp" />
<ClCompile Include="gel\gsystem\Duration.cpp" />
<ClCompile Include="gel\gsystem\LineRenderer.cpp" />
<ClCompile Include="gel\math\Random.cpp" />
<ClCompile Include="gel\gsystem\Timer.cpp" />
<ClCompile Include="gel\gsystem\Transform.cpp" />
<ClCompile Include="gel\math\AABB.cpp" />
<ClCompile Include="gel\math\Quadrangle.cpp" />
<ClCompile Include="gel\math\Rectangle.cpp" />
<ClCompile Include="gel\math\Triangle.cpp" />
<ClCompile Include="gel\scene\AnimationComponent.cpp" />
<ClCompile Include="gel\scene\Component.cpp" />
<ClCompile Include="gel\scene\GameObject.cpp" />
<ClCompile Include="gel\scene\RendererComponent.cpp" />
<ClCompile Include="gel\scene\Scene.cpp" />
<ClCompile Include="gel\scene\SceneManager.cpp" />
<ClCompile Include="gel\scene\SpriteComponent.cpp" />
<ClCompile Include="gel\scene\TimerComponent.cpp" />
<ClCompile Include="gel\scene\UIArrowButtonComponent.cpp" />
<ClCompile Include="gel\scene\UIButtonComponent.cpp" />
<ClCompile Include="gel\scene\UIElementComponent.cpp" />
<ClCompile Include="gel\scene\UIFrameComponent.cpp" />
<ClCompile Include="gel\scene\UIImageComponent.cpp" />
<ClCompile Include="gel\scene\UILayoutComponent.cpp" />
<ClCompile Include="gel\scene\UIProgressBarComponent.cpp" />
<ClCompile Include="gel\scene\UIRect.cpp" />
<ClCompile Include="gel\scene\UIRelativeLayoutComponent.cpp" />
<ClCompile Include="gel\scene\UITextComponent.cpp" />
<ClCompile Include="gel\scene\UITheme.cpp" />
<ClCompile Include="gel\service\FBXSDKService.cpp" />
<ClCompile Include="gel\service\FreeTypeService.cpp" />
<ClCompile Include="gel\shader\Bitmap.cpp" />
<ClCompile Include="gel\shader\Box.cpp" />
<ClCompile Include="gel\shader\Circle.cpp" />
<ClCompile Include="gel\shader\Color4.cpp" />
<ClCompile Include="gel\shader\CubeMap.cpp" />
<ClCompile Include="gel\shader\FontRenderer.cpp" />
<ClCompile Include="gel\shader\FrameBuffer.cpp" />
<ClCompile Include="gel\shader\IRMaterial.cpp" />
<ClCompile Include="gel\shader\IRMesh.cpp" />
<ClCompile Include="gel\shader\IRModel.cpp" />
<ClCompile Include="gel\shader\IRShape.cpp" />
<ClCompile Include="gel\shader\Layer.cpp" />
<ClCompile Include="gel\shader\Line.cpp" />
<ClCompile Include="gel\shader\NameRule.cpp" />
<ClCompile Include="gel\shader\PixelBuffer.cpp" />
<ClCompile Include="gel\shader\Plane.cpp" />
<ClCompile Include="gel\shader\PlaneBatch.cpp" />
<ClCompile Include="gel\shader\PlaneDraw.cpp" />
<ClCompile Include="gel\shader\Primitive.cpp" />
<ClCompile Include="gel\shader\RawTexture.cpp" />
<ClCompile Include="gel\shader\Reflection4.cpp" />
<ClCompile Include="gel\shader\RenderBuffer.cpp" />
<ClCompile Include="gel\shader\Renderer.cpp" />
<ClCompile Include="gel\shader\ScreenBuffer.cpp" />
<ClCompile Include="gel\shader\Shader.cpp" />
<ClCompile Include="gel\shader\ShaderRegistry.cpp" />
<ClCompile Include="gel\shader\VertexArray.cpp" />
<ClCompile Include="gel\signal\Connection.cpp" />
<ClCompile Include="gel\util\CommandReader.cpp" />
<ClCompile Include="gel\util\error.cpp" />
<ClCompile Include="gel\util\Flag.cpp" />
<ClCompile Include="gel\util\io.cpp" />
<ClCompile Include="gel\util\KeyTrigger.cpp" />
<ClCompile Include="gel\util\MouseTrigger.cpp" />
<ClCompile Include="gel\util\Names.cpp" />
<ClCompile Include="gel\util\string.cpp" />
<ClCompile Include="gel\Window.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="game\def.hpp" />
<ClInclude Include="game\gel.hpp" />
<ClInclude Include="game\input\KeyMove.hpp" />
<ClInclude Include="game\input\MouseScroll.hpp" />
<ClInclude Include="game\MyGame.hpp" />
<ClInclude Include="game\resources.hpp" />
<ClInclude Include="game\scene\LoadScene.hpp" />
<ClInclude Include="game\scene\PlayScene.hpp" />
<ClInclude Include="game\scene\TestScene.hpp" />
<ClInclude Include="game\scene\TitleScene.hpp" />
<ClInclude Include="game\scene\TutorialScene.hpp" />
<ClInclude Include="game\ui\RightHandUI.hpp" />
<ClInclude Include="game\world\biome\BasicBiome.hpp" />
<ClInclude Include="game\world\biome\Biome.hpp" />
<ClInclude Include="game\world\biome\DesertBiome.hpp" />
<ClInclude Include="game\world\biome\HillBiome.hpp" />
<ClInclude Include="game\world\biome\PlainBiome.hpp" />
<ClInclude Include="game\world\Block.hpp" />
<ClInclude Include="game\world\BlockRegistry.hpp" />
<ClInclude Include="game\world\Entity.hpp" />
<ClInclude Include="game\world\EntityPhysics.hpp" />
<ClInclude Include="game\world\gen\Cell.hpp" />
<ClInclude Include="game\world\gen\Generator.hpp" />
<ClInclude Include="game\world\gen\PerlinNoise.hpp" />
<ClInclude Include="game\world\gen\Xorshift.hpp" />
<ClInclude Include="game\world\MultiBlock.hpp" />
<ClInclude Include="game\world\Planet.hpp" />
<ClInclude Include="game\world\Space.hpp" />
<ClInclude Include="game\world\TexturePack.hpp" />
<ClInclude Include="game\world\WarpPoint.hpp" />
<ClInclude Include="game\world\World.hpp" />
<ClInclude Include="gel\all.hpp" />
<ClInclude Include="gel\asset\AssetLoadException.hpp" />
<ClInclude Include="gel\asset\FontEncode.hpp" />
<ClInclude Include="gel\asset\FontLayout.hpp" />
<ClInclude Include="gel\asset\FreeTypeFont.hpp" />
<ClInclude Include="gel\asset\FreeTypeFontInstance.hpp" />
<ClInclude Include="gel\asset\IFont.hpp" />
<ClInclude Include="gel\asset\IFontInstance.hpp" />
<ClInclude Include="gel\asset\ProxyTexture.hpp" />
<ClInclude Include="gel\GameConfig.hpp" />
<ClInclude Include="gel\input\ButtonState.hpp" />
<ClInclude Include="gel\input\InputState.hpp" />
<ClInclude Include="gel\input\InputSystem.hpp" />
<ClInclude Include="gel\input\KeyboardBuffer.hpp" />
<ClInclude Include="gel\input\KeyboardState.hpp" />
<ClInclude Include="gel\input\MouseBuffer.hpp" />
<ClInclude Include="gel\input\MouseButton.hpp" />
<ClInclude Include="gel\input\MouseState.hpp" />
<ClInclude Include="gel\pipeline\TtfPipeline.hpp" />
<ClInclude Include="gel\freetype.hpp" />
<ClInclude Include="gel\input\Drag.hpp" />
<ClInclude Include="gel\input\Input.hpp" />
<ClInclude Include="gel\pipeline\BmpPipeline.hpp" />
<ClInclude Include="gel\pipeline\ContentManager.hpp" />
<ClInclude Include="gel\pipeline\FbxPipeline.hpp" />
<ClInclude Include="gel\pipeline\IContentPipeline.hpp" />
<ClInclude Include="gel\pipeline\JpegPipeline.hpp" />
<ClInclude Include="gel\pipeline\OtfPipeline.hpp" />
<ClInclude Include="gel\pipeline\PngPipeline.hpp" />
<ClInclude Include="gel\pipeline\ProxyPipeline.hpp" />
<ClInclude Include="gel\pipeline\WavePipeline.hpp" />
<ClInclude Include="gel\asset\AssetDatabase.hpp" />
<ClInclude Include="gel\asset\FbxModel.hpp" />
<ClInclude Include="gel\asset\fbxsdk.h" />
<ClInclude Include="gel\asset\IAsset.hpp" />
<ClInclude Include="gel\asset\IModel.hpp" />
<ClInclude Include="gel\asset\IAudio.hpp" />
<ClInclude Include="gel\asset\ITexture.hpp" />
<ClInclude Include="gel\asset\SOILTexture.hpp" />
<ClInclude Include="gel\asset\TextureIO.hpp" />
<ClInclude Include="gel\asset\WaveAudio.hpp" />
<ClInclude Include="gel\fbxsdk.hpp" />
<ClInclude Include="gel\Game.hpp" />
<ClInclude Include="gel\gel.hpp" />
<ClInclude Include="gel\gli.hpp" />
<ClInclude Include="gel\gsystem\Camera.hpp" />
<ClInclude Include="gel\gsystem\Duration.hpp" />
<ClInclude Include="gel\gsystem\LineRenderer.hpp" />
<ClInclude Include="gel\math\Random.hpp" />
<ClInclude Include="gel\gsystem\Timer.hpp" />
<ClInclude Include="gel\gsystem\Transform.hpp" />
<ClInclude Include="gel\math\AABB.hpp" />
<ClInclude Include="gel\math\Quadrangle.hpp" />
<ClInclude Include="gel\math\Rectangle.hpp" />
<ClInclude Include="gel\math\Triangle.hpp" />
<ClInclude Include="gel\scene\AnimationComponent.hpp" />
<ClInclude Include="gel\scene\Component.hpp" />
<ClInclude Include="gel\scene\Disposable.hpp" />
<ClInclude Include="gel\scene\GameObject.hpp" />
<ClInclude Include="gel\scene\RendererComponent.hpp" />
<ClInclude Include="gel\scene\Scene.hpp" />
<ClInclude Include="gel\scene\SceneManager.hpp" />
<ClInclude Include="gel\scene\SpriteComponent.hpp" />
<ClInclude Include="gel\scene\TimerComponent.hpp" />
<ClInclude Include="gel\scene\UIArrowButtonComponent.hpp" />
<ClInclude Include="gel\scene\UIButtonComponent.hpp" />
<ClInclude Include="gel\scene\UIElementComponent.hpp" />
<ClInclude Include="gel\scene\UIFrameComponent.hpp" />
<ClInclude Include="gel\scene\UIImageComponent.hpp" />
<ClInclude Include="gel\scene\UILayoutComponent.hpp" />
<ClInclude Include="gel\scene\UIProgressBarComponent.hpp" />
<ClInclude Include="gel\service\FBXSDKService.hpp" />
<ClInclude Include="gel\service\FreeTypeService.hpp" />
<ClInclude Include="gel\service\IService.hpp" />
<ClInclude Include="gel\shader\Renderer.hpp" />
<ClInclude Include="gel\signal\Property.hpp" />
<ClInclude Include="gel\scene\UIRelativeLayoutComponent.hpp" />
<ClInclude Include="gel\scene\UITextComponent.hpp" />
<ClInclude Include="gel\scene\UITheme.hpp" />
<ClInclude Include="gel\shader\Bitmap.hpp" />
<ClInclude Include="gel\shader\Box.hpp" />
<ClInclude Include="gel\shader\Buffer.hpp" />
<ClInclude Include="gel\shader\Circle.hpp" />
<ClInclude Include="gel\shader\Color4.hpp" />
<ClInclude Include="gel\shader\CubeMap.hpp" />
<ClInclude Include="gel\shader\FontRenderer.hpp" />
<ClInclude Include="gel\shader\FrameBuffer.hpp" />
<ClInclude Include="gel\shader\IRMaterial.hpp" />
<ClInclude Include="gel\shader\IRMesh.hpp" />
<ClInclude Include="gel\shader\IRModel.hpp" />
<ClInclude Include="gel\shader\IRShape.hpp" />
<ClInclude Include="gel\shader\Layer.hpp" />
<ClInclude Include="gel\shader\Line.hpp" />
<ClInclude Include="gel\shader\NameRule.hpp" />
<ClInclude Include="gel\shader\PixelBuffer.hpp" />
<ClInclude Include="gel\shader\Plane.hpp" />
<ClInclude Include="gel\shader\PlaneBatch.hpp" />
<ClInclude Include="gel\shader\PlaneDraw.hpp" />
<ClInclude Include="gel\shader\Primitive.hpp" />
<ClInclude Include="gel\shader\RawTexture.hpp" />
<ClInclude Include="gel\shader\Reflection4.hpp" />
<ClInclude Include="gel\shader\RenderBuffer.hpp" />
<ClInclude Include="gel\shader\ScreenBuffer.hpp" />
<ClInclude Include="gel\shader\Sequence.hpp" />
<ClInclude Include="gel\shader\Shader.hpp" />
<ClInclude Include="gel\shader\ShaderRegistry.hpp" />
<ClInclude Include="gel\shader\VertexArray.hpp" />
<ClInclude Include="gel\signal\Connection.hpp" />
<ClInclude Include="gel\signal\IConnectable.hpp" />
<ClInclude Include="gel\signal\Signal.hpp" />
<ClInclude Include="gel\signal\Slot.hpp" />
<ClInclude Include="gel\pipeline\Thread.hpp" />
<ClInclude Include="gel\util\BlockingQueue.hpp" />
<ClInclude Include="gel\util\collections.hpp" />
<ClInclude Include="gel\util\CommandReader.hpp" />
<ClInclude Include="gel\util\enum.hpp" />
<ClInclude Include="gel\util\error.hpp" />
<ClInclude Include="gel\util\Flag.hpp" />
<ClInclude Include="gel\util\io.hpp" />
<ClInclude Include="gel\util\KeyTrigger.hpp" />
<ClInclude Include="gel\util\MouseTrigger.hpp" />
<ClInclude Include="gel\util\Names.hpp" />
<ClInclude Include="gel\util\NonCopyable.hpp" />
<ClInclude Include="gel\util\SharedHelper.hpp" />
<ClInclude Include="gel\util\string.hpp" />
<ClInclude Include="gel\util\Vec2HashFunc.hpp" />
<ClInclude Include="gel\Window.hpp" />
</ItemGroup>
<ItemGroup>
<None Include="gel\scene\UIRect.hpp" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\freeglut.redist.2.8.1.15\build\native\freeglut.redist.targets" Condition="Exists('..\packages\freeglut.redist.2.8.1.15\build\native\freeglut.redist.targets')" />
<Import Project="..\packages\freeglut.2.8.1.15\build\native\freeglut.targets" Condition="Exists('..\packages\freeglut.2.8.1.15\build\native\freeglut.targets')" />
<Import Project="..\packages\glew.redist.1.9.0.1\build\native\glew.redist.targets" Condition="Exists('..\packages\glew.redist.1.9.0.1\build\native\glew.redist.targets')" />
<Import Project="..\packages\glew.1.9.0.1\build\native\glew.targets" Condition="Exists('..\packages\glew.1.9.0.1\build\native\glew.targets')" />
<Import Project="..\packages\glfw.3.3.0.1\build\native\glfw.targets" Condition="Exists('..\packages\glfw.3.3.0.1\build\native\glfw.targets')" />
<Import Project="..\packages\glm.0.9.9.600\build\native\glm.targets" Condition="Exists('..\packages\glm.0.9.9.600\build\native\glm.targets')" />
<Import Project="..\packages\freetype.redist.2.8.0.1\build\native\freetype.redist.targets" Condition="Exists('..\packages\freetype.redist.2.8.0.1\build\native\freetype.redist.targets')" />
<Import Project="..\packages\freetype.2.8.0.1\build\native\freetype.targets" Condition="Exists('..\packages\freetype.2.8.0.1\build\native\freetype.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\freeglut.redist.2.8.1.15\build\native\freeglut.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\freeglut.redist.2.8.1.15\build\native\freeglut.redist.targets'))" />
<Error Condition="!Exists('..\packages\freeglut.2.8.1.15\build\native\freeglut.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\freeglut.2.8.1.15\build\native\freeglut.targets'))" />
<Error Condition="!Exists('..\packages\glew.redist.1.9.0.1\build\native\glew.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\glew.redist.1.9.0.1\build\native\glew.redist.targets'))" />
<Error Condition="!Exists('..\packages\glew.1.9.0.1\build\native\glew.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\glew.1.9.0.1\build\native\glew.targets'))" />
<Error Condition="!Exists('..\packages\glfw.3.3.0.1\build\native\glfw.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\glfw.3.3.0.1\build\native\glfw.targets'))" />
<Error Condition="!Exists('..\packages\glm.0.9.9.600\build\native\glm.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\glm.0.9.9.600\build\native\glm.targets'))" />
<Error Condition="!Exists('..\packages\soil.1.16.0\build\native\soil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\soil.1.16.0\build\native\soil.props'))" />
<Error Condition="!Exists('..\packages\freetype.redist.2.8.0.1\build\native\freetype.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\freetype.redist.2.8.0.1\build\native\freetype.redist.targets'))" />
<Error Condition="!Exists('..\packages\freetype.2.8.0.1\build\native\freetype.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\freetype.2.8.0.1\build\native\freetype.targets'))" />
</Target>
</Project>
OUTPUT
package main
type ProjectItemGroupProjectConfigurationPlatform struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileRuntimeLibrary struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemGroupClCompile struct {
// define attribute
AttrInclude string `xml:"Include,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupUseDebugLibraries struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupLink struct {
// define attribute
// define subelement
SubAdditionalLibraryDirectories []*ProjectItemDefinitionGroupLinkAdditionalLibraryDirectories `xml:"AdditionalLibraryDirectories"`
SubAdditionalDependencies []*ProjectItemDefinitionGroupLinkAdditionalDependencies `xml:"AdditionalDependencies"`
SubEnableCOMDATFolding []*ProjectItemDefinitionGroupLinkEnableCOMDATFolding `xml:"EnableCOMDATFolding"`
SubOptimizeReferences []*ProjectItemDefinitionGroupLinkOptimizeReferences `xml:"OptimizeReferences"`
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileSDLCheck struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileLanguageStandard struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupLinkOptimizeReferences struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type Project struct {
// define attribute
AttrDefaultTargets string `xml:"DefaultTargets,attr"`
AttrToolsVersion string `xml:"ToolsVersion,attr"`
AttrXmlns string `xml:"xmlns,attr"`
// define subelement
SubImport []*ProjectImport `xml:"Import"`
SubItemGroup []*ProjectItemGroup `xml:"ItemGroup"`
SubPropertyGroup []*ProjectPropertyGroup `xml:"PropertyGroup"`
SubImportGroup []*ProjectImportGroup `xml:"ImportGroup"`
SubItemDefinitionGroup []*ProjectItemDefinitionGroup `xml:"ItemDefinitionGroup"`
SubTarget []*ProjectTarget `xml:"Target"`
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupVCProjectVersion struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupConfigurationType struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectTarget struct {
// define attribute
AttrBeforeTargets string `xml:"BeforeTargets,attr"`
AttrName string `xml:"Name,attr"`
// define subelement
SubPropertyGroup []*ProjectTargetPropertyGroup `xml:"PropertyGroup"`
SubError []*ProjectTargetError `xml:"Error"`
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileOptimization struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileConformanceMode struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileAdditionalIncludeDirectories struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemGroupClInclude struct {
// define attribute
AttrInclude string `xml:"Include,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectImport struct {
// define attribute
AttrProject string `xml:"Project,attr"`
AttrCondition string `xml:"Condition,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemGroup struct {
// define attribute
AttrLabel string `xml:"Label,attr"`
// define subelement
SubProjectConfiguration []*ProjectItemGroupProjectConfiguration `xml:"ProjectConfiguration"`
SubClCompile []*ProjectItemGroupClCompile `xml:"ClCompile"`
SubClInclude []*ProjectItemGroupClInclude `xml:"ClInclude"`
SubNone []*ProjectItemGroupNone `xml:"None"`
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroup struct {
// define attribute
AttrCondition string `xml:"Condition,attr"`
// define subelement
SubClCompile []*ProjectItemDefinitionGroupClCompile `xml:"ClCompile"`
SubLink []*ProjectItemDefinitionGroupLink `xml:"Link"`
SubPreBuildEvent []*ProjectItemDefinitionGroupPreBuildEvent `xml:"PreBuildEvent"`
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompile struct {
// define attribute
// define subelement
SubWarningLevel []*ProjectItemDefinitionGroupClCompileWarningLevel `xml:"WarningLevel"`
SubOptimization []*ProjectItemDefinitionGroupClCompileOptimization `xml:"Optimization"`
SubSDLCheck []*ProjectItemDefinitionGroupClCompileSDLCheck `xml:"SDLCheck"`
SubConformanceMode []*ProjectItemDefinitionGroupClCompileConformanceMode `xml:"ConformanceMode"`
SubAdditionalIncludeDirectories []*ProjectItemDefinitionGroupClCompileAdditionalIncludeDirectories `xml:"AdditionalIncludeDirectories"`
SubLanguageStandard []*ProjectItemDefinitionGroupClCompileLanguageStandard `xml:"LanguageStandard"`
SubPreprocessorDefinitions []*ProjectItemDefinitionGroupClCompilePreprocessorDefinitions `xml:"PreprocessorDefinitions"`
SubRuntimeLibrary []*ProjectItemDefinitionGroupClCompileRuntimeLibrary `xml:"RuntimeLibrary"`
SubFunctionLevelLinking []*ProjectItemDefinitionGroupClCompileFunctionLevelLinking `xml:"FunctionLevelLinking"`
SubIntrinsicFunctions []*ProjectItemDefinitionGroupClCompileIntrinsicFunctions `xml:"IntrinsicFunctions"`
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileIntrinsicFunctions struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectTargetPropertyGroup struct {
// define attribute
// define subelement
SubErrorText []*ProjectTargetPropertyGroupErrorText `xml:"ErrorText"`
// define content
Content string `xml:",chardata"`
}
type ProjectImportGroup struct {
// define attribute
AttrLabel string `xml:"Label,attr"`
AttrCondition string `xml:"Condition,attr"`
// define subelement
SubImport []*ProjectImportGroupImport `xml:"Import"`
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupRootNamespace struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectImportGroupImport struct {
// define attribute
AttrProject string `xml:"Project,attr"`
AttrCondition string `xml:"Condition,attr"`
AttrLabel string `xml:"Label,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupWholeProgramOptimization struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupLinkAdditionalLibraryDirectories struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupLinkEnableCOMDATFolding struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemGroupNone struct {
// define attribute
AttrInclude string `xml:"Include,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectTargetPropertyGroupErrorText struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroup struct {
// define attribute
AttrLabel string `xml:"Label,attr"`
AttrCondition string `xml:"Condition,attr"`
// define subelement
SubVCProjectVersion []*ProjectPropertyGroupVCProjectVersion `xml:"VCProjectVersion"`
SubProjectGuid []*ProjectPropertyGroupProjectGuid `xml:"ProjectGuid"`
SubRootNamespace []*ProjectPropertyGroupRootNamespace `xml:"RootNamespace"`
SubWindowsTargetPlatformVersion []*ProjectPropertyGroupWindowsTargetPlatformVersion `xml:"WindowsTargetPlatformVersion"`
SubConfigurationType []*ProjectPropertyGroupConfigurationType `xml:"ConfigurationType"`
SubUseDebugLibraries []*ProjectPropertyGroupUseDebugLibraries `xml:"UseDebugLibraries"`
SubPlatformToolset []*ProjectPropertyGroupPlatformToolset `xml:"PlatformToolset"`
SubCharacterSet []*ProjectPropertyGroupCharacterSet `xml:"CharacterSet"`
SubWholeProgramOptimization []*ProjectPropertyGroupWholeProgramOptimization `xml:"WholeProgramOptimization"`
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupProjectGuid struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupCharacterSet struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileWarningLevel struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompileFunctionLevelLinking struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemGroupProjectConfiguration struct {
// define attribute
AttrInclude string `xml:"Include,attr"`
// define subelement
SubConfiguration []*ProjectItemGroupProjectConfigurationConfiguration `xml:"Configuration"`
SubPlatform []*ProjectItemGroupProjectConfigurationPlatform `xml:"Platform"`
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupPlatformToolset struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupPreBuildEvent struct {
// define attribute
// define subelement
SubCommand []*ProjectItemDefinitionGroupPreBuildEventCommand `xml:"Command"`
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupLinkAdditionalDependencies struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupPreBuildEventCommand struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectTargetError struct {
// define attribute
AttrCondition string `xml:"Condition,attr"`
AttrText string `xml:"Text,attr"`
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemGroupProjectConfigurationConfiguration struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectPropertyGroupWindowsTargetPlatformVersion struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
type ProjectItemDefinitionGroupClCompilePreprocessorDefinitions struct {
// define attribute
// define subelement
// define content
Content string `xml:",chardata"`
}
func LoadProject(path string) (*Project, error) {
xmlFile, err := os.Open(path)
if err != nil {
return nil, err
}
defer xmlFile.Close()
xmlData, err := ioutil.ReadAll(xmlFile)
if err != nil {
return nil, err
}
var data Project
xml.Unmarshal(xmlData, &data)
return &data, nil
}
func SaveProject(path string, data *Project, perm os.FileMode) error {
buf, err := xml.MarshalIndent(data, "", " ")
if err != nil {
return err
}
err = ioutil.WriteFile(path, buf, perm)
if err != nil {
return err
}
return nil
}