// Copyright (c) Ubisoft. All Rights Reserved. // Licensed under the Apache 2.0 License. See LICENSE.md in the project root for license information. namespace Sharpmake { public static partial class Linux { public sealed partial class LinuxPlatform { private const string _projectStartPlatformConditional = @" "; private const string _projectConfigurationsCompileTemplate = @" [options.UsePrecompiledHeader] [EscapeXML:options.PreprocessorDefinitions];%(PreprocessorDefinitions); [options.ForcedIncludeFiles] [options.DebugInformationFormat] [options.Warnings] [options.ExtraWarnings] [options.WarningsAsErrors] [options.MultiProcessorCompilation] [options.ProcessorNumber] [options.Distributable] [options.OptimizationLevel] [options.PositionIndependentCode] [options.FastMath] [options.NoStrictAliasing] [options.UnrollLoops] [options.AnsiCompliance] [options.CharUnsigned] [options.MsExtensions] [options.RuntimeTypeInfo] [options.AdditionalIncludeDirectories] [options.AllAdditionalCompilerOptions] %(AdditionalOptions) [options.PrecompiledHeaderThrough] [options.PrecompiledHeaderFile] Default [options.LinkTimeOptimization] [options.InlineFunctionDebugInformation] "; private const string _projectConfigurationsStaticLinkTemplate = @" [options.LinkerGenerateDebugInformation] [options.EnableCOMDATFolding] [options.OptimizeReferences] [options.TargetMachine] [options.AdditionalLibrarianOptions] [options.OutputFile] [options.UseThinArchives] "; private const string _projectConfigurationsLinkTemplate = @" [options.OutputFile] [options.AdditionalLibraryDirectories] [options.AdditionalLinkerOptions] %(AdditionalOptions) [options.AdditionalDependencies];%(AdditionalDependencies) [options.GenerateMapFile] [options.MapFileName] [options.EditAndContinue] [options.InfoStripping] [options.DataStripping] [options.WholeArchive] [options.DuplicateStripping] [options.Addressing] "; private const string _userFileConfigurationGeneralTemplate = @" [conf.VcxprojUserFile.LocalDebuggerCommand] [conf.VcxprojUserFile.LocalDebuggerCommandArguments] [conf.VcxprojUserFile.LocalDebuggerWorkingDirectory] [conf.VcxprojUserFile.LocalDebuggerAttachString] [conf.VcxprojUserFile.PreLaunchCommand] [conf.VcxprojUserFile.RemoteDebuggerCommand] [conf.VcxprojUserFile.RemoteDebuggerCommandArguments] [conf.VcxprojUserFile.RemoteDebuggingMode] [conf.VcxprojUserFile.RemoteDebuggerWorkingDirectory] [conf.AdditionalDebuggerCommands] LinuxDebugger "; private const string _projectConfigurationsGeneral2 = @" [options.OutputFileName] [options.OutputDirectoryRemote] [options.IntermediateDirectoryRemote] [options.OutputFileExtension] [options.GenerateManifest] [options.PostBuildEventEnable] [options.PreBuildEventEnable] [options.PreLinkEventEnable] [options.LinkIncremental] [options.OutputFile] [options.CustomBuildStepBeforeTargets] [options.CustomBuildStepAfterTargets] $(TargetDir) [options.RemoteCppCompileToolExe] [options.RemoteCCompileToolExe] [options.RemoteLdToolExe] [options.CopySources] false [options.ProjectDirectory] [options.RemoteBuildOutputs] "; private const string _projectConfigurationsFastBuildMakefile = @" [options.OutputFileName] $(TargetDir) [options.ProjectDirectory] [options.RemoteBuildOutputs] [options.OutputDirectoryRemote] [options.IntermediateDirectoryRemote] cd [fastBuildWorkingDirectory] [conf.FastBuildCustomActionsBeforeBuildCommand] [fastBuildMakeCommandBuild] cd [fastBuildWorkingDirectory] [conf.FastBuildCustomActionsBeforeBuildCommand] [fastBuildMakeCommandRebuild] [options.CopySources] del ""[options.IntermediateDirectory]\*unity*.cpp"" >NUL 2>NUL del ""[options.IntermediateDirectory]\*.obj"" >NUL 2>NUL del ""[options.IntermediateDirectory]\*.a"" >NUL 2>NUL del ""[options.IntermediateDirectory]\*.lib"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName].exe"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName].elf"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName].exp"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName].ilk"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName].lib"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName].pdb"" >NUL 2>NUL del ""[options.OutputDirectory]\[conf.TargetFileFullName]"" >NUL 2>NUL $(NMakeIncludeSearchPath);[options.AdditionalPlatformIncludeDirectories] [options.CLanguageStandard] [options.CppLanguageStandard] "; private const string _projectDescriptionPlatformSpecific = @" [applicationType] [applicationTypeRevision] [targetLinuxPlatform] "; } } }