promote cfg maker

This commit is contained in:
yyc12345 2023-02-19 11:49:25 +08:00
parent a3d6c0f04f
commit c02679fd9e
7 changed files with 887 additions and 198 deletions

View File

@ -0,0 +1,227 @@
<?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>

View File

@ -0,0 +1,411 @@
<?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>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets"/>
<PropertyGroup Label="UserMacros">
<BML_REPOSITORY>D:\BallanceModLoader</BML_REPOSITORY>
</PropertyGroup>
<PropertyGroup/>
<ItemDefinitionGroup/>
<ItemGroup>
<BuildMacro Include="BML_REPOSITORY">
<Value>$(BML_REPOSITORY)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@ -1,5 +1,4 @@
import xml.dom.minidom as minidom
import xml.dom
import Scripts.VSProp as VSProp
import os
import sys
@ -26,20 +25,21 @@ virtools_attached_lib_standalone_dict = {
"40": "vxmath.lib;ck2.lib",
"50": "vxmath.lib;ck2.lib"
}
virtools_gp_static_proj = 'GPVirtoolsStatic'
virtools_std_macro_plugin_dict = {
"21": "",
"25": "",
"35": "_CRT_SECURE_NO_WARNINGS",
"40": "_CRT_SECURE_NO_WARNINGS",
"50": ""
"21": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
"25": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
"35": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
"40": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE",
"50": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE"
}
virtools_std_macro_standalone_dict = {
"21": "_DEBUG",
"25": "_CRT_SECURE_NO_WARNINGS;_DEBUG",
"35": "_CRT_SECURE_NO_WARNINGS;_DEBUG",
"40": "_CRT_SECURE_NO_WARNINGS;_DEBUG",
"50": "VIRTOOLS_USER_SDK;_DEBUG"
"21": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
"25": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
"35": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
"40": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG",
"50": "_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;VIRTOOLS_USER_SDK;_DEBUG"
}
executable_virtools = {
@ -69,31 +69,6 @@ valid_vt21_reverse_work_type = (
)
# ======================== assist func
def write_macro(dom, node_property_group, node_item_group, macro_upcase, data):
node = dom.createElement(macro_upcase)
if data != '':
node.appendChild(dom.createTextNode(data))
node_property_group.appendChild(node)
node = dom.createElement("BuildMacro")
node.setAttribute('Include', macro_upcase)
inter_node = dom.createElement('Value')
inter_node.appendChild(dom.createTextNode("$({})".format(macro_upcase)))
node.appendChild(inter_node)
node_item_group.appendChild(node)
def write_cl(dom, node_include, node_compile, filename):
if filename.endswith('.h'):
cl = dom.createElement('ClInclude')
node = node_include
elif filename.endswith('.cpp'):
cl = dom.createElement('ClCompile')
node = node_compile
else:
return
cl.setAttribute('Include', filename)
node.appendChild(cl)
def get_executable_virtools(vt_ver):
if vt_ver == '21':
return 'Dev.exe'
@ -187,20 +162,24 @@ if input_build_type == build_type_plugin:
virtools_build_type = 'VIRTOOLS_PLUGIN'
virtools_build_suffix = 'dll'
virtools_module_define = 'SuperScriptMaterializer.def'
virtools_attached_lib = virtools_attached_lib_plugin_dict[input_virtools_version]
virtools_std_macro = virtools_std_macro_plugin_dict[input_virtools_version]
virtools_attached_lib = virtools_attached_lib_plugin_dict[input_virtools_version]
elif input_build_type == build_type_standalone:
virtools_build_type = 'VIRTOOLS_STANDALONE'
virtools_build_suffix = 'exe'
virtools_module_define = ''
virtools_attached_lib = virtools_attached_lib_standalone_dict[input_virtools_version]
virtools_std_macro = virtools_std_macro_standalone_dict[input_virtools_version]
# gamepiaynmo linked lib need special lib name
if input_virtools_version == '21' and input_vt21_reverse_work_type == 'gamepiaynmo':
virtools_attached_lib = virtools_gp_static_proj + '.lib'
else:
virtools_attached_lib = virtools_attached_lib_standalone_dict[input_virtools_version]
# debug configuration and output path
if input_virtools_version == '21':
# virtools 21 onlt allow standalone build type
# we copy it and specific some field
virtools_debug_root = iinput_vt21_runtime_path
virtools_debug_root = input_vt21_runtime_path
virtools_debug_commandline = 'test.nmo test_script.db test_env.db'
virtools_debug_target = os.path.join(input_vt21_runtime_path, 'SuperScriptMaterializer.exe')
virtools_output_path = input_vt21_runtime_path
@ -234,9 +213,9 @@ if input_virtools_version == '21':
else:
# gamepiaynmo need a special macro but his proj do not need any link,
# instead, we need compile it fully which will be implemented in following code
bml_special_macro = 'BML_EXPORT='
virtools_extra_macro = 'BML_EXPORT='
virtools_header_path = os.path.join(input_vt21_reverse_work_path, 'virtools')
virtools_lib_path = ''
virtools_lib_path = '$(SolutionDir)out\\$(Platform)\\$(Configuration)\\' + virtools_gp_static_proj
else:
virtools_extra_macro = ''
if input_virtools_version == '25':
@ -247,133 +226,58 @@ else:
virtools_lib_path = os.path.join(input_virtools_root_path, 'Sdk/Lib/Win32/Release')
# ======================== create document
# ======================== create props
# create 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')
props = VSProp.VSPropWriter()
vcxproj = VSProp.VSVcxprojModifier('./SuperScriptMaterializer/SuperScriptMaterializer.vcxproj')
cache = dom.createElement('ImportGroup')
cache.setAttribute('Label', 'PropertySheets')
root.appendChild(cache)
# ======================== write build type
# due to build chain v100 shit design, this configuration onlt can be modified in .vcxproj
# so these code were annotated
'''
for bt in ('Debug', 'Release'):
node_build_type = dom.createElement('PropertyGroup')
node_build_type.setAttribute('Label', 'Configuration')
node_build_type.setAttribute('Condition', "'$(Configuration)|$(Platform)'=='{}|Win32'".format(bt))
node_configuration_type = dom.createElement('ConfigurationType')
# write build type
if input_build_type == build_type_standalone:
node_configuration_type.appendChild(dom.createTextNode('Application'))
vcxproj.SetBuildType(vcxproj.BUILDTYPE_EXE)
elif input_build_type == build_type_plugin:
node_configuration_type.appendChild(dom.createTextNode('DynamicLibrary'))
node_build_type.appendChild(node_configuration_type)
root.appendChild(node_build_type)
'''
# ======================== write subsystem
for bt in ('Debug', 'Release'):
node_item_def = dom.createElement('ItemDefinitionGroup')
node_item_def.setAttribute('Condition', "'$(Configuration)|$(Platform)'=='{}|Win32'".format(bt))
node_item_def_link = dom.createElement('Link')
node_sub_system = dom.createElement('SubSystem')
vcxproj.SetBuildType(vcxproj.BUILDTYPE_DLL)
# write subsystem
if input_build_type == build_type_standalone:
node_sub_system.appendChild(dom.createTextNode('Console'))
props.SetSubSystem(props.SUBSYSTEM_CON);
elif input_build_type == build_type_plugin:
node_sub_system.appendChild(dom.createTextNode('Windows'))
node_item_def_link.appendChild(node_sub_system)
node_item_def.appendChild(node_item_def_link)
root.appendChild(node_item_def)
# ======================== write macro and misc
node_property_group = dom.createElement('PropertyGroup')
node_property_group.setAttribute('Label', 'UserMacros')
root.appendChild(node_property_group)
cache = dom.createElement('PropertyGroup')
root.appendChild(cache)
cache = dom.createElement('ItemDefinitionGroup')
root.appendChild(cache)
node_item_group = dom.createElement('ItemGroup')
root.appendChild(node_item_group)
props.SetSubSystem(props.SUBSYSTEM_WIN)
# write macro and misc
# build type distinguish macro
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_VER', virtools_ver)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_BUILD_TYPE', virtools_build_type)
props.AddMacro('VIRTOOLS_VER', virtools_ver)
props.AddMacro('VIRTOOLS_BUILD_TYPE', virtools_build_type)
# header and libs
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_HEADER_PATH', virtools_header_path)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_LIB_PATH', virtools_lib_path)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_LIB_FILENAME', virtools_attached_lib)
write_macro(dom, node_property_group, node_item_group, 'SQLITE_HEADER_PATH', sqlite_header_path)
write_macro(dom, node_property_group, node_item_group, 'SQLITE_LIB_PATH', sqlite_lib_path)
write_macro(dom, node_property_group, node_item_group, 'SQLITE_LIB_FILENAME', sqlite_lib_filename)
props.AddMacro('VIRTOOLS_HEADER_PATH', virtools_header_path)
props.AddMacro('VIRTOOLS_LIB_PATH', virtools_lib_path)
props.AddMacro('VIRTOOLS_LIB_FILENAME', virtools_attached_lib)
props.AddMacro('SQLITE_HEADER_PATH', sqlite_header_path)
props.AddMacro('SQLITE_LIB_PATH', sqlite_lib_path)
props.AddMacro('SQLITE_LIB_FILENAME', sqlite_lib_filename)
# output and debug
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_OUTPUT_PATH', virtools_output_path)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_DEBUG_TARGET', virtools_debug_target)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_DEBUG_ROOT', virtools_debug_root)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_DEBUG_COMMANDLINE', virtools_debug_commandline)
props.AddMacro('VIRTOOLS_OUTPUT_PATH', virtools_output_path)
props.AddMacro('VIRTOOLS_DEBUG_TARGET', virtools_debug_target)
props.AddMacro('VIRTOOLS_DEBUG_ROOT', virtools_debug_root)
props.AddMacro('VIRTOOLS_DEBUG_COMMANDLINE', virtools_debug_commandline)
# essential build macro
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_STD_MACRO', virtools_std_macro)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_EXTRA_MACRO', virtools_extra_macro)
props.AddMacro('VIRTOOLS_STD_MACRO', virtools_std_macro)
props.AddMacro('VIRTOOLS_EXTRA_MACRO', virtools_extra_macro)
# misc macro
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_BUILD_SUFFIX', virtools_build_suffix)
write_macro(dom, node_property_group, node_item_group, 'VIRTOOLS_MODULE_DEFINE', virtools_module_define)
props.AddMacro('VIRTOOLS_BUILD_SUFFIX', virtools_build_suffix)
props.AddMacro('VIRTOOLS_MODULE_DEFINE', virtools_module_define)
# ======================== write extra compile
# output
props.Write2File('./SuperScriptMaterializer/Virtools.props')
vcxproj.Write2File()
# if we using gamepiaynmp vt21 reverse work
# we need add all his cpp file into our compile list
# ======================== create vt21 props
# if we are using virtools 2.1. and we use gamepiaynmo as our
# reverse library. we need enable project GPVirtoolsStatic and
# add some macro for it
if input_virtools_version == '21' and input_vt21_reverse_work_type == 'gamepiaynmo':
header_item_group = dom.createElement('ItemGroup')
cpp_item_group = dom.createElement('ItemGroup')
bml_virtools_path = os.path.join(input_vt21_reverse_work_path, 'virtools')
for folderName, subfolders, filenames in os.walk(bml_virtools_path):
for filename in filenames:
write_cl(dom, header_item_group, cpp_item_group, os.path.join(folderName, filename))
root.appendChild(header_item_group)
root.appendChild(cpp_item_group)
# ======================== output
with open('./SuperScriptMaterializer/Virtools.props', 'w', encoding='utf-8') as f:
dom.writexml(f, addindent='\t', newl='\n', encoding='utf-8')
# ======================== modify .vcxproj
# due to build chain v100 shit design, this configuration onlt can be modified in .vcxproj
if input_build_type == build_type_standalone:
vcxproj_build_type = 'Application'
elif input_build_type == build_type_plugin:
vcxproj_build_type = 'DynamicLibrary'
vcxproj = minidom.parse('./SuperScriptMaterializer/SuperScriptMaterializer.vcxproj')
node_project = vcxproj.documentElement
for item in node_project.getElementsByTagName('PropertyGroup'):
attr_label = item.getAttribute('Label')
attr_condition = item.getAttribute('Condition')
if attr_label == 'Configuration' and (attr_condition == "'$(Configuration)|$(Platform)'=='Debug|Win32'" or attr_condition == "'$(Configuration)|$(Platform)'=='Release|Win32'"):
# valid node
node_cfg_type = item.getElementsByTagName('ConfigurationType')
if len(node_cfg_type) != 0:
# have node, change it
node_cfg_type[0].childNodes[0].nodeValue = vcxproj_build_type
else:
# don't have node, add one
node_cfg_type = vcxproj.createElement('ConfigurationType')
node_cfg_type.appendChild(vcxproj.createTextNode(vcxproj_build_type))
item.appendChild(node_cfg_type)
with open('./SuperScriptMaterializer/SuperScriptMaterializer.vcxproj', 'w', encoding='utf-8') as f:
vcxproj.writexml(f, encoding='utf-8')
gp_props = VSProp.VSPropWriter()
gp_props.AddMacro('BML_REPOSITORY', input_vt21_reverse_work_path)
gp_props.Write2File('./GPVirtoolsStatic/Virtools.props')
print("OK!")

127
Scripts/VSProp.py Normal file
View File

@ -0,0 +1,127 @@
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')

View File

@ -9,6 +9,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SuperScriptMaterializer", "
EndProject
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "SuperScriptViewer", "SuperScriptViewer\SuperScriptViewer.pyproj", "{0E4B5021-27EA-4F79-B87D-E123AFB3D788}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GPVirtoolsStatic", "GPVirtoolsStatic\GPVirtoolsStatic.vcxproj", "{38703AB6-BC5D-4062-BC5B-1BF195333B16}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -31,6 +33,12 @@ Global
{0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Debug|x86.ActiveCfg = Debug|Any CPU
{0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E4B5021-27EA-4F79-B87D-E123AFB3D788}.Release|x86.ActiveCfg = Release|Any CPU
{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Debug|Any CPU.ActiveCfg = Debug|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|Any CPU.ActiveCfg = Release|Win32
{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Release|x86.ActiveCfg = Release|Win32
{38703AB6-BC5D-4062-BC5B-1BF195333B16}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<?xml version="1.0" encoding="utf-8"?><Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
@ -18,19 +17,17 @@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PlatformToolset>v100</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<ConfigurationType>Application</ConfigurationType></PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v100</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<ConfigurationType>Application</ConfigurationType></PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@ -68,6 +65,7 @@
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<FunctionLevelLinking>true</FunctionLevelLinking>
<DisableSpecificWarnings>4819;4996</DisableSpecificWarnings>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<OutputFile>$(VIRTOOLS_OUTPUT_PATH)SuperScriptMaterializer.$(VIRTOOLS_BUILD_SUFFIX)</OutputFile>
@ -90,12 +88,12 @@
<SDLCheck>
</SDLCheck>
<ConformanceMode>false</ConformanceMode>
<LanguageStandard>Default</LanguageStandard>
<AdditionalIncludeDirectories>$(VIRTOOLS_HEADER_PATH);$(SQLITE_HEADER_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;$(VIRTOOLS_VER);$(VIRTOOLS_STD_MACRO);$(VIRTOOLS_EXTRA_MACRO);VX_MEM_RELEASE;_RELEASE;$(VIRTOOLS_BUILD_TYPE);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<DisableSpecificWarnings>4819;4996</DisableSpecificWarnings>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>