From 257106d840a8cddb20938675fffb5bfd38eb8f39 Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Thu, 19 Oct 2023 20:25:23 +0900 Subject: [PATCH 01/16] - Support UnityBuild --- .../VisualStudio/ProjectOptionsGenerator.cs | 10 ++++++++++ .../BasePlatform.Vcxproj.Template.cs | 9 ++++++++- Sharpmake/Options.Vc.cs | 14 ++++++++++++++ Sharpmake/Project.Configuration.cs | 3 +++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs index b8038237e..9d7f981ea 100644 --- a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs +++ b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs @@ -1052,6 +1052,16 @@ private void GenerateCompilerOptions(IGenerationContext context, ProjectOptionsG Options.Option(Options.Vc.Compiler.EnableAsan.Enable, () => { context.Options["EnableASAN"] = "true"; context.CommandLineOptions["EnableASAN"] = "/fsanitize=address"; }) ); + context.SelectOption + ( + Options.Option(Options.Vc.Compiler.JumboBuild.Disable, () => { context.Options["JumboBuild"] = FileGeneratorUtilities.RemoveLineTag; context.Options["MaxFilesPerUnityFile"] = FileGeneratorUtilities.RemoveLineTag; }), + Options.Option(Options.Vc.Compiler.JumboBuild.Enable, () => + { + context.Options["JumboBuild"] = "true"; + context.Options["MaxFilesPerUnityFile"] = context.Configuration.MaxFilesPerUnityFile.ToString(); + }) + ); + if (context.DevelopmentEnvironment.IsVisualStudio() && context.DevelopmentEnvironment >= DevEnv.vs2017) { //Options.Vc.Compiler.DefineCPlusPlus. See: https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ diff --git a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs index 6d25d52b7..373977521 100644 --- a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs +++ b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs @@ -180,7 +180,14 @@ public abstract partial class BasePlatform [options.WindowsTargetPlatformVersion] [options.SpectreMitigation] [options.EnableASAN] - + [options.JumboBuild] + True + [options.MaxFilesPerUnityFile] + 2> + 1 + 100 + . + "; private const string _projectConfigurationsGeneral2 = diff --git a/Sharpmake/Options.Vc.cs b/Sharpmake/Options.Vc.cs index f2f776fb8..86adebad3 100644 --- a/Sharpmake/Options.Vc.cs +++ b/Sharpmake/Options.Vc.cs @@ -1348,6 +1348,20 @@ public enum EnableAsan [DevEnvVersion(minimum = DevEnv.vs2019)] Enable } + + /// + /// Enable Jumbo/Unity builds + /// + /// + /// Merges multiple translation units together + /// + public enum JumboBuild + { + [Default] + Disable, + [DevEnvVersion(minimum = DevEnv.vs2019)] + Enable + } } public static class CodeAnalysis diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index 49481db24..d98047456 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -1605,6 +1605,9 @@ public string FastBuildUnityPath /// public bool DoNotGenerateFastBuild = false; + // Unity builds support + public int MaxFilesPerUnityFile = 0; + // container for executable /// /// Represents a build step that invokes an executable on the file system. From d853a5f5b6ce3f8213cfe45031b5ba4942b20265 Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Thu, 19 Oct 2023 20:54:26 +0900 Subject: [PATCH 02/16] - fix for regression_test --- .../VisualStudio/ProjectOptionsGenerator.cs | 10 ++++++++++ .../BasePlatform.Vcxproj.Template.cs | 2 ++ Sharpmake/Options.Vc.cs | 14 ++++++++++++++ Sharpmake/Project.Configuration.cs | 3 +++ 4 files changed, 29 insertions(+) diff --git a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs index b8038237e..9d7f981ea 100644 --- a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs +++ b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs @@ -1052,6 +1052,16 @@ private void GenerateCompilerOptions(IGenerationContext context, ProjectOptionsG Options.Option(Options.Vc.Compiler.EnableAsan.Enable, () => { context.Options["EnableASAN"] = "true"; context.CommandLineOptions["EnableASAN"] = "/fsanitize=address"; }) ); + context.SelectOption + ( + Options.Option(Options.Vc.Compiler.JumboBuild.Disable, () => { context.Options["JumboBuild"] = FileGeneratorUtilities.RemoveLineTag; context.Options["MaxFilesPerUnityFile"] = FileGeneratorUtilities.RemoveLineTag; }), + Options.Option(Options.Vc.Compiler.JumboBuild.Enable, () => + { + context.Options["JumboBuild"] = "true"; + context.Options["MaxFilesPerUnityFile"] = context.Configuration.MaxFilesPerUnityFile.ToString(); + }) + ); + if (context.DevelopmentEnvironment.IsVisualStudio() && context.DevelopmentEnvironment >= DevEnv.vs2017) { //Options.Vc.Compiler.DefineCPlusPlus. See: https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ diff --git a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs index 6d25d52b7..f34504741 100644 --- a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs +++ b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs @@ -180,6 +180,8 @@ public abstract partial class BasePlatform [options.WindowsTargetPlatformVersion] [options.SpectreMitigation] [options.EnableASAN] + [options.JumboBuild] + [options.MaxFilesPerUnityFile] "; diff --git a/Sharpmake/Options.Vc.cs b/Sharpmake/Options.Vc.cs index f2f776fb8..86adebad3 100644 --- a/Sharpmake/Options.Vc.cs +++ b/Sharpmake/Options.Vc.cs @@ -1348,6 +1348,20 @@ public enum EnableAsan [DevEnvVersion(minimum = DevEnv.vs2019)] Enable } + + /// + /// Enable Jumbo/Unity builds + /// + /// + /// Merges multiple translation units together + /// + public enum JumboBuild + { + [Default] + Disable, + [DevEnvVersion(minimum = DevEnv.vs2019)] + Enable + } } public static class CodeAnalysis diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index 49481db24..d98047456 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -1605,6 +1605,9 @@ public string FastBuildUnityPath /// public bool DoNotGenerateFastBuild = false; + // Unity builds support + public int MaxFilesPerUnityFile = 0; + // container for executable /// /// Represents a build step that invokes an executable on the file system. From 11408392cabdec8f51a98d4b6e023000562fa81f Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Wed, 1 Nov 2023 11:17:09 +0900 Subject: [PATCH 03/16] =?UTF-8?q?-=20development=20=EB=93=B1=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Properties/launchSettings.json | 317 +++++++++--------- .../Sharpmake.Application.csproj | 8 + Sharpmake/Project.Configuration.cs | 6 +- Sharpmake/Project.cs | 4 +- Sharpmake/Target.cs | 31 ++ 5 files changed, 200 insertions(+), 166 deletions(-) diff --git a/Sharpmake.Application/Properties/launchSettings.json b/Sharpmake.Application/Properties/launchSettings.json index 463c0e209..4d15c9d58 100644 --- a/Sharpmake.Application/Properties/launchSettings.json +++ b/Sharpmake.Application/Properties/launchSettings.json @@ -1,164 +1,157 @@ { - "profiles": { - // Samples - "Sample (CompileCommandDatabase)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CompileCommandDatabase.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CompileCommandDatabase" - }, - "Sample (ConfigureOrder)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\ConfigureOrder" - }, - "Sample (CPPCLI)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CLRTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CPPCLI" - }, - "Sample (CSharpHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpHelloWorld" - }, - "Sample (CSharpImports)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CSharpImports.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpImports" - }, - "Sample (CSharpVsix)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CSharpVsix.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpVsix" - }, - "Sample (CSharpWCF)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CSharpWCF.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpWCF" - }, - "Sample (CustomBuildStep)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CustomBuildStep.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CustomBuildStep" - }, - "Sample (FastBuildSimpleExecutable)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027FastBuildSimpleExecutable.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\FastBuildSimpleExecutable" - }, - "Sample (HelloAndroid)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloAndroid.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroid" - }, - "Sample (HelloAndroidAgde)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloAndroidAgde.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroidAgde" - }, - "Sample (HelloClangCl)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloClangCl.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloClangCl" - }, - "Sample (HelloEvents)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloEvents.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloEvents" - }, - "Sample (HelloLinux)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloLinux.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloLinux" - }, - "Sample (HelloRust)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloRust.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloRust" - }, - "Sample (HelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloWorld" - }, - "Sample (HelloXCode)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloXCode.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloXCode" - }, - "Sample (NetCore/DotNetCoreFrameworkHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetCoreFrameworkHelloWorld" - }, - "Sample (NetCore/DotNetFrameworkHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetFrameworkHelloWorld" - }, - "Sample (NetCore/DotNetMultiFrameworksHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetMultiFrameworksHelloWorld" - }, - "Sample (NetCore/DotNetOSMultiFrameworksHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetOSMultiFrameworksHelloWorld" - }, - "Sample (PackageReferences)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027PackageReferences.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\PackageReferences" - }, - "Sample (QTFileCustomBuild)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027QTFileCustomBuild.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\QTFileCustomBuild" - }, - "Sample (SimpleExeLibDependency)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027SimpleExeLibDependency.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\SimpleExeLibDependency" - }, - "Sample (vcpkg)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\vcpkg\\sharpmake" - }, - - // FunctionalTest - "FunctionalTest (FastBuildFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027FastBuildFunctionalTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\FastBuildFunctionalTest" - }, - "FunctionalTest (NoAllFastBuildProjectFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027NoAllFastBuildProjectFunctionalTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\NoAllFastBuildProjectFunctionalTest" - }, - "FunctionalTest (OnlyNeededFastBuildTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027OnlyNeededFastBuildTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\OnlyNeededFastBuildTest" - }, - "FunctionalTest (SharpmakePackageFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027SharpmakePackageFunctionalTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\SharpmakePackageFunctionalTest" - }, - - // Python scripts - "FunctionalTest (functional_test.py)": { - "commandName": "Executable", - "executablePath": "python", - "commandLineArgs": "$(ProjectDir)\\..\\functional_test.py" - }, - "FunctionalTest (regression_test.py)": { - "commandName": "Executable", - "executablePath": "python", - "commandLineArgs": "$(ProjectDir)\\..\\regression_test.py" - } + "profiles": { + "Sample (CompileCommandDatabase)": { + "commandName": "Project" + }, + "Sample (ConfigureOrder)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\ConfigureOrder" + }, + "Sample (CPPCLI)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CLRTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CPPCLI" + }, + "Sample (CSharpHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpHelloWorld" + }, + "Sample (CSharpImports)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CSharpImports.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpImports" + }, + "Sample (CSharpVsix)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CSharpVsix.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpVsix" + }, + "Sample (CSharpWCF)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CSharpWCF.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpWCF" + }, + "Sample (CustomBuildStep)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CustomBuildStep.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CustomBuildStep" + }, + "Sample (FastBuildSimpleExecutable)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'FastBuildSimpleExecutable.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\FastBuildSimpleExecutable" + }, + "Sample (HelloAndroid)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloAndroid.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroid" + }, + "Sample (HelloAndroidAgde)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloAndroidAgde.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroidAgde" + }, + "Sample (HelloClangCl)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloClangCl.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloClangCl" + }, + "Sample (HelloEvents)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloEvents.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloEvents" + }, + "Sample (HelloLinux)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloLinux.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloLinux" + }, + "Sample (HelloRust)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloRust.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloRust" + }, + "Sample (HelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloWorld" + }, + "Sample (HelloXCode)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloXCode.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloXCode" + }, + "Sample (NetCore/DotNetCoreFrameworkHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetCoreFrameworkHelloWorld" + }, + "Sample (NetCore/DotNetFrameworkHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetFrameworkHelloWorld" + }, + "Sample (NetCore/DotNetMultiFrameworksHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetMultiFrameworksHelloWorld" + }, + "Sample (NetCore/DotNetOSMultiFrameworksHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetOSMultiFrameworksHelloWorld" + }, + "Sample (PackageReferences)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'PackageReferences.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\PackageReferences" + }, + "Sample (QTFileCustomBuild)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'QTFileCustomBuild.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\QTFileCustomBuild" + }, + "Sample (SimpleExeLibDependency)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'SimpleExeLibDependency.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\SimpleExeLibDependency" + }, + "Sample (vcpkg)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\vcpkg\\sharpmake" + }, + "FunctionalTest (FastBuildFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('FastBuildFunctionalTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\FastBuildFunctionalTest" + }, + "FunctionalTest (NoAllFastBuildProjectFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('NoAllFastBuildProjectFunctionalTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\NoAllFastBuildProjectFunctionalTest" + }, + "FunctionalTest (OnlyNeededFastBuildTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('OnlyNeededFastBuildTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\OnlyNeededFastBuildTest" + }, + "FunctionalTest (SharpmakePackageFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('SharpmakePackageFunctionalTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\SharpmakePackageFunctionalTest" + }, + "FunctionalTest (functional_test.py)": { + "commandName": "Executable", + "executablePath": "python", + "commandLineArgs": "$(ProjectDir)\\..\\functional_test.py" + }, + "FunctionalTest (regression_test.py)": { + "commandName": "Executable", + "executablePath": "python", + "commandLineArgs": "$(ProjectDir)\\..\\regression_test.py" } -} + } +} \ No newline at end of file diff --git a/Sharpmake.Application/Sharpmake.Application.csproj b/Sharpmake.Application/Sharpmake.Application.csproj index 197c981ee..93bacf441 100644 --- a/Sharpmake.Application/Sharpmake.Application.csproj +++ b/Sharpmake.Application/Sharpmake.Application.csproj @@ -35,5 +35,13 @@ True + + full + + + + full + + diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index d98047456..355e3e799 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -2479,11 +2479,13 @@ public bool DefaultAddFastBuildProjectToSolution() private Dictionary, DependencySetting> _dependenciesSetting = new Dictionary, DependencySetting>(); // These dependencies will not be propagated to other projects that depend on us - internal IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); + //internal IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); // hbkim + public IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); // These dependencies will be propagated to other dependent projects, but not across dll dependencies. internal IDictionary UnResolvedProtectedDependencies { get; } = new Dictionary(); // These dependencies are always propagated to other dependent projects. - internal Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); + //internal Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); // hbkim + public Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); private Strings _resolvedTargetCopyFiles = new Strings(); diff --git a/Sharpmake/Project.cs b/Sharpmake/Project.cs index 240fd9202..878a6cedb 100644 --- a/Sharpmake/Project.cs +++ b/Sharpmake/Project.cs @@ -102,8 +102,8 @@ public string GuidReferencePath public Strings PreFilterSourceFiles { get { return _preFilterSourceFiles; } } - public Strings SourceFilesExtensions = new Strings(".cpp", ".c", ".cc", ".h", ".inl", ".hpp", ".hh", ".asm");// All files under SourceRootPath are evaluated, if match found, it will be added to SourceFiles - public Strings SourceFilesCompileExtensions = new Strings(".cpp", ".cc", ".c", ".asm"); // File that match this regex compile + public Strings SourceFilesExtensions = new Strings(".cpp", ".c", ".cc", ".h", ".inl", ".hpp", ".hh", ".asm", ".ixx");// All files under SourceRootPath are evaluated, if match found, it will be added to SourceFiles + public Strings SourceFilesCompileExtensions = new Strings(".cpp", ".cc", ".c", ".asm", ".ixx"); // File that match this regex compile public Strings SourceFilesCPPExtensions = new Strings(".cpp", ".cc"); public Strings SourceFilesFilters = null; // if != null, include only file in this filter diff --git a/Sharpmake/Target.cs b/Sharpmake/Target.cs index 500e922a2..a5653b0d0 100644 --- a/Sharpmake/Target.cs +++ b/Sharpmake/Target.cs @@ -7,6 +7,8 @@ using System.Diagnostics; using System.Linq; using System.Reflection; +using static Sharpmake.EngineTarget; +using static Sharpmake.Target; namespace Sharpmake { @@ -248,6 +250,7 @@ public enum KitsRootEnum KitsRoot10 } + // Default Target, user may define its own if needed public class Target : ITarget { @@ -287,6 +290,34 @@ public Target( } } + [Fragment, Flags] + public enum ELaunchType + { + Editor = 1 << 0, + Client = 1 << 1, + Server = 1 << 2 + } + + public class EngineTarget : Target + { + public ELaunchType LaunchType; + + public EngineTarget() { } + public EngineTarget( + ELaunchType launchType, + Platform platform, + DevEnv devEnv, + Optimization optimization, + OutputType outputType = OutputType.Lib, + Blob blob = Blob.NoBlob, + BuildSystem buildSystem = BuildSystem.MSBuild, + DotNetFramework framework = DotNetFramework.v3_5) + : base(platform, devEnv, optimization, outputType, blob, buildSystem, framework) + { + LaunchType = launchType; //ELaunchType.Editor | ELaunchType.Client | ELaunchType.Server; + } + } + public abstract class ITarget : IComparable { public override string ToString() From 4def5eae6692f3834ca225259336295180222544 Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Wed, 1 Nov 2023 22:13:35 +0900 Subject: [PATCH 04/16] - remove --- .../Properties/launchSettings.json | 317 +++++++++--------- .../Sharpmake.Application.csproj | 8 + Sharpmake/Project.Configuration.cs | 6 +- Sharpmake/Project.cs | 4 +- Sharpmake/Target.cs | 31 ++ 5 files changed, 200 insertions(+), 166 deletions(-) diff --git a/Sharpmake.Application/Properties/launchSettings.json b/Sharpmake.Application/Properties/launchSettings.json index 463c0e209..4d15c9d58 100644 --- a/Sharpmake.Application/Properties/launchSettings.json +++ b/Sharpmake.Application/Properties/launchSettings.json @@ -1,164 +1,157 @@ { - "profiles": { - // Samples - "Sample (CompileCommandDatabase)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CompileCommandDatabase.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CompileCommandDatabase" - }, - "Sample (ConfigureOrder)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\ConfigureOrder" - }, - "Sample (CPPCLI)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CLRTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CPPCLI" - }, - "Sample (CSharpHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpHelloWorld" - }, - "Sample (CSharpImports)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CSharpImports.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpImports" - }, - "Sample (CSharpVsix)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CSharpVsix.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpVsix" - }, - "Sample (CSharpWCF)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CSharpWCF.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpWCF" - }, - "Sample (CustomBuildStep)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027CustomBuildStep.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CustomBuildStep" - }, - "Sample (FastBuildSimpleExecutable)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027FastBuildSimpleExecutable.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\FastBuildSimpleExecutable" - }, - "Sample (HelloAndroid)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloAndroid.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroid" - }, - "Sample (HelloAndroidAgde)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloAndroidAgde.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroidAgde" - }, - "Sample (HelloClangCl)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloClangCl.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloClangCl" - }, - "Sample (HelloEvents)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloEvents.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloEvents" - }, - "Sample (HelloLinux)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloLinux.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloLinux" - }, - "Sample (HelloRust)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloRust.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloRust" - }, - "Sample (HelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloWorld" - }, - "Sample (HelloXCode)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloXCode.Main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloXCode" - }, - "Sample (NetCore/DotNetCoreFrameworkHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetCoreFrameworkHelloWorld" - }, - "Sample (NetCore/DotNetFrameworkHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetFrameworkHelloWorld" - }, - "Sample (NetCore/DotNetMultiFrameworksHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetMultiFrameworksHelloWorld" - }, - "Sample (NetCore/DotNetOSMultiFrameworksHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetOSMultiFrameworksHelloWorld" - }, - "Sample (PackageReferences)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027PackageReferences.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\PackageReferences" - }, - "Sample (QTFileCustomBuild)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027QTFileCustomBuild.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\QTFileCustomBuild" - }, - "Sample (SimpleExeLibDependency)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027SimpleExeLibDependency.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\SimpleExeLibDependency" - }, - "Sample (vcpkg)": { - "commandName": "Project", - "commandLineArgs": "/sources(@\u0027main.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\samples\\vcpkg\\sharpmake" - }, - - // FunctionalTest - "FunctionalTest (FastBuildFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027FastBuildFunctionalTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\FastBuildFunctionalTest" - }, - "FunctionalTest (NoAllFastBuildProjectFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027NoAllFastBuildProjectFunctionalTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\NoAllFastBuildProjectFunctionalTest" - }, - "FunctionalTest (OnlyNeededFastBuildTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027OnlyNeededFastBuildTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\OnlyNeededFastBuildTest" - }, - "FunctionalTest (SharpmakePackageFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources(\u0027SharpmakePackageFunctionalTest.sharpmake.cs\u0027)", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\SharpmakePackageFunctionalTest" - }, - - // Python scripts - "FunctionalTest (functional_test.py)": { - "commandName": "Executable", - "executablePath": "python", - "commandLineArgs": "$(ProjectDir)\\..\\functional_test.py" - }, - "FunctionalTest (regression_test.py)": { - "commandName": "Executable", - "executablePath": "python", - "commandLineArgs": "$(ProjectDir)\\..\\regression_test.py" - } + "profiles": { + "Sample (CompileCommandDatabase)": { + "commandName": "Project" + }, + "Sample (ConfigureOrder)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\ConfigureOrder" + }, + "Sample (CPPCLI)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CLRTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CPPCLI" + }, + "Sample (CSharpHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpHelloWorld" + }, + "Sample (CSharpImports)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CSharpImports.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpImports" + }, + "Sample (CSharpVsix)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CSharpVsix.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpVsix" + }, + "Sample (CSharpWCF)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CSharpWCF.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpWCF" + }, + "Sample (CustomBuildStep)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'CustomBuildStep.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CustomBuildStep" + }, + "Sample (FastBuildSimpleExecutable)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'FastBuildSimpleExecutable.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\FastBuildSimpleExecutable" + }, + "Sample (HelloAndroid)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloAndroid.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroid" + }, + "Sample (HelloAndroidAgde)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloAndroidAgde.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroidAgde" + }, + "Sample (HelloClangCl)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloClangCl.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloClangCl" + }, + "Sample (HelloEvents)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloEvents.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloEvents" + }, + "Sample (HelloLinux)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloLinux.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloLinux" + }, + "Sample (HelloRust)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloRust.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloRust" + }, + "Sample (HelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloWorld" + }, + "Sample (HelloXCode)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloXCode.Main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloXCode" + }, + "Sample (NetCore/DotNetCoreFrameworkHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetCoreFrameworkHelloWorld" + }, + "Sample (NetCore/DotNetFrameworkHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetFrameworkHelloWorld" + }, + "Sample (NetCore/DotNetMultiFrameworksHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetMultiFrameworksHelloWorld" + }, + "Sample (NetCore/DotNetOSMultiFrameworksHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetOSMultiFrameworksHelloWorld" + }, + "Sample (PackageReferences)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'PackageReferences.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\PackageReferences" + }, + "Sample (QTFileCustomBuild)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'QTFileCustomBuild.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\QTFileCustomBuild" + }, + "Sample (SimpleExeLibDependency)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'SimpleExeLibDependency.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\SimpleExeLibDependency" + }, + "Sample (vcpkg)": { + "commandName": "Project", + "commandLineArgs": "/sources(@'main.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\samples\\vcpkg\\sharpmake" + }, + "FunctionalTest (FastBuildFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('FastBuildFunctionalTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\FastBuildFunctionalTest" + }, + "FunctionalTest (NoAllFastBuildProjectFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('NoAllFastBuildProjectFunctionalTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\NoAllFastBuildProjectFunctionalTest" + }, + "FunctionalTest (OnlyNeededFastBuildTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('OnlyNeededFastBuildTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\OnlyNeededFastBuildTest" + }, + "FunctionalTest (SharpmakePackageFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources('SharpmakePackageFunctionalTest.sharpmake.cs')", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\SharpmakePackageFunctionalTest" + }, + "FunctionalTest (functional_test.py)": { + "commandName": "Executable", + "executablePath": "python", + "commandLineArgs": "$(ProjectDir)\\..\\functional_test.py" + }, + "FunctionalTest (regression_test.py)": { + "commandName": "Executable", + "executablePath": "python", + "commandLineArgs": "$(ProjectDir)\\..\\regression_test.py" } -} + } +} \ No newline at end of file diff --git a/Sharpmake.Application/Sharpmake.Application.csproj b/Sharpmake.Application/Sharpmake.Application.csproj index 197c981ee..93bacf441 100644 --- a/Sharpmake.Application/Sharpmake.Application.csproj +++ b/Sharpmake.Application/Sharpmake.Application.csproj @@ -35,5 +35,13 @@ True + + full + + + + full + + diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index d98047456..355e3e799 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -2479,11 +2479,13 @@ public bool DefaultAddFastBuildProjectToSolution() private Dictionary, DependencySetting> _dependenciesSetting = new Dictionary, DependencySetting>(); // These dependencies will not be propagated to other projects that depend on us - internal IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); + //internal IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); // hbkim + public IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); // These dependencies will be propagated to other dependent projects, but not across dll dependencies. internal IDictionary UnResolvedProtectedDependencies { get; } = new Dictionary(); // These dependencies are always propagated to other dependent projects. - internal Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); + //internal Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); // hbkim + public Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); private Strings _resolvedTargetCopyFiles = new Strings(); diff --git a/Sharpmake/Project.cs b/Sharpmake/Project.cs index 240fd9202..878a6cedb 100644 --- a/Sharpmake/Project.cs +++ b/Sharpmake/Project.cs @@ -102,8 +102,8 @@ public string GuidReferencePath public Strings PreFilterSourceFiles { get { return _preFilterSourceFiles; } } - public Strings SourceFilesExtensions = new Strings(".cpp", ".c", ".cc", ".h", ".inl", ".hpp", ".hh", ".asm");// All files under SourceRootPath are evaluated, if match found, it will be added to SourceFiles - public Strings SourceFilesCompileExtensions = new Strings(".cpp", ".cc", ".c", ".asm"); // File that match this regex compile + public Strings SourceFilesExtensions = new Strings(".cpp", ".c", ".cc", ".h", ".inl", ".hpp", ".hh", ".asm", ".ixx");// All files under SourceRootPath are evaluated, if match found, it will be added to SourceFiles + public Strings SourceFilesCompileExtensions = new Strings(".cpp", ".cc", ".c", ".asm", ".ixx"); // File that match this regex compile public Strings SourceFilesCPPExtensions = new Strings(".cpp", ".cc"); public Strings SourceFilesFilters = null; // if != null, include only file in this filter diff --git a/Sharpmake/Target.cs b/Sharpmake/Target.cs index 500e922a2..a5653b0d0 100644 --- a/Sharpmake/Target.cs +++ b/Sharpmake/Target.cs @@ -7,6 +7,8 @@ using System.Diagnostics; using System.Linq; using System.Reflection; +using static Sharpmake.EngineTarget; +using static Sharpmake.Target; namespace Sharpmake { @@ -248,6 +250,7 @@ public enum KitsRootEnum KitsRoot10 } + // Default Target, user may define its own if needed public class Target : ITarget { @@ -287,6 +290,34 @@ public Target( } } + [Fragment, Flags] + public enum ELaunchType + { + Editor = 1 << 0, + Client = 1 << 1, + Server = 1 << 2 + } + + public class EngineTarget : Target + { + public ELaunchType LaunchType; + + public EngineTarget() { } + public EngineTarget( + ELaunchType launchType, + Platform platform, + DevEnv devEnv, + Optimization optimization, + OutputType outputType = OutputType.Lib, + Blob blob = Blob.NoBlob, + BuildSystem buildSystem = BuildSystem.MSBuild, + DotNetFramework framework = DotNetFramework.v3_5) + : base(platform, devEnv, optimization, outputType, blob, buildSystem, framework) + { + LaunchType = launchType; //ELaunchType.Editor | ELaunchType.Client | ELaunchType.Server; + } + } + public abstract class ITarget : IComparable { public override string ToString() From d36017d49b61f0b78b7d07f90375b24cb852da6b Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Wed, 1 Nov 2023 22:19:26 +0900 Subject: [PATCH 05/16] - reset --- .../Properties/launchSettings.json | 317 +++++++++--------- .../Sharpmake.Application.csproj | 8 - Sharpmake/Project.Configuration.cs | 6 +- Sharpmake/Project.cs | 4 +- Sharpmake/Target.cs | 31 -- 5 files changed, 166 insertions(+), 200 deletions(-) diff --git a/Sharpmake.Application/Properties/launchSettings.json b/Sharpmake.Application/Properties/launchSettings.json index 4d15c9d58..463c0e209 100644 --- a/Sharpmake.Application/Properties/launchSettings.json +++ b/Sharpmake.Application/Properties/launchSettings.json @@ -1,157 +1,164 @@ { - "profiles": { - "Sample (CompileCommandDatabase)": { - "commandName": "Project" - }, - "Sample (ConfigureOrder)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\ConfigureOrder" - }, - "Sample (CPPCLI)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'CLRTest.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CPPCLI" - }, - "Sample (CSharpHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpHelloWorld" - }, - "Sample (CSharpImports)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'CSharpImports.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpImports" - }, - "Sample (CSharpVsix)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'CSharpVsix.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpVsix" - }, - "Sample (CSharpWCF)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'CSharpWCF.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpWCF" - }, - "Sample (CustomBuildStep)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'CustomBuildStep.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\CustomBuildStep" - }, - "Sample (FastBuildSimpleExecutable)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'FastBuildSimpleExecutable.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\FastBuildSimpleExecutable" - }, - "Sample (HelloAndroid)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloAndroid.Main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroid" - }, - "Sample (HelloAndroidAgde)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloAndroidAgde.Main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroidAgde" - }, - "Sample (HelloClangCl)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloClangCl.Main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloClangCl" - }, - "Sample (HelloEvents)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloEvents.Main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloEvents" - }, - "Sample (HelloLinux)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloLinux.Main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloLinux" - }, - "Sample (HelloRust)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloRust.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloRust" - }, - "Sample (HelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloWorld" - }, - "Sample (HelloXCode)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloXCode.Main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloXCode" - }, - "Sample (NetCore/DotNetCoreFrameworkHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetCoreFrameworkHelloWorld" - }, - "Sample (NetCore/DotNetFrameworkHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetFrameworkHelloWorld" - }, - "Sample (NetCore/DotNetMultiFrameworksHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetMultiFrameworksHelloWorld" - }, - "Sample (NetCore/DotNetOSMultiFrameworksHelloWorld)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'HelloWorld.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetOSMultiFrameworksHelloWorld" - }, - "Sample (PackageReferences)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'PackageReferences.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\PackageReferences" - }, - "Sample (QTFileCustomBuild)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'QTFileCustomBuild.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\QTFileCustomBuild" - }, - "Sample (SimpleExeLibDependency)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'SimpleExeLibDependency.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\SimpleExeLibDependency" - }, - "Sample (vcpkg)": { - "commandName": "Project", - "commandLineArgs": "/sources(@'main.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\samples\\vcpkg\\sharpmake" - }, - "FunctionalTest (FastBuildFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources('FastBuildFunctionalTest.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\FastBuildFunctionalTest" - }, - "FunctionalTest (NoAllFastBuildProjectFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources('NoAllFastBuildProjectFunctionalTest.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\NoAllFastBuildProjectFunctionalTest" - }, - "FunctionalTest (OnlyNeededFastBuildTest)": { - "commandName": "Project", - "commandLineArgs": "/sources('OnlyNeededFastBuildTest.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\OnlyNeededFastBuildTest" - }, - "FunctionalTest (SharpmakePackageFunctionalTest)": { - "commandName": "Project", - "commandLineArgs": "/sources('SharpmakePackageFunctionalTest.sharpmake.cs')", - "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\SharpmakePackageFunctionalTest" - }, - "FunctionalTest (functional_test.py)": { - "commandName": "Executable", - "executablePath": "python", - "commandLineArgs": "$(ProjectDir)\\..\\functional_test.py" - }, - "FunctionalTest (regression_test.py)": { - "commandName": "Executable", - "executablePath": "python", - "commandLineArgs": "$(ProjectDir)\\..\\regression_test.py" + "profiles": { + // Samples + "Sample (CompileCommandDatabase)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027CompileCommandDatabase.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CompileCommandDatabase" + }, + "Sample (ConfigureOrder)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\ConfigureOrder" + }, + "Sample (CPPCLI)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027CLRTest.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CPPCLI" + }, + "Sample (CSharpHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpHelloWorld" + }, + "Sample (CSharpImports)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027CSharpImports.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpImports" + }, + "Sample (CSharpVsix)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027CSharpVsix.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpVsix" + }, + "Sample (CSharpWCF)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027CSharpWCF.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CSharpWCF" + }, + "Sample (CustomBuildStep)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027CustomBuildStep.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\CustomBuildStep" + }, + "Sample (FastBuildSimpleExecutable)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027FastBuildSimpleExecutable.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\FastBuildSimpleExecutable" + }, + "Sample (HelloAndroid)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloAndroid.Main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroid" + }, + "Sample (HelloAndroidAgde)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloAndroidAgde.Main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloAndroidAgde" + }, + "Sample (HelloClangCl)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloClangCl.Main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloClangCl" + }, + "Sample (HelloEvents)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloEvents.Main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloEvents" + }, + "Sample (HelloLinux)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloLinux.Main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloLinux" + }, + "Sample (HelloRust)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloRust.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloRust" + }, + "Sample (HelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloWorld" + }, + "Sample (HelloXCode)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloXCode.Main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\HelloXCode" + }, + "Sample (NetCore/DotNetCoreFrameworkHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetCoreFrameworkHelloWorld" + }, + "Sample (NetCore/DotNetFrameworkHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetFrameworkHelloWorld" + }, + "Sample (NetCore/DotNetMultiFrameworksHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetMultiFrameworksHelloWorld" + }, + "Sample (NetCore/DotNetOSMultiFrameworksHelloWorld)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027HelloWorld.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\NetCore\\DotNetOSMultiFrameworksHelloWorld" + }, + "Sample (PackageReferences)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027PackageReferences.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\PackageReferences" + }, + "Sample (QTFileCustomBuild)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027QTFileCustomBuild.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\QTFileCustomBuild" + }, + "Sample (SimpleExeLibDependency)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027SimpleExeLibDependency.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\SimpleExeLibDependency" + }, + "Sample (vcpkg)": { + "commandName": "Project", + "commandLineArgs": "/sources(@\u0027main.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\samples\\vcpkg\\sharpmake" + }, + + // FunctionalTest + "FunctionalTest (FastBuildFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources(\u0027FastBuildFunctionalTest.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\FastBuildFunctionalTest" + }, + "FunctionalTest (NoAllFastBuildProjectFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources(\u0027NoAllFastBuildProjectFunctionalTest.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\NoAllFastBuildProjectFunctionalTest" + }, + "FunctionalTest (OnlyNeededFastBuildTest)": { + "commandName": "Project", + "commandLineArgs": "/sources(\u0027OnlyNeededFastBuildTest.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\OnlyNeededFastBuildTest" + }, + "FunctionalTest (SharpmakePackageFunctionalTest)": { + "commandName": "Project", + "commandLineArgs": "/sources(\u0027SharpmakePackageFunctionalTest.sharpmake.cs\u0027)", + "workingDirectory": "$(ProjectDir)\\..\\Sharpmake.FunctionalTests\\SharpmakePackageFunctionalTest" + }, + + // Python scripts + "FunctionalTest (functional_test.py)": { + "commandName": "Executable", + "executablePath": "python", + "commandLineArgs": "$(ProjectDir)\\..\\functional_test.py" + }, + "FunctionalTest (regression_test.py)": { + "commandName": "Executable", + "executablePath": "python", + "commandLineArgs": "$(ProjectDir)\\..\\regression_test.py" + } } - } -} \ No newline at end of file +} diff --git a/Sharpmake.Application/Sharpmake.Application.csproj b/Sharpmake.Application/Sharpmake.Application.csproj index 93bacf441..197c981ee 100644 --- a/Sharpmake.Application/Sharpmake.Application.csproj +++ b/Sharpmake.Application/Sharpmake.Application.csproj @@ -35,13 +35,5 @@ True - - full - - - - full - - diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index 355e3e799..d98047456 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -2479,13 +2479,11 @@ public bool DefaultAddFastBuildProjectToSolution() private Dictionary, DependencySetting> _dependenciesSetting = new Dictionary, DependencySetting>(); // These dependencies will not be propagated to other projects that depend on us - //internal IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); // hbkim - public IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); + internal IDictionary UnResolvedPrivateDependencies { get; } = new Dictionary(); // These dependencies will be propagated to other dependent projects, but not across dll dependencies. internal IDictionary UnResolvedProtectedDependencies { get; } = new Dictionary(); // These dependencies are always propagated to other dependent projects. - //internal Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); // hbkim - public Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); + internal Dictionary UnResolvedPublicDependencies { get; } = new Dictionary(); private Strings _resolvedTargetCopyFiles = new Strings(); diff --git a/Sharpmake/Project.cs b/Sharpmake/Project.cs index 878a6cedb..240fd9202 100644 --- a/Sharpmake/Project.cs +++ b/Sharpmake/Project.cs @@ -102,8 +102,8 @@ public string GuidReferencePath public Strings PreFilterSourceFiles { get { return _preFilterSourceFiles; } } - public Strings SourceFilesExtensions = new Strings(".cpp", ".c", ".cc", ".h", ".inl", ".hpp", ".hh", ".asm", ".ixx");// All files under SourceRootPath are evaluated, if match found, it will be added to SourceFiles - public Strings SourceFilesCompileExtensions = new Strings(".cpp", ".cc", ".c", ".asm", ".ixx"); // File that match this regex compile + public Strings SourceFilesExtensions = new Strings(".cpp", ".c", ".cc", ".h", ".inl", ".hpp", ".hh", ".asm");// All files under SourceRootPath are evaluated, if match found, it will be added to SourceFiles + public Strings SourceFilesCompileExtensions = new Strings(".cpp", ".cc", ".c", ".asm"); // File that match this regex compile public Strings SourceFilesCPPExtensions = new Strings(".cpp", ".cc"); public Strings SourceFilesFilters = null; // if != null, include only file in this filter diff --git a/Sharpmake/Target.cs b/Sharpmake/Target.cs index a5653b0d0..500e922a2 100644 --- a/Sharpmake/Target.cs +++ b/Sharpmake/Target.cs @@ -7,8 +7,6 @@ using System.Diagnostics; using System.Linq; using System.Reflection; -using static Sharpmake.EngineTarget; -using static Sharpmake.Target; namespace Sharpmake { @@ -250,7 +248,6 @@ public enum KitsRootEnum KitsRoot10 } - // Default Target, user may define its own if needed public class Target : ITarget { @@ -290,34 +287,6 @@ public Target( } } - [Fragment, Flags] - public enum ELaunchType - { - Editor = 1 << 0, - Client = 1 << 1, - Server = 1 << 2 - } - - public class EngineTarget : Target - { - public ELaunchType LaunchType; - - public EngineTarget() { } - public EngineTarget( - ELaunchType launchType, - Platform platform, - DevEnv devEnv, - Optimization optimization, - OutputType outputType = OutputType.Lib, - Blob blob = Blob.NoBlob, - BuildSystem buildSystem = BuildSystem.MSBuild, - DotNetFramework framework = DotNetFramework.v3_5) - : base(platform, devEnv, optimization, outputType, blob, buildSystem, framework) - { - LaunchType = launchType; //ELaunchType.Editor | ELaunchType.Client | ELaunchType.Server; - } - } - public abstract class ITarget : IComparable { public override string ToString() From 93cc0ce05a1369aa9267a2a2ba12ff6a631cf76f Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Wed, 1 Nov 2023 22:29:44 +0900 Subject: [PATCH 06/16] - fix name --- Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs | 4 ++-- .../BasePlatform.Vcxproj.Template.cs | 2 +- Sharpmake/Project.Configuration.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs index 9d7f981ea..f5da9bca9 100644 --- a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs +++ b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs @@ -1054,11 +1054,11 @@ private void GenerateCompilerOptions(IGenerationContext context, ProjectOptionsG context.SelectOption ( - Options.Option(Options.Vc.Compiler.JumboBuild.Disable, () => { context.Options["JumboBuild"] = FileGeneratorUtilities.RemoveLineTag; context.Options["MaxFilesPerUnityFile"] = FileGeneratorUtilities.RemoveLineTag; }), + Options.Option(Options.Vc.Compiler.JumboBuild.Disable, () => { context.Options["JumboBuild"] = FileGeneratorUtilities.RemoveLineTag; context.Options["MaxFilesPerJumboFile"] = FileGeneratorUtilities.RemoveLineTag; }), Options.Option(Options.Vc.Compiler.JumboBuild.Enable, () => { context.Options["JumboBuild"] = "true"; - context.Options["MaxFilesPerUnityFile"] = context.Configuration.MaxFilesPerUnityFile.ToString(); + context.Options["MaxFilesPerJumboFile"] = context.Configuration.MaxFilesPerJumboFile.ToString(); }) ); diff --git a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs index f34504741..cfd4400f3 100644 --- a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs +++ b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs @@ -181,7 +181,7 @@ public abstract partial class BasePlatform [options.SpectreMitigation] [options.EnableASAN] [options.JumboBuild] - [options.MaxFilesPerUnityFile] + [options.MaxFilesPerJumboFile] "; diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index d98047456..aa36b8f81 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -1606,7 +1606,7 @@ public string FastBuildUnityPath public bool DoNotGenerateFastBuild = false; // Unity builds support - public int MaxFilesPerUnityFile = 0; + public int MaxFilesPerJumboFile = 0; // container for executable /// From f05cc6c22c7414782bb36b6faa059d54537417f2 Mon Sep 17 00:00:00 2001 From: Kim Han Byeol Date: Fri, 3 Nov 2023 23:01:44 +0900 Subject: [PATCH 07/16] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jean-Sébastien Pelletier --- Sharpmake/Project.Configuration.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index aa36b8f81..6a6516ced 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -1605,7 +1605,7 @@ public string FastBuildUnityPath /// public bool DoNotGenerateFastBuild = false; - // Unity builds support + // Jumbo builds support public int MaxFilesPerJumboFile = 0; // container for executable From cdc5403be118568bf7c292d9ae84cda63d3b9d7c Mon Sep 17 00:00:00 2001 From: Hanbyeol Kim Date: Fri, 3 Nov 2023 23:55:10 +0900 Subject: [PATCH 08/16] - Add JumboBuild options - Add JumboBuild Sample --- .../VisualStudio/ProjectOptionsGenerator.cs | 10 +- .../BasePlatform.Vcxproj.Template.cs | 2 + Sharpmake/Project.Configuration.cs | 2 + regression_test.py | 1 + samples/JumboBuild/JumboBuild.sharpmake.cs | 73 ++++++ samples/JumboBuild/codebase/main.cpp | 24 ++ .../projects/jumbobuild_vs2019_win32.sln | 21 ++ .../projects/jumbobuild_vs2019_win32.vcxproj | 248 ++++++++++++++++++ .../jumbobuild_vs2019_win32.vcxproj.filters | 6 + .../projects/jumbobuild_vs2019_win64.sln | 21 ++ .../projects/jumbobuild_vs2019_win64.vcxproj | 248 ++++++++++++++++++ .../jumbobuild_vs2019_win64.vcxproj.filters | 6 + 12 files changed, 661 insertions(+), 1 deletion(-) create mode 100644 samples/JumboBuild/JumboBuild.sharpmake.cs create mode 100644 samples/JumboBuild/codebase/main.cpp create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters diff --git a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs index f5da9bca9..1cb7a6199 100644 --- a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs +++ b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs @@ -1054,11 +1054,19 @@ private void GenerateCompilerOptions(IGenerationContext context, ProjectOptionsG context.SelectOption ( - Options.Option(Options.Vc.Compiler.JumboBuild.Disable, () => { context.Options["JumboBuild"] = FileGeneratorUtilities.RemoveLineTag; context.Options["MaxFilesPerJumboFile"] = FileGeneratorUtilities.RemoveLineTag; }), + Options.Option(Options.Vc.Compiler.JumboBuild.Disable, () => + { + context.Options["JumboBuild"] = FileGeneratorUtilities.RemoveLineTag; + context.Options["MaxFilesPerJumboFile"] = FileGeneratorUtilities.RemoveLineTag; + context.Options["MinFilesPerJumboFile"] = FileGeneratorUtilities.RemoveLineTag; + context.Options["MinJumboFiles"] = FileGeneratorUtilities.RemoveLineTag; + }), Options.Option(Options.Vc.Compiler.JumboBuild.Enable, () => { context.Options["JumboBuild"] = "true"; context.Options["MaxFilesPerJumboFile"] = context.Configuration.MaxFilesPerJumboFile.ToString(); + context.Options["MinFilesPerJumboFile"] = context.Configuration.MinFilesPerJumboFile.ToString(); + context.Options["MinJumboFiles"] = context.Configuration.MinJumboFiles.ToString(); }) ); diff --git a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs index cfd4400f3..fe2456172 100644 --- a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs +++ b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs @@ -182,6 +182,8 @@ public abstract partial class BasePlatform [options.EnableASAN] [options.JumboBuild] [options.MaxFilesPerJumboFile] + [options.MinFilesPerJumboFile] + [options.MinJumboFiles] "; diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index 6a6516ced..a26c594c8 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -1607,6 +1607,8 @@ public string FastBuildUnityPath // Jumbo builds support public int MaxFilesPerJumboFile = 0; + public int MinFilesPerJumboFile = 2; + public int MinJumboFiles = 1; // container for executable /// diff --git a/regression_test.py b/regression_test.py index 5e51bf9ad..f0f65a4cb 100644 --- a/regression_test.py +++ b/regression_test.py @@ -147,6 +147,7 @@ def launch_tests(): Test("CPPCLI", "CLRTest.sharpmake.cs"), Test("CSharpHelloWorld", "HelloWorld.sharpmake.cs"), Test("HelloWorld", "HelloWorld.sharpmake.cs"), + Test("JumboBuild", "JumboBuild.sharpmake.cs"), Test("HelloLinux", "HelloLinux.Main.sharpmake.cs"), Test("HelloAssembly", "HelloAssembly.sharpmake.cs"), Test("CSharpVsix", "CSharpVsix.sharpmake.cs"), diff --git a/samples/JumboBuild/JumboBuild.sharpmake.cs b/samples/JumboBuild/JumboBuild.sharpmake.cs new file mode 100644 index 000000000..c3f76a4ae --- /dev/null +++ b/samples/JumboBuild/JumboBuild.sharpmake.cs @@ -0,0 +1,73 @@ +// Copyright (c) Ubisoft. All Rights Reserved. +// Licensed under the Apache 2.0 License. See LICENSE.md in the project root for license information. + +using Sharpmake; + +namespace JumboBuild +{ + [Sharpmake.Generate] + public class JumboBuildProject : Project + { + public JumboBuildProject() + { + Name = "JumboBuild"; + + AddTargets(new Target( + Platform.win32 | Platform.win64, + DevEnv.vs2019, + Optimization.Debug | Optimization.Release + )); + + SourceRootPath = @"[project.SharpmakeCsPath]\codebase"; + } + + [Configure] + public void ConfigureAll(Configuration conf, Target target) + { + conf.ProjectFileName = "[project.Name]_[target.DevEnv]_[target.Platform]"; + conf.ProjectPath = @"[project.SharpmakeCsPath]\projects"; + + conf.Defines.Add("_HAS_EXCEPTIONS=0"); + + conf.CustomProperties.Add("CustomOptimizationProperty", $"Custom-{target.Optimization}"); + + conf.Options.Add(Options.Vc.Compiler.JumboBuild.Enable); + conf.MaxFilesPerJumboFile = 0; + conf.MinFilesPerJumboFile = 2; + conf.MinJumboFiles = 1; + } + } + + [Sharpmake.Generate] + public class JumboBuildSolution : Sharpmake.Solution + { + public JumboBuildSolution() + { + Name = "JumboBuild"; + + AddTargets(new Target( + Platform.win32 | Platform.win64, + DevEnv.vs2019, + Optimization.Debug | Optimization.Release + )); + } + + [Configure()] + public void ConfigureAll(Configuration conf, Target target) + { + conf.SolutionFileName = "[solution.Name]_[target.DevEnv]_[target.Platform]"; + conf.SolutionPath = @"[solution.SharpmakeCsPath]\projects"; + conf.AddProject(target); + } + } + + public static class Main + { + [Sharpmake.Main] + public static void SharpmakeMain(Sharpmake.Arguments arguments) + { + KitsRootPaths.SetUseKitsRootForDevEnv(DevEnv.vs2019, KitsRootEnum.KitsRoot10, Options.Vc.General.WindowsTargetPlatformVersion.v10_0_19041_0); + arguments.Generate(); + } + } +} diff --git a/samples/JumboBuild/codebase/main.cpp b/samples/JumboBuild/codebase/main.cpp new file mode 100644 index 000000000..7f55aacc8 --- /dev/null +++ b/samples/JumboBuild/codebase/main.cpp @@ -0,0 +1,24 @@ +#include + +int main(int, char**) +{ + std::cout << "I was built in " + +#if _DEBUG + "Debug" +#endif + +#if NDEBUG + "Release" +#endif + +#if _WIN64 + " x64" +#else + " x86" +#endif + + << std::endl; + + return 0; +} diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln new file mode 100644 index 000000000..ef2a4d77a --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29424.173 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JumboBuild", "jumbobuild_vs2019_win32.vcxproj", "{7E5D7FA3-1BD1-D52B-649E-C932F0163E62}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Debug|Win32.ActiveCfg = Debug|Win32 + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Debug|Win32.Build.0 = Debug|Win32 + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Release|Win32.ActiveCfg = Release|Win32 + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj new file mode 100644 index 000000000..38f392dee --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj @@ -0,0 +1,248 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62} + en-US + JumboBuild + JumboBuild + + + 10.0.19041.0 + + + + Application + true + MultiByte + false + v142 + true + 0 + 2 + 1 + + + Application + false + MultiByte + false + v142 + true + 0 + 2 + 1 + + + + + + + + + + jumbobuild + output\win32\debug\ + obj\win32\debug\ + .exe + true + false + output\win32\debug\jumbobuild.exe + false + + + Custom-Debug + + + jumbobuild + output\win32\release\ + obj\win32\release\ + .exe + true + false + output\win32\release\jumbobuild.exe + false + + + Custom-Release + + + + NotUsing + Level4 + Disabled + WIN32;_CONSOLE;_DEBUG;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + OnlyExplicitInline + true + Neither + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreadedDebug + Default + true + false + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win32\debug\jumbobuild_compiler.pdb + MultiThreadedDebug + + + Console + true + output\win32\debug\jumbobuild.exe + NotSet + output\win32\debug\jumbobuild.pdb + true + false + false + false + NotSet + false + false + + + Default + false + 1 + false + false + false + MachineX86 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win32\debug\jumbobuild.map + + + + + NotUsing + Level4 + Full + NDEBUG;WIN32;_CONSOLE;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + AnySuitable + true + Speed + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreaded + Default + false + true + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win32\release\jumbobuild_compiler.pdb + MultiThreaded + + + Console + true + output\win32\release\jumbobuild.exe + NotSet + output\win32\release\jumbobuild.pdb + true + false + false + false + NotSet + true + true + + + Default + false + 1 + false + false + false + MachineX86 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win32\release\jumbobuild.map + + + + + + + + + + + diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters new file mode 100644 index 000000000..fe9505ec1 --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln new file mode 100644 index 000000000..d5d47d6ac --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29424.173 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JumboBuild", "jumbobuild_vs2019_win64.vcxproj", "{8A1D15AD-7B70-583E-0E94-FB3022C29864}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Debug|x64.ActiveCfg = Debug|x64 + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Debug|x64.Build.0 = Debug|x64 + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Release|x64.ActiveCfg = Release|x64 + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj new file mode 100644 index 000000000..a272e2096 --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj @@ -0,0 +1,248 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {8A1D15AD-7B70-583E-0E94-FB3022C29864} + en-US + JumboBuild + JumboBuild + + + 10.0.19041.0 + + + + Application + true + MultiByte + false + v142 + true + 0 + 2 + 1 + + + Application + false + MultiByte + false + v142 + true + 0 + 2 + 1 + + + + + + + + + + jumbobuild + output\win64\debug\ + obj\win64\debug\ + .exe + true + false + output\win64\debug\jumbobuild.exe + false + + + Custom-Debug + + + jumbobuild + output\win64\release\ + obj\win64\release\ + .exe + true + false + output\win64\release\jumbobuild.exe + false + + + Custom-Release + + + + NotUsing + Level4 + Disabled + WIN64;_CONSOLE;_DEBUG;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + OnlyExplicitInline + true + Neither + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreadedDebug + Default + true + false + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win64\debug\jumbobuild_compiler.pdb + MultiThreadedDebug + + + Console + true + output\win64\debug\jumbobuild.exe + NotSet + output\win64\debug\jumbobuild.pdb + true + false + false + false + NotSet + false + false + + + Default + false + 1 + false + false + false + MachineX64 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win64\debug\jumbobuild.map + + + + + NotUsing + Level4 + Full + NDEBUG;WIN64;_CONSOLE;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + AnySuitable + true + Speed + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreaded + Default + false + true + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win64\release\jumbobuild_compiler.pdb + MultiThreaded + + + Console + true + output\win64\release\jumbobuild.exe + NotSet + output\win64\release\jumbobuild.pdb + true + false + false + false + NotSet + true + true + + + Default + false + 1 + false + false + false + MachineX64 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win64\release\jumbobuild.map + + + + + + + + + + + diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters new file mode 100644 index 000000000..fe9505ec1 --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 14234e89061452e943c8fb3534c86b31ad23d3e0 Mon Sep 17 00:00:00 2001 From: Hanbyeol Kim Date: Tue, 7 Nov 2023 04:38:25 +0900 Subject: [PATCH 09/16] - remove sln --- .../projects/jumbobuild_vs2019_win32.sln | 21 -- .../projects/jumbobuild_vs2019_win32.vcxproj | 248 ------------------ .../jumbobuild_vs2019_win32.vcxproj.filters | 6 - .../projects/jumbobuild_vs2019_win64.sln | 21 -- .../projects/jumbobuild_vs2019_win64.vcxproj | 248 ------------------ .../jumbobuild_vs2019_win64.vcxproj.filters | 6 - 6 files changed, 550 deletions(-) delete mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln delete mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj delete mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters delete mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln delete mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj delete mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln deleted file mode 100644 index ef2a4d77a..000000000 --- a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29424.173 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JumboBuild", "jumbobuild_vs2019_win32.vcxproj", "{7E5D7FA3-1BD1-D52B-649E-C932F0163E62}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Debug|Win32.ActiveCfg = Debug|Win32 - {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Debug|Win32.Build.0 = Debug|Win32 - {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Release|Win32.ActiveCfg = Release|Win32 - {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj deleted file mode 100644 index 38f392dee..000000000 --- a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj +++ /dev/null @@ -1,248 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {7E5D7FA3-1BD1-D52B-649E-C932F0163E62} - en-US - JumboBuild - JumboBuild - - - 10.0.19041.0 - - - - Application - true - MultiByte - false - v142 - true - 0 - 2 - 1 - - - Application - false - MultiByte - false - v142 - true - 0 - 2 - 1 - - - - - - - - - - jumbobuild - output\win32\debug\ - obj\win32\debug\ - .exe - true - false - output\win32\debug\jumbobuild.exe - false - - - Custom-Debug - - - jumbobuild - output\win32\release\ - obj\win32\release\ - .exe - true - false - output\win32\release\jumbobuild.exe - false - - - Custom-Release - - - - NotUsing - Level4 - Disabled - WIN32;_CONSOLE;_DEBUG;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) - ProgramDatabase - true - false - true - false - OnlyExplicitInline - true - Neither - false - false - false - false - false - false - false - false - true - false - false - Default - MultiThreadedDebug - Default - true - false - NotSet - Fast - false - false - true - true - false - false - false - NoListing - false - false - Cdecl - Default - /Zc:__cplusplus - obj\win32\debug\jumbobuild_compiler.pdb - MultiThreadedDebug - - - Console - true - output\win32\debug\jumbobuild.exe - NotSet - output\win32\debug\jumbobuild.pdb - true - false - false - false - NotSet - false - false - - - Default - false - 1 - false - false - false - MachineX86 - false - Default - PromptImmediately - ;%(AdditionalDependencies) - true - false - - true - output\win32\debug\jumbobuild.map - - - - - NotUsing - Level4 - Full - NDEBUG;WIN32;_CONSOLE;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) - ProgramDatabase - true - false - true - false - AnySuitable - true - Speed - false - false - false - false - false - false - false - false - true - false - false - Default - MultiThreaded - Default - false - true - NotSet - Fast - false - false - true - true - false - false - false - NoListing - false - false - Cdecl - Default - /Zc:__cplusplus - obj\win32\release\jumbobuild_compiler.pdb - MultiThreaded - - - Console - true - output\win32\release\jumbobuild.exe - NotSet - output\win32\release\jumbobuild.pdb - true - false - false - false - NotSet - true - true - - - Default - false - 1 - false - false - false - MachineX86 - false - Default - PromptImmediately - ;%(AdditionalDependencies) - true - false - - true - output\win32\release\jumbobuild.map - - - - - - - - - - - diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters deleted file mode 100644 index fe9505ec1..000000000 --- a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln deleted file mode 100644 index d5d47d6ac..000000000 --- a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29424.173 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JumboBuild", "jumbobuild_vs2019_win64.vcxproj", "{8A1D15AD-7B70-583E-0E94-FB3022C29864}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Debug|x64.ActiveCfg = Debug|x64 - {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Debug|x64.Build.0 = Debug|x64 - {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Release|x64.ActiveCfg = Release|x64 - {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj deleted file mode 100644 index a272e2096..000000000 --- a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj +++ /dev/null @@ -1,248 +0,0 @@ - - - - - Debug - x64 - - - Release - x64 - - - - {8A1D15AD-7B70-583E-0E94-FB3022C29864} - en-US - JumboBuild - JumboBuild - - - 10.0.19041.0 - - - - Application - true - MultiByte - false - v142 - true - 0 - 2 - 1 - - - Application - false - MultiByte - false - v142 - true - 0 - 2 - 1 - - - - - - - - - - jumbobuild - output\win64\debug\ - obj\win64\debug\ - .exe - true - false - output\win64\debug\jumbobuild.exe - false - - - Custom-Debug - - - jumbobuild - output\win64\release\ - obj\win64\release\ - .exe - true - false - output\win64\release\jumbobuild.exe - false - - - Custom-Release - - - - NotUsing - Level4 - Disabled - WIN64;_CONSOLE;_DEBUG;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) - ProgramDatabase - true - false - true - false - OnlyExplicitInline - true - Neither - false - false - false - false - false - false - false - false - true - false - false - Default - MultiThreadedDebug - Default - true - false - NotSet - Fast - false - false - true - true - false - false - false - NoListing - false - false - Cdecl - Default - /Zc:__cplusplus - obj\win64\debug\jumbobuild_compiler.pdb - MultiThreadedDebug - - - Console - true - output\win64\debug\jumbobuild.exe - NotSet - output\win64\debug\jumbobuild.pdb - true - false - false - false - NotSet - false - false - - - Default - false - 1 - false - false - false - MachineX64 - false - Default - PromptImmediately - ;%(AdditionalDependencies) - true - false - - true - output\win64\debug\jumbobuild.map - - - - - NotUsing - Level4 - Full - NDEBUG;WIN64;_CONSOLE;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) - ProgramDatabase - true - false - true - false - AnySuitable - true - Speed - false - false - false - false - false - false - false - false - true - false - false - Default - MultiThreaded - Default - false - true - NotSet - Fast - false - false - true - true - false - false - false - NoListing - false - false - Cdecl - Default - /Zc:__cplusplus - obj\win64\release\jumbobuild_compiler.pdb - MultiThreaded - - - Console - true - output\win64\release\jumbobuild.exe - NotSet - output\win64\release\jumbobuild.pdb - true - false - false - false - NotSet - true - true - - - Default - false - 1 - false - false - false - MachineX64 - false - Default - PromptImmediately - ;%(AdditionalDependencies) - true - false - - true - output\win64\release\jumbobuild.map - - - - - - - - - - - diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters deleted file mode 100644 index fe9505ec1..000000000 --- a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 4e731e22663af86881be53899a0efbff9673ca05 Mon Sep 17 00:00:00 2001 From: Hanbyeol Kim Date: Tue, 7 Nov 2023 04:39:03 +0900 Subject: [PATCH 10/16] - SamplesDef.json support JumboBuild --- SamplesDef.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/SamplesDef.json b/SamplesDef.json index cf56cd255..4d0508ece 100644 --- a/SamplesDef.json +++ b/SamplesDef.json @@ -209,6 +209,22 @@ "&'./{testFolder}/projects/output/win64/{configuration}/helloWorld.exe'" ] }, + { + "Name": "JumboBuild", + "CIs": [ "github", "gitlab" ], + "OSs": [ "windows-2019", "windows-2022" ], + "Frameworks": [ "net6.0" ], + "Configurations": [ "debug", "release" ], + "TestFolder": "samples/JumboBuild", + "Commands": + [ + "./RunSharpmake.ps1 -workingDirectory {testFolder} -sharpmakeFile \"JumboBuild.sharpmake.cs\" -framework {framework}", + "./Compile.ps1 -slnOrPrjFile \"jumbobuild_vs2019_win32.sln\" -configuration {configuration} -platform \"Win32\" -WorkingDirectory \"{testFolder}/projects\" -VsVersion {os} -compiler MsBuild", + "&'./{testFolder}/projects/output/win32/{configuration}/jumboBuild.exe'", + "./Compile.ps1 -slnOrPrjFile \"jumbobuild_vs2019_win64.sln\" -configuration {configuration} -platform \"x64\" -WorkingDirectory \"{testFolder}/projects\" -VsVersion {os} -compiler MsBuild", + "&'./{testFolder}/projects/output/win64/{configuration}/jumboBuild.exe'" + ] + }, { "Name": "NetCore-DotNetCoreFrameworkHelloWorld", "CIs": [ "gitlab" ], From 8d5760f4019964cb804b9f558b9cd2d0a277407a Mon Sep 17 00:00:00 2001 From: Hanbyeol Kim Date: Tue, 7 Nov 2023 05:02:14 +0900 Subject: [PATCH 11/16] - Jumbo build sample add h, cpp files --- samples/JumboBuild/codebase/main.cpp | 5 +++++ samples/JumboBuild/codebase/test1.cpp | 6 ++++++ samples/JumboBuild/codebase/test1.h | 3 +++ samples/JumboBuild/codebase/test2.cpp | 6 ++++++ samples/JumboBuild/codebase/test2.h | 3 +++ 5 files changed, 23 insertions(+) create mode 100644 samples/JumboBuild/codebase/test1.cpp create mode 100644 samples/JumboBuild/codebase/test1.h create mode 100644 samples/JumboBuild/codebase/test2.cpp create mode 100644 samples/JumboBuild/codebase/test2.h diff --git a/samples/JumboBuild/codebase/main.cpp b/samples/JumboBuild/codebase/main.cpp index 7f55aacc8..e046aa031 100644 --- a/samples/JumboBuild/codebase/main.cpp +++ b/samples/JumboBuild/codebase/main.cpp @@ -1,4 +1,6 @@ #include +#include "test1.h" +#include "test2.h" int main(int, char**) { @@ -20,5 +22,8 @@ int main(int, char**) << std::endl; + std::cout << "test1: " << test1() << std::endl; + std::cout << "test2: " << test2() << std::endl; + return 0; } diff --git a/samples/JumboBuild/codebase/test1.cpp b/samples/JumboBuild/codebase/test1.cpp new file mode 100644 index 000000000..5e26e9964 --- /dev/null +++ b/samples/JumboBuild/codebase/test1.cpp @@ -0,0 +1,6 @@ +#include "test1.h" + +int test1() +{ + return 1; +} diff --git a/samples/JumboBuild/codebase/test1.h b/samples/JumboBuild/codebase/test1.h new file mode 100644 index 000000000..39a74fa7f --- /dev/null +++ b/samples/JumboBuild/codebase/test1.h @@ -0,0 +1,3 @@ +#pragma once + +int test1(); diff --git a/samples/JumboBuild/codebase/test2.cpp b/samples/JumboBuild/codebase/test2.cpp new file mode 100644 index 000000000..5ab97c07e --- /dev/null +++ b/samples/JumboBuild/codebase/test2.cpp @@ -0,0 +1,6 @@ +#include "test2.h" + +int test2() +{ + return 2; +} diff --git a/samples/JumboBuild/codebase/test2.h b/samples/JumboBuild/codebase/test2.h new file mode 100644 index 000000000..512b315e3 --- /dev/null +++ b/samples/JumboBuild/codebase/test2.h @@ -0,0 +1,3 @@ +#pragma once + +int test2(); From dca226837716cfc70b071a1f3d6eb32e5518e94b Mon Sep 17 00:00:00 2001 From: Kim Han Byeol Date: Sat, 11 Nov 2023 06:27:24 +0900 Subject: [PATCH 12/16] Update Sharpmake/Options.Vc.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jean-Sébastien Pelletier --- Sharpmake/Options.Vc.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sharpmake/Options.Vc.cs b/Sharpmake/Options.Vc.cs index 86adebad3..2b22eec74 100644 --- a/Sharpmake/Options.Vc.cs +++ b/Sharpmake/Options.Vc.cs @@ -1350,7 +1350,7 @@ public enum EnableAsan } /// - /// Enable Jumbo/Unity builds + /// Enable Jumbo/Unity builds for msbuild. Only usable with msbuild. /// /// /// Merges multiple translation units together From 340f6518a4fb5944442db3a5fe6dfcfb45cde832 Mon Sep 17 00:00:00 2001 From: Kim Han Byeol Date: Sat, 11 Nov 2023 06:27:54 +0900 Subject: [PATCH 13/16] Update Sharpmake/Project.Configuration.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jean-Sébastien Pelletier --- Sharpmake/Project.Configuration.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sharpmake/Project.Configuration.cs b/Sharpmake/Project.Configuration.cs index a26c594c8..d808a21f5 100644 --- a/Sharpmake/Project.Configuration.cs +++ b/Sharpmake/Project.Configuration.cs @@ -1605,7 +1605,7 @@ public string FastBuildUnityPath /// public bool DoNotGenerateFastBuild = false; - // Jumbo builds support + // Jumbo builds support for msbuild public int MaxFilesPerJumboFile = 0; public int MinFilesPerJumboFile = 2; public int MinJumboFiles = 1; From c18714912a4b439c581f0b8ba28b516c16cbd460 Mon Sep 17 00:00:00 2001 From: DESKTOP-C3TDPII Date: Sat, 11 Nov 2023 06:30:44 +0900 Subject: [PATCH 14/16] - UpdateSamplesOutput.bat support JumboBuild --- UpdateSamplesOutput.bat | 2 ++ 1 file changed, 2 insertions(+) diff --git a/UpdateSamplesOutput.bat b/UpdateSamplesOutput.bat index e5d26c4c9..c3dbe64b0 100644 --- a/UpdateSamplesOutput.bat +++ b/UpdateSamplesOutput.bat @@ -22,6 +22,8 @@ call :UpdateRef samples CPPCLI CLRTest.sharpmake.cs if not "%ERRORLEVEL_BACKUP%" == "0" goto error call :UpdateRef samples CSharpHelloWorld HelloWorld.sharpmake.cs reference CSharpHelloWorld if not "%ERRORLEVEL_BACKUP%" == "0" goto error +call :UpdateRef samples JumboBuild JumboBuild.sharpmake.cs reference JumboBuild +if not "%ERRORLEVEL_BACKUP%" == "0" goto error call :UpdateRef samples HelloWorld HelloWorld.sharpmake.cs reference HelloWorld if not "%ERRORLEVEL_BACKUP%" == "0" goto error call :UpdateRef samples HelloLinux HelloLinux.Main.sharpmake.cs reference HelloLinux From 463bca0e981a5dd271728cb73545a750932ec35a Mon Sep 17 00:00:00 2001 From: Hanbyeol Kim Date: Sat, 11 Nov 2023 06:34:53 +0900 Subject: [PATCH 15/16] - remove 32bit (JumboBuild) --- SamplesDef.json | 2 -- samples/JumboBuild/JumboBuild.sharpmake.cs | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/SamplesDef.json b/SamplesDef.json index 4d0508ece..b1fee3298 100644 --- a/SamplesDef.json +++ b/SamplesDef.json @@ -219,8 +219,6 @@ "Commands": [ "./RunSharpmake.ps1 -workingDirectory {testFolder} -sharpmakeFile \"JumboBuild.sharpmake.cs\" -framework {framework}", - "./Compile.ps1 -slnOrPrjFile \"jumbobuild_vs2019_win32.sln\" -configuration {configuration} -platform \"Win32\" -WorkingDirectory \"{testFolder}/projects\" -VsVersion {os} -compiler MsBuild", - "&'./{testFolder}/projects/output/win32/{configuration}/jumboBuild.exe'", "./Compile.ps1 -slnOrPrjFile \"jumbobuild_vs2019_win64.sln\" -configuration {configuration} -platform \"x64\" -WorkingDirectory \"{testFolder}/projects\" -VsVersion {os} -compiler MsBuild", "&'./{testFolder}/projects/output/win64/{configuration}/jumboBuild.exe'" ] diff --git a/samples/JumboBuild/JumboBuild.sharpmake.cs b/samples/JumboBuild/JumboBuild.sharpmake.cs index c3f76a4ae..5cb20b03e 100644 --- a/samples/JumboBuild/JumboBuild.sharpmake.cs +++ b/samples/JumboBuild/JumboBuild.sharpmake.cs @@ -13,9 +13,9 @@ public JumboBuildProject() Name = "JumboBuild"; AddTargets(new Target( - Platform.win32 | Platform.win64, + Platform.win64, DevEnv.vs2019, - Optimization.Debug | Optimization.Release + Optimization.Release )); SourceRootPath = @"[project.SharpmakeCsPath]\codebase"; From 7bf817ad08a5811b9a8cee439dbf4c15b76be93e Mon Sep 17 00:00:00 2001 From: Hanbyeol Kim Date: Sat, 18 Nov 2023 07:20:11 +0900 Subject: [PATCH 16/16] - add sln --- samples/JumboBuild/JumboBuild.sharpmake.cs | 4 +- .../projects/jumbobuild_vs2019_win32.sln | 21 ++ .../projects/jumbobuild_vs2019_win32.vcxproj | 252 ++++++++++++++++++ .../jumbobuild_vs2019_win32.vcxproj.filters | 12 + .../projects/jumbobuild_vs2019_win64.sln | 21 ++ .../projects/jumbobuild_vs2019_win64.vcxproj | 252 ++++++++++++++++++ .../jumbobuild_vs2019_win64.vcxproj.filters | 12 + 7 files changed, 572 insertions(+), 2 deletions(-) create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj create mode 100644 samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters diff --git a/samples/JumboBuild/JumboBuild.sharpmake.cs b/samples/JumboBuild/JumboBuild.sharpmake.cs index 5cb20b03e..c3f76a4ae 100644 --- a/samples/JumboBuild/JumboBuild.sharpmake.cs +++ b/samples/JumboBuild/JumboBuild.sharpmake.cs @@ -13,9 +13,9 @@ public JumboBuildProject() Name = "JumboBuild"; AddTargets(new Target( - Platform.win64, + Platform.win32 | Platform.win64, DevEnv.vs2019, - Optimization.Release + Optimization.Debug | Optimization.Release )); SourceRootPath = @"[project.SharpmakeCsPath]\codebase"; diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln new file mode 100644 index 000000000..ef2a4d77a --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29424.173 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JumboBuild", "jumbobuild_vs2019_win32.vcxproj", "{7E5D7FA3-1BD1-D52B-649E-C932F0163E62}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Debug|Win32.ActiveCfg = Debug|Win32 + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Debug|Win32.Build.0 = Debug|Win32 + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Release|Win32.ActiveCfg = Release|Win32 + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj new file mode 100644 index 000000000..4bf2597b1 --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj @@ -0,0 +1,252 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {7E5D7FA3-1BD1-D52B-649E-C932F0163E62} + en-US + JumboBuild + JumboBuild + + + 10.0.19041.0 + + + + Application + true + MultiByte + false + v142 + true + 0 + 2 + 1 + + + Application + false + MultiByte + false + v142 + true + 0 + 2 + 1 + + + + + + + + + + jumbobuild + output\win32\debug\ + obj\win32\debug\ + .exe + true + false + output\win32\debug\jumbobuild.exe + false + + + Custom-Debug + + + jumbobuild + output\win32\release\ + obj\win32\release\ + .exe + true + false + output\win32\release\jumbobuild.exe + false + + + Custom-Release + + + + NotUsing + Level4 + Disabled + WIN32;_CONSOLE;_DEBUG;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + OnlyExplicitInline + true + Neither + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreadedDebug + Default + true + false + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win32\debug\jumbobuild_compiler.pdb + MultiThreadedDebug + + + Console + true + output\win32\debug\jumbobuild.exe + NotSet + output\win32\debug\jumbobuild.pdb + true + false + false + false + NotSet + false + false + + + Default + false + 1 + false + false + false + MachineX86 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win32\debug\jumbobuild.map + + + + + NotUsing + Level4 + Full + NDEBUG;WIN32;_CONSOLE;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + AnySuitable + true + Speed + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreaded + Default + false + true + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win32\release\jumbobuild_compiler.pdb + MultiThreaded + + + Console + true + output\win32\release\jumbobuild.exe + NotSet + output\win32\release\jumbobuild.pdb + true + false + false + false + NotSet + true + true + + + Default + false + 1 + false + false + false + MachineX86 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win32\release\jumbobuild.map + + + + + + + + + + + + + + + diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters new file mode 100644 index 000000000..b9bc2ee9d --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win32.vcxproj.filters @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln new file mode 100644 index 000000000..d5d47d6ac --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29424.173 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JumboBuild", "jumbobuild_vs2019_win64.vcxproj", "{8A1D15AD-7B70-583E-0E94-FB3022C29864}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Debug|x64.ActiveCfg = Debug|x64 + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Debug|x64.Build.0 = Debug|x64 + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Release|x64.ActiveCfg = Release|x64 + {8A1D15AD-7B70-583E-0E94-FB3022C29864}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj new file mode 100644 index 000000000..17e6e2774 --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj @@ -0,0 +1,252 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {8A1D15AD-7B70-583E-0E94-FB3022C29864} + en-US + JumboBuild + JumboBuild + + + 10.0.19041.0 + + + + Application + true + MultiByte + false + v142 + true + 0 + 2 + 1 + + + Application + false + MultiByte + false + v142 + true + 0 + 2 + 1 + + + + + + + + + + jumbobuild + output\win64\debug\ + obj\win64\debug\ + .exe + true + false + output\win64\debug\jumbobuild.exe + false + + + Custom-Debug + + + jumbobuild + output\win64\release\ + obj\win64\release\ + .exe + true + false + output\win64\release\jumbobuild.exe + false + + + Custom-Release + + + + NotUsing + Level4 + Disabled + WIN64;_CONSOLE;_DEBUG;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + OnlyExplicitInline + true + Neither + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreadedDebug + Default + true + false + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win64\debug\jumbobuild_compiler.pdb + MultiThreadedDebug + + + Console + true + output\win64\debug\jumbobuild.exe + NotSet + output\win64\debug\jumbobuild.pdb + true + false + false + false + NotSet + false + false + + + Default + false + 1 + false + false + false + MachineX64 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win64\debug\jumbobuild.map + + + + + NotUsing + Level4 + Full + NDEBUG;WIN64;_CONSOLE;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions);$(PreprocessorDefinitions) + ProgramDatabase + true + false + true + false + AnySuitable + true + Speed + false + false + false + false + false + false + false + false + true + false + false + Default + MultiThreaded + Default + false + true + NotSet + Fast + false + false + true + true + false + false + false + NoListing + false + false + Cdecl + Default + /Zc:__cplusplus + obj\win64\release\jumbobuild_compiler.pdb + MultiThreaded + + + Console + true + output\win64\release\jumbobuild.exe + NotSet + output\win64\release\jumbobuild.pdb + true + false + false + false + NotSet + true + true + + + Default + false + 1 + false + false + false + MachineX64 + false + Default + PromptImmediately + ;%(AdditionalDependencies) + true + false + + true + output\win64\release\jumbobuild.map + + + + + + + + + + + + + + + diff --git a/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters new file mode 100644 index 000000000..b9bc2ee9d --- /dev/null +++ b/samples/JumboBuild/reference/projects/jumbobuild_vs2019_win64.vcxproj.filters @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file