void WriteProjectConfigurationName(ProjectConfiguration conf) { Write(conf.IsDebug ? "Debug " : "Release "); Write(conf.Name); }
void OutputProjectConfiguration(ProjectConfiguration conf, bool x64) { if (targetVS == TargetVS.VS2008) { WriteLine("\t\t<Configuration"); Write("\t\t\tName=\""); WriteProjectConfigurationName(conf); WriteLine(x64 ? "|x64\"" : "|Win32\""); WriteLine("\t\t\tOutputDirectory=\"$(SolutionDir)$(ConfigurationName)\""); WriteLine("\t\t\tIntermediateDirectory=\"$(ConfigurationName)\""); WriteLine("\t\t\tConfigurationType=\"2\""); WriteLine("\t\t\tCharacterSet=\"1\""); WriteLine("\t\t\tManagedExtensions=\"1\""); if (!conf.IsDebug) { WriteLine("\t\t\tWholeProgramOptimization=\"1\""); } WriteLine("\t\t\t>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCPreBuildEventTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCCustomBuildTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCXMLDataGeneratorTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCWebServiceProxyGeneratorTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCMIDLTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCCLCompilerTool\""); if (conf.IsDebug) { WriteLine("\t\t\t\tOptimization=\"0\""); } else { WriteLine("\t\t\t\tInlineFunctionExpansion=\"2\""); //WriteLine("\t\t\t\tFavorSizeOrSpeed=\"2\""); WriteLine("\t\t\t\tFavorSizeOrSpeed=\"1\""); } if (!string.IsNullOrEmpty(IncludeDirectories)) { Write("\t\t\t\tAdditionalIncludeDirectories=\""); Write(IncludeDirectories); WriteLine("\""); } Write("\t\t\t\tAdditionalUsingDirectories=\""); Write(conf.UsingDirectories); WriteLine("\""); Write("\t\t\t\tPreprocessorDefinitions=\""); Write(conf.Definitions); if (!string.IsNullOrEmpty(conf.Definitions) && !conf.Definitions.EndsWith(";")) { Write(';'); } //if (!x64) { Write("WIN32;"); } Write(conf.IsDebug ? "_DEBUG;" : "NDEBUG;"); WriteLine("\""); if (conf.IsDebug) { WriteLine("\t\t\t\tRuntimeLibrary=\"3\""); } else { WriteLine("\t\t\t\tRuntimeLibrary=\"2\""); } WriteLine("\t\t\t\tFloatingPointModel=\"0\""); //WriteLine("\t\t\t\tEnableEnhancedInstructionSet=\"0\""); WriteLine("\t\t\t\tUsePrecompiledHeader=\"2\""); if (conf.IsDebug) { WriteLine("\t\t\t\tWarningLevel=\"3\""); WriteLine("\t\t\t\tDebugInformationFormat=\"3\""); WriteLine("\t\t\t\tDisableSpecificWarnings=\"4793\""); } else { WriteLine("\t\t\t\tWarningLevel=\"1\""); } WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCManagedResourceCompilerTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCResourceCompilerTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCPreLinkEventTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCLinkerTool\""); Write("\t\t\t\tAdditionalDependencies=\""); if (conf.IsDebug) { WriteLine("LinearMath_Debug.lib BulletCollision_Debug.lib BulletDynamics_Debug.lib\""); } else { WriteLine("LinearMath_MinSizeRel.lib BulletCollision_MinsizeRel.lib BulletDynamics_MinsizeRel.lib\""); } WriteLine("\t\t\t\tLinkIncremental=\"1\""); if (conf.IsDebug) { if (!string.IsNullOrEmpty(LibraryDirectoriesDebug)) { Write("\t\t\t\tAdditionalLibraryDirectories=\""); Write(LibraryDirectoriesDebug); WriteLine("\""); } WriteLine("\t\t\t\tGenerateDebugInformation=\"true\""); WriteLine("\t\t\t\tAssemblyDebug=\"1\""); } else { if (!string.IsNullOrEmpty(LibraryDirectoriesRelease)) { Write("\t\t\t\tAdditionalLibraryDirectories=\""); Write(LibraryDirectoriesRelease); WriteLine("\""); } WriteLine("\t\t\t\tGenerateDebugInformation=\"false\""); } WriteLine("\t\t\t\tTargetMachine=\"1\""); //WriteLine("\t\t\t\tCLRUnmanagedCodeCheck=\"true\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCALinkTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCManifestTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCXDCMakeTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCBscMakeTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCFxCopTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCAppVerifierTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t\t<Tool"); WriteLine("\t\t\t\tName=\"VCPostBuildEventTool\""); WriteLine("\t\t\t/>"); WriteLine("\t\t</Configuration>"); } else { Write(" <ProjectConfiguration Include=\""); WriteProjectConfigurationName(conf); WriteLine(x64 ? "|x64\">" : "|Win32\">"); Write(" <Configuration>"); WriteProjectConfigurationName(conf); WriteLine("</Configuration>"); Write(" <Platform>"); Write(x64 ? "x64" : "Win32"); WriteLine("</Platform>"); WriteLine(" </ProjectConfiguration>"); } }
void WriteProjectConfigurationNameSln(ProjectConfiguration conf) { WriteSln(conf.IsDebug ? "Debug " : "Release "); WriteSln(conf.Name); }
void OutputItemDefinitionGroup(ProjectConfiguration conf, bool x64) { Write(" <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='"); WriteProjectConfigurationName(conf); Write(x64 ? "|x64" : "|Win32"); WriteLine("'\">"); WriteLine(" <ClCompile>"); if (conf.IsDebug) { WriteLine(" <Optimization>Disabled</Optimization>"); } else { WriteLine(" <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>"); WriteLine(" <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>"); } if (!string.IsNullOrEmpty(IncludeDirectories)) { Write(" <AdditionalIncludeDirectories>"); Write(IncludeDirectories); WriteLine("%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>"); } Write(" <AdditionalUsingDirectories>"); Write(conf.UsingDirectories); if (!string.IsNullOrEmpty(conf.UsingDirectories) && !conf.UsingDirectories.EndsWith(";")) { Write(';'); } WriteLine("%(AdditionalUsingDirectories)</AdditionalUsingDirectories>"); Write(" <PreprocessorDefinitions>"); Write(conf.Definitions); if (!string.IsNullOrEmpty(conf.Definitions) && !conf.Definitions.EndsWith(";")) { Write(';'); } //if (!x64) { Write("WIN32;"); } Write(conf.IsDebug ? "_DEBUG;" : "NDEBUG;"); WriteLine("%(PreprocessorDefinitions)</PreprocessorDefinitions>"); if (conf.IsDebug) { WriteLine(" <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>"); } else { WriteLine(" <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>"); WriteLine(" <BufferSecurityCheck>false</BufferSecurityCheck>"); } WriteLine(" <FloatingPointModel>Precise</FloatingPointModel>"); WriteLine(" <PrecompiledHeader>Use</PrecompiledHeader>"); if (conf.IsDebug) { WriteLine(" <WarningLevel>Level3</WarningLevel>"); WriteLine(" <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>"); WriteLine(" <DisableSpecificWarnings>4793;%(DisableSpecificWarnings)</DisableSpecificWarnings>"); } else { WriteLine(" <WarningLevel>Level1</WarningLevel>"); } WriteLine(" </ClCompile>"); WriteLine(" <Link>"); if (conf.IsDebug) { WriteLine(" <AdditionalDependencies>LinearMath_Debug.lib;BulletCollision_Debug.lib;BulletDynamics_Debug.lib</AdditionalDependencies>"); if (!string.IsNullOrEmpty(LibraryDirectoriesDebug)) { Write(" <AdditionalLibraryDirectories>"); Write(LibraryDirectoriesDebug); WriteLine("%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>"); } WriteLine(" <GenerateDebugInformation>true</GenerateDebugInformation>"); WriteLine(" <AssemblyDebug>true</AssemblyDebug>"); } else { WriteLine(" <AdditionalDependencies>LinearMath_MinSizeRel.lib;BulletCollision_MinsizeRel.lib;BulletDynamics_MinsizeRel.lib</AdditionalDependencies>"); if (!string.IsNullOrEmpty(LibraryDirectoriesRelease)) { Write(" <AdditionalLibraryDirectories>"); Write(LibraryDirectoriesRelease); WriteLine("%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>"); } } if (!x64) { WriteLine(" <TargetMachine>MachineX86</TargetMachine>"); } //WriteLine(" <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>"); WriteLine(" </Link>"); WriteLine(" </ItemDefinitionGroup>"); }
void OutputPropertyGroupConfiguration2(ProjectConfiguration conf, bool x64) { Write(" <OutDir Condition=\"'$(Configuration)|$(Platform)'=='"); WriteProjectConfigurationName(conf); Write(x64 ? "|x64" : "|Win32"); WriteLine("'\">$(SolutionDir)$(Configuration)\\</OutDir>"); Write(" <IntDir Condition=\"'$(Configuration)|$(Platform)'=='"); WriteProjectConfigurationName(conf); Write(x64 ? "|x64" : "|Win32"); WriteLine("'\">$(Configuration)\\</IntDir>"); Write(" <LinkIncremental Condition=\"'$(Configuration)|$(Platform)'=='"); WriteProjectConfigurationName(conf); Write(x64 ? "|x64" : "|Win32"); WriteLine("'\">false</LinkIncremental>"); }
void OutputPropertyGroupConfiguration(ProjectConfiguration conf, bool x64) { Write(" <PropertyGroup Condition=\"\'$(Configuration)|$(Platform)'=='"); WriteProjectConfigurationName(conf); Write(x64 ? "|x64" : "|Win32"); WriteLine("'\" Label=\"Configuration\">"); WriteLine(" <ConfigurationType>DynamicLibrary</ConfigurationType>"); WriteLine(" <CharacterSet>Unicode</CharacterSet>"); WriteLine(" <CLRSupport>true</CLRSupport>"); if (conf.IsDebug) { if (targetVS == TargetVS.VS2012 || targetVS == TargetVS.VS2013) { WriteLine(" <UseDebugLibraries>true</UseDebugLibraries>"); } } else { WriteLine(" <WholeProgramOptimization>true</WholeProgramOptimization>"); } if (targetVS == TargetVS.VS2012) { WriteLine(" <PlatformToolset>v110</PlatformToolset>"); } else if (targetVS == TargetVS.VS2013) { WriteLine(" <PlatformToolset>v120</PlatformToolset>"); } WriteLine(" </PropertyGroup>"); }
void OutputImportGroupPropertySheets(ProjectConfiguration conf) { Write(" <ImportGroup Condition=\"'$(Configuration)|$(Platform)'=='"); WriteProjectConfigurationName(conf); Write(X64 ? "|x64" : "|Win32"); WriteLine("'\" Label=\"PropertySheets\">"); WriteLine(" <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />"); WriteLine(" </ImportGroup>"); }