generate project for easy editing

This commit is contained in:
2026-07-23 12:37:47 -04:00
parent 9f698bcb7f
commit b17960b0e4
14 changed files with 312 additions and 1849 deletions
+55 -19
View File
@@ -142,30 +142,26 @@ Settings
#if __WINDOWS__
.ProjectCommon =
[
.ProjectBuildCommand = 'cd ^$(SolutionDir) & misc\build.bat ^$(ProjectName)-^$(Configuration)'
.ProjectRebuildCommand = 'cd ^$(SolutionDir) & misc\build.bat -clean ^$(ProjectName)-^$(Configuration)'
.ProjectBuildCommand = 'cd ^$(SolutionDir) & misc\build.bat ^$(Configuration) ^$(SolutionName)'
.ProjectRebuildCommand = 'cd ^$(SolutionDir) & misc\build.bat -clean ^$(Configuration) ^$(SolutionName)'
.OutputDirectory = '^$(SolutionDir)\bin'
.IntermediateDirectory = '^$(SolutionDir)\Intermediate'
.BuildLogFile = '^$(SolutionDir)\Intermediate\^$(ProjectName)-^$(Configuration).log'
.Platform = 'x64'
.PlatformToolset = '$VS_PlatformToolset$'
.LocalDebuggerCommand = '^$(SolutionDir)\bin\^$(Configuration)\^$(ProjectName).exe'
.LocalDebuggerWorkingDirectory = '^$(SolutionDir)\bin\^$(Configuration)\'
.LocalDebuggerCommand = '^$(SolutionDir)\bin\x64-^$(Configuration)\^$(ProjectName).exe'
.LocalDebuggerWorkingDirectory = '^$(SolutionDir)\bin\x64-^$(Configuration)\'
]
.Project_x64_Debug = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64' .SolutionConfig = 'Debug' .Config = '$SolutionPlatform$-$SolutionConfig$' ]
.Project_x64_Profile = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64' .SolutionConfig = 'Profile' .Config = '$SolutionPlatform$-$SolutionConfig$' ]
.Project_x64_Release = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64' .SolutionConfig = 'Release' .Config = '$SolutionPlatform$-$SolutionConfig$' ]
.Project_x64Clang_Debug = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64Clang' .SolutionConfig = 'Debug' .Config = '$SolutionPlatform$-$SolutionConfig$' ]
.Project_x64Clang_Profile = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64Clang' .SolutionConfig = 'Profile' .Config = '$SolutionPlatform$-$SolutionConfig$' ]
.Project_x64Clang_Release = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64Clang' .SolutionConfig = 'Release' .Config = '$SolutionPlatform$-$SolutionConfig$' ]
.Project_x64_Debug = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64' .SolutionConfig = 'Debug' .Config = 'Debug' ]
.Project_x64_Profile = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64' .SolutionConfig = 'Profile' .Config = 'Profile' ]
.Project_x64_Release = [ Using( .ProjectCommon ) .SolutionPlatform = 'x64' .SolutionConfig = 'Release' .Config = 'Release' ]
#endif
// Configurations
//------------------------------------------------------------------------------
#if __WINDOWS__
.BuildConfigs = { .X64DebugConfig, .X64ProfileConfig, .X64ReleaseConfig
.X64ClangDebugConfig, .X64ClangProfileConfig, .X64ClangReleaseConfig }
.BuildConfigs = { .X64DebugConfig, .X64ProfileConfig, .X64ReleaseConfig }
#endif
.Targets_x64_Debug = {}
@@ -176,12 +172,29 @@ Settings
.Targets_x64Clang_Release = {}
// Include all projects to build
.ProjectConfigs = {}
#include "External/Imgui.bff"
.ProjectConfigs_ImGui = .ProjectConfigs
.ProjectConfigs = {}
#include "Juliet/Juliet.bff"
.ProjectConfigs_Juliet = .ProjectConfigs
.ProjectConfigs = {}
#include "Game/Game.bff"
.ProjectConfigs_Game = .ProjectConfigs
.ProjectConfigs = {}
#include "JulietApp/JulietApp.Bff"
.ProjectConfigs_JulietApp = .ProjectConfigs
.ProjectConfigs = {}
#include "JulietShaderCompiler/JulietShaderCompiler.Bff"
.ProjectConfigs_JulietShaderCompiler = .ProjectConfigs
.ProjectConfigs = {}
#include "Romeo/Romeo.bff"
.ProjectConfigs_Romeo = .ProjectConfigs
// Aliases : All-$Platform$-$Config$
@@ -254,13 +267,36 @@ ForEach( .Config in .Configs )
Alias( '$Config$' ) { .Targets = { 'msvc-$Config$', 'clang-$Config$' } }
}
// Generate solution
VSSolution( 'GenerateSolution' )
// Generate solutions
VSSolution( 'JulietApp-Solution' )
{
.SolutionOutput = 'Juliet.sln'
.SolutionProjects = { 'Juliet', 'Game', 'JulietApp', 'ImGui' }
.SolutionConfigs = .ProjectConfigs
.SolutionOutput = 'Juliet.sln'
.SolutionProjects = { 'JulietApp', 'Juliet', 'Game', 'ImGui' }
.SolutionConfigs = .ProjectConfigs_JulietApp
.SolutionBuildProject = 'JulietApp'
}
Alias( 'gen' ) { .Targets = 'GenerateSolution' }
VSSolution( 'Romeo-Solution' )
{
.SolutionOutput = 'Romeo.sln'
.SolutionProjects = { 'Romeo', 'Juliet', 'ImGui' }
.SolutionConfigs = .ProjectConfigs_Romeo
.SolutionBuildProject = 'Romeo'
}
VSSolution( 'ShaderCompiler-Solution' )
{
.SolutionOutput = 'JulietShaderCompiler.sln'
.SolutionProjects = { 'JulietShaderCompiler', 'Juliet', 'ImGui' }
.SolutionConfigs = .ProjectConfigs_JulietShaderCompiler
.SolutionBuildProject = 'JulietShaderCompiler'
}
Alias( 'gen' )
{
.Targets = {
'JulietApp-Solution',
'Romeo-Solution',
'ShaderCompiler-Solution'
}
}