-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.sharpmake.cs
83 lines (69 loc) · 2.56 KB
/
Main.sharpmake.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using Sharpmake;
[module: Sharpmake.Include("extern/externs.sharpmake.cs")]
[Generate]
public class BirdGameProject : Project
{
public BirdGameProject()
{
Name = "BirdGame";
AddTargets(new Target(Platform.win64, DevEnv.vs2022, Optimization.Debug | Optimization.Release));
SourceRootPath = @"[project.SharpmakeCsPath]\src";
}
[Configure()]
public void Configure(Configuration conf, Target target)
{
conf.ProjectFileName = "BirdGame";
conf.ProjectPath = @"[project.SharpmakeCsPath]\generated";
conf.IncludePaths.Add(@"[project.SharpmakeCsPath]\include");
// Check if a .use_warp_adapter file exists in the project directory and set a preprocessor definition if it does
if (System.IO.File.Exists(@".use_warp_adapter"))
{
conf.Defines.Add("USE_WARP_ADAPTER");
}
conf.Options.Add(Options.Vc.General.CharacterSet.Unicode);
conf.Options.Add(Options.Vc.General.WarningLevel.Level3);
conf.Options.Add(Options.Vc.General.TreatWarningsAsErrors.Enable);
conf.Options.Add(Options.Vc.General.WindowsTargetPlatformVersion.Latest);
conf.Options.Add(Options.Vc.Compiler.CppLanguageStandard.CPP20);
conf.Options.Add(Options.Vc.Compiler.Exceptions.Enable);
if (target.Optimization == Optimization.Debug)
{
conf.Options.Add(Options.Vc.Compiler.RuntimeLibrary.MultiThreadedDebugDLL);
}
else
{
conf.Options.Add(Options.Vc.Compiler.RuntimeLibrary.MultiThreadedDLL);
}
conf.Options.Add(Options.Vc.Linker.SubSystem.Windows);
conf.Options.Add(Options.Vc.Linker.LargeAddress.SupportLargerThan2Gb);
conf.LibraryFiles.Add("d3d12");
conf.LibraryFiles.Add("dxgi");
conf.LibraryFiles.Add("d3dcompiler");
conf.LibraryFiles.Add("dxguid");
conf.AddPrivateDependency<WICTextureLoader>(target);
}
}
[Generate]
public class BirdGameSolution : Solution
{
public BirdGameSolution()
{
Name = "BirdGame";
AddTargets(new Target(Platform.win64, DevEnv.vs2022, Optimization.Debug | Optimization.Release));
}
[Configure()]
public void Configure(Configuration conf, Target target)
{
conf.SolutionFileName = "BirdGame";
conf.SolutionPath = @"[solution.SharpmakeCsPath]\generated";
conf.AddProject<BirdGameProject>(target);
}
}
public static class Main
{
[Sharpmake.Main]
public static void SharpmakeMain(Arguments arguments)
{
arguments.Generate<BirdGameSolution>();
}
}