refactor: refactor visual studio build file generation script.
- refactoring VS build used file generation script, but not finished. only correct some bad Python syntax and etc. - remove gamepiaynmo virtools SDK pre-build project. we no longer need it. - rename some folders name.
This commit is contained in:
		@ -1,227 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					 | 
				
			||||||
<Project DefaultTargets="Build" 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>
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					 | 
				
			||||||
  <PropertyGroup Label="Globals">
 | 
					 | 
				
			||||||
    <VCProjectVersion>16.0</VCProjectVersion>
 | 
					 | 
				
			||||||
    <Keyword>Win32Proj</Keyword>
 | 
					 | 
				
			||||||
    <ProjectGuid>{38703ab6-bc5d-4062-bc5b-1bf195333b16}</ProjectGuid>
 | 
					 | 
				
			||||||
    <RootNamespace>GPVirtoolsStatic</RootNamespace>
 | 
					 | 
				
			||||||
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
					 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
					 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					 | 
				
			||||||
    <PlatformToolset>v142</PlatformToolset>
 | 
					 | 
				
			||||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
					 | 
				
			||||||
    <UseOfMfc>Dynamic</UseOfMfc>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					 | 
				
			||||||
    <PlatformToolset>v142</PlatformToolset>
 | 
					 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					 | 
				
			||||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
					 | 
				
			||||||
    <UseOfMfc>Dynamic</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" />
 | 
					 | 
				
			||||||
    <Import Project="Virtools.props" />
 | 
					 | 
				
			||||||
  </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" />
 | 
					 | 
				
			||||||
    <Import Project="Virtools.props" />
 | 
					 | 
				
			||||||
  </ImportGroup>
 | 
					 | 
				
			||||||
  <PropertyGroup Label="UserMacros" />
 | 
					 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
					 | 
				
			||||||
    <LinkIncremental>true</LinkIncremental>
 | 
					 | 
				
			||||||
    <OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
 | 
					 | 
				
			||||||
    <IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
					 | 
				
			||||||
    <LinkIncremental>false</LinkIncremental>
 | 
					 | 
				
			||||||
    <OutDir>$(SolutionDir)out\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
 | 
					 | 
				
			||||||
    <IntDir>$(SolutionDir)temp\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
					 | 
				
			||||||
    <ClCompile>
 | 
					 | 
				
			||||||
      <WarningLevel>Level3</WarningLevel>
 | 
					 | 
				
			||||||
      <SDLCheck>true</SDLCheck>
 | 
					 | 
				
			||||||
      <PreprocessorDefinitions>BML_EXPORT=;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
					 | 
				
			||||||
      <ConformanceMode>false</ConformanceMode>
 | 
					 | 
				
			||||||
      <LanguageStandard>stdcpp17</LanguageStandard>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <Link>
 | 
					 | 
				
			||||||
      <SubSystem>Console</SubSystem>
 | 
					 | 
				
			||||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
					 | 
				
			||||||
    </Link>
 | 
					 | 
				
			||||||
  </ItemDefinitionGroup>
 | 
					 | 
				
			||||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
					 | 
				
			||||||
    <ClCompile>
 | 
					 | 
				
			||||||
      <WarningLevel>Level3</WarningLevel>
 | 
					 | 
				
			||||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
					 | 
				
			||||||
      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
					 | 
				
			||||||
      <SDLCheck>true</SDLCheck>
 | 
					 | 
				
			||||||
      <PreprocessorDefinitions>BML_EXPORT=;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
					 | 
				
			||||||
      <ConformanceMode>false</ConformanceMode>
 | 
					 | 
				
			||||||
      <LanguageStandard>stdcpp17</LanguageStandard>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <Link>
 | 
					 | 
				
			||||||
      <SubSystem>Console</SubSystem>
 | 
					 | 
				
			||||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
					 | 
				
			||||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
					 | 
				
			||||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
					 | 
				
			||||||
    </Link>
 | 
					 | 
				
			||||||
  </ItemDefinitionGroup>
 | 
					 | 
				
			||||||
  <ItemGroup>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK2dCurve.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK2dCurvePoint.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK2dEntity.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK3dEntity.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKAll.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKAttributeManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBaseManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehavior.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehaviorIO.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehaviorManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehaviorPrototype.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBeObject.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBitmapData.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKCamera.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKCollisionManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKContext.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKDataArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKDef.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKdefines2.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKDependencies.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKEnums.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKError.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKGlobals.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKGroup.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKInputManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKLevel.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKLight.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMaterial.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMesh.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMessage.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMessageManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKObject.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKObjectArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKObjectDeclaration.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameter.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameterIn.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameterManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameterOperation.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKPathManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKPluginManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKRenderContext.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKRenderManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKRenderObject.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKScene.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSceneObject.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSound.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSoundManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSprite.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSprite3D.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSpriteText.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKStateObject.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKTexture.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKTimeManager.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKTypes.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\Vx2dVector.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxAllocator.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxColor.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxFrustum.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMath.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMathDefines.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMatrix.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMutex.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxPlane.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxQuaternion.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxRay.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxRect.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxSphere.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxVector.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XBitArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XClassArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XHashFun.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XHashTable.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XObjectArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XSArray.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XSHashTable.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XSmartPtr.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XString.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XUtil.h" />
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					 | 
				
			||||||
  <ItemGroup>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK2dCurve.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK2dCurvePoint.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK2dEntity.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK3dEntity.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKAttributeManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBaseManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehavior.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehaviorIO.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehaviorManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehaviorPrototype.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBeObject.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBitmapData.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKCamera.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKCollisionManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKContext.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKDataArray.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKGlobals.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKGroup.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKInputManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKLevel.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKLight.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMaterial.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMesh.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMessage.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMessageManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKObject.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKObjectArray.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKObjectDeclaration.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameter.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameterIn.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameterManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameterOperation.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKPathManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKPluginManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKRenderContext.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKRenderManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKRenderObject.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKScene.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSceneObject.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSound.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSoundManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSprite.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSprite3D.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSpriteText.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKStateObject.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKTexture.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKTimeManager.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\VxMath.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\VxMatrix.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\VxQuaternion.cpp" />
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\XString.cpp" />
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
					 | 
				
			||||||
  <ImportGroup Label="ExtensionTargets">
 | 
					 | 
				
			||||||
  </ImportGroup>
 | 
					 | 
				
			||||||
</Project>
 | 
					 | 
				
			||||||
@ -1,411 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					 | 
				
			||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					 | 
				
			||||||
  <ItemGroup>
 | 
					 | 
				
			||||||
    <Filter Include="Sources">
 | 
					 | 
				
			||||||
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
					 | 
				
			||||||
      <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
					 | 
				
			||||||
    </Filter>
 | 
					 | 
				
			||||||
    <Filter Include="Headers">
 | 
					 | 
				
			||||||
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
					 | 
				
			||||||
      <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
 | 
					 | 
				
			||||||
    </Filter>
 | 
					 | 
				
			||||||
    <Filter Include="Resources">
 | 
					 | 
				
			||||||
      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
					 | 
				
			||||||
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
					 | 
				
			||||||
    </Filter>
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					 | 
				
			||||||
  <ItemGroup>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK2dCurve.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK2dCurvePoint.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK2dEntity.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CK3dEntity.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKAll.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKAttributeManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBaseManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehavior.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehaviorIO.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehaviorManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBehaviorPrototype.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBeObject.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKBitmapData.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKCamera.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKCollisionManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKContext.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKDataArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKDef.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKdefines2.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKDependencies.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKEnums.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKError.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKGlobals.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKGroup.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKInputManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKLevel.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKLight.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMaterial.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMesh.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMessage.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKMessageManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKObject.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKObjectArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKObjectDeclaration.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameter.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameterIn.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameterManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKParameterOperation.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKPathManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKPluginManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKRenderContext.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKRenderManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKRenderObject.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKScene.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSceneObject.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSound.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSoundManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSprite.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSprite3D.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKSpriteText.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKStateObject.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKTexture.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKTimeManager.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\CKTypes.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\Vx2dVector.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxAllocator.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxColor.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxFrustum.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMath.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMathDefines.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMatrix.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxMutex.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxPlane.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxQuaternion.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxRay.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxRect.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxSphere.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\VxVector.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XBitArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XClassArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XHashFun.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XHashTable.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XObjectArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XSArray.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XSHashTable.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XSmartPtr.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XString.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="$(BML_REPOSITORY)\virtools\XUtil.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					 | 
				
			||||||
  <ItemGroup>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK2dCurve.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK2dCurvePoint.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK2dEntity.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CK3dEntity.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKAttributeManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBaseManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehavior.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehaviorIO.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehaviorManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBehaviorPrototype.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBeObject.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKBitmapData.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKCamera.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKCollisionManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKContext.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKDataArray.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKGlobals.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKGroup.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKInputManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKLevel.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKLight.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMaterial.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMesh.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMessage.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKMessageManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKObject.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKObjectArray.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKObjectDeclaration.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameter.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameterIn.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameterManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKParameterOperation.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKPathManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKPluginManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKRenderContext.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKRenderManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKRenderObject.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKScene.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSceneObject.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSound.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSoundManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSprite.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSprite3D.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKSpriteText.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKStateObject.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKTexture.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\CKTimeManager.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\VxMath.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\VxMatrix.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\VxQuaternion.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
    <ClCompile Include="$(BML_REPOSITORY)\virtools\XString.cpp">
 | 
					 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					 | 
				
			||||||
    </ClCompile>
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					 | 
				
			||||||
</Project>
 | 
					 | 
				
			||||||
@ -1,127 +0,0 @@
 | 
				
			|||||||
import xml.dom.minidom as minidom
 | 
					 | 
				
			||||||
import xml.dom
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class VSPropWriter(object):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    SUBSYSTEM_WIN: str = 'Windows'
 | 
					 | 
				
			||||||
    SUBSYSTEM_CON: str = 'Console'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self):
 | 
					 | 
				
			||||||
        self.__MacroList: dict[str, str] = {}
 | 
					 | 
				
			||||||
        self.__SubSystem: str = None
 | 
					 | 
				
			||||||
        self.__BuildType: str = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def AddMacro(self, key: str, value: str):
 | 
					 | 
				
			||||||
        if (key in self.__MacroList):
 | 
					 | 
				
			||||||
            raise Exception(f'Duplicated Set Macro "{key}".')
 | 
					 | 
				
			||||||
        self.__MacroList[key] = value
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def SetSubSystem(self, subsys: str):
 | 
					 | 
				
			||||||
        self.__SubSystem = subsys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def Write2File(self, filename: str):
 | 
					 | 
				
			||||||
        # create some header
 | 
					 | 
				
			||||||
        dom = minidom.getDOMImplementation().createDocument(None, 'Project', None)
 | 
					 | 
				
			||||||
        root = dom.documentElement
 | 
					 | 
				
			||||||
        root.setAttribute('ToolsVersion', '4.0')
 | 
					 | 
				
			||||||
        root.setAttribute('xmlns', 'http://schemas.microsoft.com/developer/msbuild/2003')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        cache = dom.createElement('ImportGroup')
 | 
					 | 
				
			||||||
        cache.setAttribute('Label', 'PropertySheets')
 | 
					 | 
				
			||||||
        root.appendChild(cache)
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        # write sub system
 | 
					 | 
				
			||||||
        if self.__SubSystem is not None:
 | 
					 | 
				
			||||||
            for bt in ('Debug', 'Release'):
 | 
					 | 
				
			||||||
                node_IDG = dom.createElement('ItemDefinitionGroup')
 | 
					 | 
				
			||||||
                node_IDG.setAttribute('Condition', f"'$(Configuration)|$(Platform)'=='{bt}|Win32'")
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                node_link = dom.createElement('Link')
 | 
					 | 
				
			||||||
                node_sub_system = dom.createElement('SubSystem')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                node_sub_system.appendChild(dom.createTextNode(self.__SubSystem))
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                node_link.appendChild(node_sub_system)
 | 
					 | 
				
			||||||
                node_IDG.appendChild(node_link)
 | 
					 | 
				
			||||||
                root.appendChild(node_IDG)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # write macro
 | 
					 | 
				
			||||||
        node_PG = dom.createElement('PropertyGroup')    # macro node 1
 | 
					 | 
				
			||||||
        node_PG.setAttribute('Label', 'UserMacros')
 | 
					 | 
				
			||||||
        root.appendChild(node_PG)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        cache = dom.createElement('PropertyGroup') # dummy structure
 | 
					 | 
				
			||||||
        root.appendChild(cache)
 | 
					 | 
				
			||||||
        cache = dom.createElement('ItemDefinitionGroup') #dummy structure
 | 
					 | 
				
			||||||
        root.appendChild(cache)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        node_IG = dom.createElement('ItemGroup')    # macro node 2
 | 
					 | 
				
			||||||
        root.appendChild(node_IG)
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        for key, value in self.__MacroList.items():
 | 
					 | 
				
			||||||
            # create for PropertyGroup
 | 
					 | 
				
			||||||
            node_macro_decl = dom.createElement(key)
 | 
					 | 
				
			||||||
            if value != '': # check whether data is empty.
 | 
					 | 
				
			||||||
                node_macro_decl.appendChild(dom.createTextNode(value))
 | 
					 | 
				
			||||||
            node_PG.appendChild(node_macro_decl)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # create for ItemGroup
 | 
					 | 
				
			||||||
            node_macro_ref = dom.createElement("BuildMacro")
 | 
					 | 
				
			||||||
            node_macro_ref.setAttribute('Include', key)
 | 
					 | 
				
			||||||
            node_inner_macro_ref = dom.createElement('Value')
 | 
					 | 
				
			||||||
            node_inner_macro_ref.appendChild(dom.createTextNode("$({})".format(key)))
 | 
					 | 
				
			||||||
            node_macro_ref.appendChild(node_inner_macro_ref)
 | 
					 | 
				
			||||||
            node_IG.appendChild(node_macro_ref)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # write to file
 | 
					 | 
				
			||||||
        with open(filename, 'w', encoding='utf-8') as f:
 | 
					 | 
				
			||||||
            dom.writexml(f, addindent='\t', newl='\n', encoding='utf-8')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class VSVcxprojModifier(object):
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    BUILDTYPE_EXE: str = 'Application'
 | 
					 | 
				
			||||||
    BUILDTYPE_DLL: str = 'DynamicLibrary'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self, vcfile: str):
 | 
					 | 
				
			||||||
        self.__Dom = minidom.parse(vcfile)
 | 
					 | 
				
			||||||
        self.__FileName: str = vcfile
 | 
					 | 
				
			||||||
        self.__BuildType: str = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def SetBuildType(self, bt: str):
 | 
					 | 
				
			||||||
        self.__BuildType = bt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def Write2File(self):
 | 
					 | 
				
			||||||
        # if no spec build type, do not modify
 | 
					 | 
				
			||||||
        if self.__BuildType is None:
 | 
					 | 
				
			||||||
            return
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # get corresponding entry
 | 
					 | 
				
			||||||
        dom = self.__Dom
 | 
					 | 
				
			||||||
        node_project = dom.documentElement
 | 
					 | 
				
			||||||
        for node_PG in node_project.getElementsByTagName('PropertyGroup'):
 | 
					 | 
				
			||||||
            attr_label = node_PG.getAttribute('Label')
 | 
					 | 
				
			||||||
            attr_condition = node_PG.getAttribute('Condition')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # skip invalid node
 | 
					 | 
				
			||||||
            if attr_label != 'Configuration':
 | 
					 | 
				
			||||||
                continue
 | 
					 | 
				
			||||||
            if attr_condition != "'$(Configuration)|$(Platform)'=='Debug|Win32'" and attr_condition != "'$(Configuration)|$(Platform)'=='Release|Win32'":
 | 
					 | 
				
			||||||
                continue
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # this is valid node, process it
 | 
					 | 
				
			||||||
            node_CT = node_PG.getElementsByTagName('ConfigurationType')
 | 
					 | 
				
			||||||
            if len(node_CT) != 0:
 | 
					 | 
				
			||||||
                # have node, change it
 | 
					 | 
				
			||||||
                node_CT[0].childNodes[0].nodeValue = self.__BuildType
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                # don't have node, add one
 | 
					 | 
				
			||||||
                node_CT = dom.createElement('ConfigurationType')
 | 
					 | 
				
			||||||
                node_CT.appendChild(dom.createTextNode(self.__BuildType))
 | 
					 | 
				
			||||||
                node_PG.appendChild(node_CT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # write file
 | 
					 | 
				
			||||||
        with open(self.__FileName, 'w', encoding='utf-8') as f:
 | 
					 | 
				
			||||||
            dom.writexml(f, encoding='utf-8')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.29418.71
 | 
				
			|||||||
MinimumVisualStudioVersion = 10.0.40219.1
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SuperScriptMaterializer", "SuperScriptMaterializer\SuperScriptMaterializer.vcxproj", "{4D941003-020F-47FD-9FA2-FFC989E306B8}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SuperScriptMaterializer", "SuperScriptMaterializer\SuperScriptMaterializer.vcxproj", "{4D941003-020F-47FD-9FA2-FFC989E306B8}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GPVirtoolsStatic", "GPVirtoolsStatic\GPVirtoolsStatic.vcxproj", "{38703AB6-BC5D-4062-BC5B-1BF195333B16}"
 | 
					 | 
				
			||||||
EndProject
 | 
					 | 
				
			||||||
Global
 | 
					Global
 | 
				
			||||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
		Debug|x86 = Debug|x86
 | 
							Debug|x86 = Debug|x86
 | 
				
			||||||
@ -17,10 +15,6 @@ Global
 | 
				
			|||||||
		{4D941003-020F-47FD-9FA2-FFC989E306B8}.Debug|x86.Build.0 = Debug|Win32
 | 
							{4D941003-020F-47FD-9FA2-FFC989E306B8}.Debug|x86.Build.0 = Debug|Win32
 | 
				
			||||||
		{4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x86.ActiveCfg = Release|Win32
 | 
							{4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x86.ActiveCfg = Release|Win32
 | 
				
			||||||
		{4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x86.Build.0 = Release|Win32
 | 
							{4D941003-020F-47FD-9FA2-FFC989E306B8}.Release|x86.Build.0 = Release|Win32
 | 
				
			||||||
		{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Debug|x86.ActiveCfg = Debug|Win32
 | 
					 | 
				
			||||||
		{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Debug|x86.Build.0 = Debug|Win32
 | 
					 | 
				
			||||||
		{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Release|x86.ActiveCfg = Release|Win32
 | 
					 | 
				
			||||||
		{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Release|x86.Build.0 = Release|Win32
 | 
					 | 
				
			||||||
	EndGlobalSection
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(SolutionProperties) = preSolution
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
		HideSolutionNode = FALSE
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
				
			|||||||
@ -1,77 +1,77 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <Filter Include="源文件">
 | 
					    <Filter Include="Sources">
 | 
				
			||||||
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
					      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
				
			||||||
      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
					      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
				
			||||||
    </Filter>
 | 
					    </Filter>
 | 
				
			||||||
    <Filter Include="头文件">
 | 
					    <Filter Include="Headers">
 | 
				
			||||||
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
					      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
				
			||||||
      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
 | 
					      <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
 | 
				
			||||||
    </Filter>
 | 
					    </Filter>
 | 
				
			||||||
    <Filter Include="资源文件">
 | 
					    <Filter Include="Resources">
 | 
				
			||||||
      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
					      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
				
			||||||
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
					      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
				
			||||||
    </Filter>
 | 
					    </Filter>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClInclude Include="database.hpp">
 | 
					    <ClInclude Include="database.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="env_export.hpp">
 | 
					    <ClInclude Include="env_export.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="resource.h">
 | 
					    <ClInclude Include="resource.h">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="doc_export.hpp">
 | 
					    <ClInclude Include="doc_export.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="stdafx.h">
 | 
					    <ClInclude Include="stdafx.h">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="vt_menu.hpp">
 | 
					    <ClInclude Include="vt_menu.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="virtools_compatible.hpp">
 | 
					    <ClInclude Include="virtools_compatible.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="string_helper.hpp">
 | 
					    <ClInclude Include="string_helper.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="vt_player.hpp">
 | 
					    <ClInclude Include="vt_player.hpp">
 | 
				
			||||||
      <Filter>头文件</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClCompile Include="database.cpp">
 | 
					    <ClCompile Include="database.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="env_export.cpp">
 | 
					    <ClCompile Include="env_export.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="main.cpp">
 | 
					    <ClCompile Include="main.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="doc_export.cpp">
 | 
					    <ClCompile Include="doc_export.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="vt_menu.cpp">
 | 
					    <ClCompile Include="vt_menu.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="vt_player.cpp">
 | 
					    <ClCompile Include="vt_player.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="virtools_compatible.cpp">
 | 
					    <ClCompile Include="virtools_compatible.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="string_helper.cpp">
 | 
					    <ClCompile Include="string_helper.cpp">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <None Include="SuperScriptMaterializer.def">
 | 
					    <None Include="SuperScriptMaterializer.def">
 | 
				
			||||||
      <Filter>源文件</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </None>
 | 
					    </None>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
</Project>
 | 
					</Project>
 | 
				
			||||||
@ -1,6 +1,124 @@
 | 
				
			|||||||
import VSProp
 | 
					import vs_props_writer, vs_vcxproj_modifier
 | 
				
			||||||
import os
 | 
					import os, enum, sys
 | 
				
			||||||
import sys
 | 
					
 | 
				
			||||||
 | 
					#region Constant Declarations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class BuildType(enum.Enum):
 | 
				
			||||||
 | 
					    Standalone: str = "standalone"
 | 
				
			||||||
 | 
					    Plugin: str = "plugin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class VirtoolsVersion(enum.Enum):
 | 
				
			||||||
 | 
					    V21 = '21'
 | 
				
			||||||
 | 
					    V25 = '25'
 | 
				
			||||||
 | 
					    V30 = '30'
 | 
				
			||||||
 | 
					    V35 = '35'
 | 
				
			||||||
 | 
					    V40 = '40'
 | 
				
			||||||
 | 
					    V50 = '50'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VT_STANDALONE_ATTACHED_LIBS: dict[VirtoolsVersion, str] = {
 | 
				
			||||||
 | 
					    VirtoolsVersion.V21: "VxMath.lib;CK2.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V25: "VxMath.lib;CK2.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V30: "VxMath.lib;CK2.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V35: "VxMath.lib;CK2.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V40: "VxMath.lib;CK2.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V50: "VxMath.lib;CK2.lib"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					VT_PLUGIN_ATTACHED_LIBS: dict[VirtoolsVersion, str] = {
 | 
				
			||||||
 | 
					    VirtoolsVersion.V21: "",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V25: "",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V30: "VxMath.lib;DllEditor.lib;CK2.lib;InterfaceControls.lib;CKControls.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V35: "VxMath.lib;DllEditor.lib;CK2.lib;InterfaceControls.lib;CKControls.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V40: "VxMath.lib;DllEditor.lib;CK2.lib;InterfaceControls.lib;CKControls.lib",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V50: "VxMath.lib;DllEditor.lib;CK2.lib;InterfaceControls.lib;CKControls.lib" 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VT_PLUGIN_MACROS: dict[VirtoolsVersion, str] = {
 | 
				
			||||||
 | 
					    VirtoolsVersion.V21: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V25: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V30: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V35: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V40: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V50: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE" 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					VT_STANDALONE_MACROS: dict[VirtoolsVersion, str] = {
 | 
				
			||||||
 | 
					    VirtoolsVersion.V21: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V25: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V30: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V35: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V40: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V50: "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;VIRTOOLS_USER_SDK" 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VT_EXECUTABLE_DEV: dict[VirtoolsVersion, str] = {
 | 
				
			||||||
 | 
					    VirtoolsVersion.V21: "Dev.exe",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V25: "Dev.exe",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V30: "devr.exe",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V35: "devr.exe",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V40: "devr.exe",
 | 
				
			||||||
 | 
					    VirtoolsVersion.V50: "devr.exe"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#region Assist Functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_project_root() -> str:
 | 
				
			||||||
 | 
					    # build project root path
 | 
				
			||||||
 | 
					    ret: str = os.path.dirname(os.path.dirname(__file__))
 | 
				
			||||||
 | 
					    # check whether have readme file
 | 
				
			||||||
 | 
					    if not os.path.isfile(os.path.join(ret, 'README.md')):
 | 
				
			||||||
 | 
					        print('Fail to get project root folder. This script may be placed at wrong location.')
 | 
				
			||||||
 | 
					        sys.exit(1)
 | 
				
			||||||
 | 
					    # return value
 | 
				
			||||||
 | 
					    return ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_attached_libs(build_type: BuildType, vt_version: VirtoolsVersion) -> str:
 | 
				
			||||||
 | 
					    match(build_type):
 | 
				
			||||||
 | 
					        case BuildType.Standalone:
 | 
				
			||||||
 | 
					            return VT_STANDALONE_ATTACHED_LIBS[vt_version]
 | 
				
			||||||
 | 
					        case BuildType.Plugin:
 | 
				
			||||||
 | 
					            return VT_PLUGIN_ATTACHED_LIBS[vt_version]
 | 
				
			||||||
 | 
					        case _:
 | 
				
			||||||
 | 
					            raise Exception('invalid build type')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_macros(build_type: BuildType, vt_version: VirtoolsVersion) -> str:
 | 
				
			||||||
 | 
					    match(build_type):
 | 
				
			||||||
 | 
					        case BuildType.Standalone:
 | 
				
			||||||
 | 
					            return VT_STANDALONE_MACROS[vt_version]
 | 
				
			||||||
 | 
					        case BuildType.Plugin:
 | 
				
			||||||
 | 
					            return VT_PLUGIN_MACROS[vt_version]
 | 
				
			||||||
 | 
					        case _:
 | 
				
			||||||
 | 
					            raise Exception('invalid build type')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_executable_dev(vt_version: VirtoolsVersion) -> str:
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Return the path to executable Virtools Dev according to given Virtools version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Usually it is `Dev.exe` or `devr.exe`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :param vt_version The version of Virtools.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_output_path(build_type: BuildType, vt_root: str) -> str:
 | 
				
			||||||
 | 
					    # fetch output path by build type
 | 
				
			||||||
 | 
					    ret: str
 | 
				
			||||||
 | 
					    match(build_type):
 | 
				
			||||||
 | 
					        case BuildType.Standalone:
 | 
				
			||||||
 | 
					            ret = vt_root
 | 
				
			||||||
 | 
					        case BuildType.Plugin:
 | 
				
			||||||
 | 
					            ret = os.path.join(vt_root, 'InterfacePlugins')
 | 
				
			||||||
 | 
					        case _:
 | 
				
			||||||
 | 
					            raise Exception('invalid build type')
 | 
				
			||||||
 | 
					    # make sure return value is end with slash or backslash
 | 
				
			||||||
 | 
					    if ret[-1] != '\\' or ret[-1] != '/':
 | 
				
			||||||
 | 
					        ret += '\\'
 | 
				
			||||||
 | 
					    # return value
 | 
				
			||||||
 | 
					    return ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# =========== check work dir ===========
 | 
					# =========== check work dir ===========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -233,8 +351,10 @@ else:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# =========== create props ===========
 | 
					# =========== create props ===========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
props = VSProp.VSPropWriter()
 | 
					props = vs_props_writer.VsPropsWriter()
 | 
				
			||||||
vcxproj = VSProp.VSVcxprojModifier('./SuperScriptMaterializer/SuperScriptMaterializer.vcxproj')
 | 
					vcxproj = vs_vcxproj_modifier.VsVcxprojModifier(
 | 
				
			||||||
 | 
					    './SuperScriptMaterializer/SuperScriptMaterializer.vcxproj'
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# write build type
 | 
					# write build type
 | 
				
			||||||
if input_build_type == build_type_standalone:
 | 
					if input_build_type == build_type_standalone:
 | 
				
			||||||
@ -244,9 +364,9 @@ elif input_build_type == build_type_plugin:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# write subsystem
 | 
					# write subsystem
 | 
				
			||||||
if input_build_type == build_type_standalone:
 | 
					if input_build_type == build_type_standalone:
 | 
				
			||||||
    props.SetSubSystem(props.SUBSYSTEM_CON);
 | 
					    props.SetSubSystem(vs_props_writer.VsSubSystem.Console)
 | 
				
			||||||
elif input_build_type == build_type_plugin:
 | 
					elif input_build_type == build_type_plugin:
 | 
				
			||||||
    props.SetSubSystem(props.SUBSYSTEM_WIN)
 | 
					    props.SetSubSystem(vs_props_writer.VsSubSystem.Windows)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# write macro and misc
 | 
					# write macro and misc
 | 
				
			||||||
# build type distinguish macro
 | 
					# build type distinguish macro
 | 
				
			||||||
@ -286,3 +406,7 @@ if input_virtools_version == '21' and input_vt21_reverse_work_type == 'gamepiayn
 | 
				
			|||||||
    gp_props.Write2File('./GPVirtoolsStatic/Virtools.props')
 | 
					    gp_props.Write2File('./GPVirtoolsStatic/Virtools.props')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print("OK!")
 | 
					print("OK!")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										80
									
								
								scripts/vs_props_writer.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								scripts/vs_props_writer.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					import xml.dom.minidom as minidom
 | 
				
			||||||
 | 
					import enum, os, sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class VsSubSystem(enum.Enum):
 | 
				
			||||||
 | 
					    Windows = 'Windows'
 | 
				
			||||||
 | 
					    Console = 'Console'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class VsPropsWriter():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    __mMacroList: dict[str, str]
 | 
				
			||||||
 | 
					    __mSubSystem: VsSubSystem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        self.__mMacroList = {}
 | 
				
			||||||
 | 
					        self.__mSubSystem = VsSubSystem.Windows
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def AddMacro(self, key: str, value: str):
 | 
				
			||||||
 | 
					        if key in self.__mMacroList:
 | 
				
			||||||
 | 
					            raise Exception(f'Duplicated Set Macro "{key}".')
 | 
				
			||||||
 | 
					        self.__mMacroList[key] = value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def SetSubSystem(self, subsys: VsSubSystem):
 | 
				
			||||||
 | 
					        self.__mSubSystem = subsys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def Generate(self, filename: str):
 | 
				
			||||||
 | 
					        # create some header
 | 
				
			||||||
 | 
					        document = minidom.getDOMImplementation().createDocument(None, 'Project', None)
 | 
				
			||||||
 | 
					        root: minidom.Element = document.documentElement
 | 
				
			||||||
 | 
					        root.setAttribute('ToolsVersion', '4.0')
 | 
				
			||||||
 | 
					        root.setAttribute('xmlns', 'http://schemas.microsoft.com/developer/msbuild/2003')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cache = document.createElement('ImportGroup')
 | 
				
			||||||
 | 
					        cache.setAttribute('Label', 'PropertySheets')
 | 
				
			||||||
 | 
					        root.appendChild(cache)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        # write sub system
 | 
				
			||||||
 | 
					        for bt in ('Debug', 'Release'):
 | 
				
			||||||
 | 
					            node_IDG = document.createElement('ItemDefinitionGroup')
 | 
				
			||||||
 | 
					            node_IDG.setAttribute('Condition', f"'$(Configuration)|$(Platform)'=='{bt}|Win32'")
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            node_link = document.createElement('Link')
 | 
				
			||||||
 | 
					            node_sub_system = document.createElement('SubSystem')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            node_sub_system.appendChild(document.createTextNode(self.__mSubSystem.value))
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            node_link.appendChild(node_sub_system)
 | 
				
			||||||
 | 
					            node_IDG.appendChild(node_link)
 | 
				
			||||||
 | 
					            root.appendChild(node_IDG)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # write macro
 | 
				
			||||||
 | 
					        node_PG = document.createElement('PropertyGroup')    # macro node 1
 | 
				
			||||||
 | 
					        node_PG.setAttribute('Label', 'UserMacros')
 | 
				
			||||||
 | 
					        root.appendChild(node_PG)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cache = document.createElement('PropertyGroup') # dummy structure
 | 
				
			||||||
 | 
					        root.appendChild(cache)
 | 
				
			||||||
 | 
					        cache = document.createElement('ItemDefinitionGroup') #dummy structure
 | 
				
			||||||
 | 
					        root.appendChild(cache)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        node_IG = document.createElement('ItemGroup')    # macro node 2
 | 
				
			||||||
 | 
					        root.appendChild(node_IG)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        for key, value in self.__mMacroList.items():
 | 
				
			||||||
 | 
					            # create for PropertyGroup
 | 
				
			||||||
 | 
					            node_macro_decl = document.createElement(key)
 | 
				
			||||||
 | 
					            if value != '': # check whether data is empty.
 | 
				
			||||||
 | 
					                node_macro_decl.appendChild(document.createTextNode(value))
 | 
				
			||||||
 | 
					            node_PG.appendChild(node_macro_decl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # create for ItemGroup
 | 
				
			||||||
 | 
					            node_macro_ref = document.createElement("BuildMacro")
 | 
				
			||||||
 | 
					            node_macro_ref.setAttribute('Include', key)
 | 
				
			||||||
 | 
					            node_inner_macro_ref = document.createElement('Value')
 | 
				
			||||||
 | 
					            node_inner_macro_ref.appendChild(document.createTextNode("$({})".format(key)))
 | 
				
			||||||
 | 
					            node_macro_ref.appendChild(node_inner_macro_ref)
 | 
				
			||||||
 | 
					            node_IG.appendChild(node_macro_ref)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # write to file
 | 
				
			||||||
 | 
					        with open(filename, 'w', encoding='utf-8') as f:
 | 
				
			||||||
 | 
					            document.writexml(f, addindent='\t', newl='\n', encoding='utf-8')
 | 
				
			||||||
							
								
								
									
										51
									
								
								scripts/vs_vcxproj_modifier.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								scripts/vs_vcxproj_modifier.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					import xml.dom.minidom as minidom
 | 
				
			||||||
 | 
					import xml.dom
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class VsVcxprojModifier():
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    BUILDTYPE_EXE: str = 'Application'
 | 
				
			||||||
 | 
					    BUILDTYPE_DLL: str = 'DynamicLibrary'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, vcfile: str):
 | 
				
			||||||
 | 
					        self.__Dom = minidom.parse(vcfile)
 | 
				
			||||||
 | 
					        self.__FileName: str = vcfile
 | 
				
			||||||
 | 
					        self.__BuildType: str = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def SetBuildType(self, bt: str):
 | 
				
			||||||
 | 
					        self.__BuildType = bt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def Write2File(self):
 | 
				
			||||||
 | 
					        # if no spec build type, do not modify
 | 
				
			||||||
 | 
					        if self.__BuildType is None:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # get corresponding entry
 | 
				
			||||||
 | 
					        dom = self.__Dom
 | 
				
			||||||
 | 
					        node_project = dom.documentElement
 | 
				
			||||||
 | 
					        for node_PG in node_project.getElementsByTagName('PropertyGroup'):
 | 
				
			||||||
 | 
					            attr_label = node_PG.getAttribute('Label')
 | 
				
			||||||
 | 
					            attr_condition = node_PG.getAttribute('Condition')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # skip invalid node
 | 
				
			||||||
 | 
					            if attr_label != 'Configuration':
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            if attr_condition != "'$(Configuration)|$(Platform)'=='Debug|Win32'" and attr_condition != "'$(Configuration)|$(Platform)'=='Release|Win32'":
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # this is valid node, process it
 | 
				
			||||||
 | 
					            node_CT = node_PG.getElementsByTagName('ConfigurationType')
 | 
				
			||||||
 | 
					            if len(node_CT) != 0:
 | 
				
			||||||
 | 
					                # have node, change it
 | 
				
			||||||
 | 
					                node_CT[0].childNodes[0].nodeValue = self.__BuildType
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                # don't have node, add one
 | 
				
			||||||
 | 
					                node_CT = dom.createElement('ConfigurationType')
 | 
				
			||||||
 | 
					                node_CT.appendChild(dom.createTextNode(self.__BuildType))
 | 
				
			||||||
 | 
					                node_PG.appendChild(node_CT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # write file
 | 
				
			||||||
 | 
					        with open(self.__FileName, 'w', encoding='utf-8') as f:
 | 
				
			||||||
 | 
					            dom.writexml(f, encoding='utf-8')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user