Files
Juliet/fbuild.bff
T

106 lines
3.8 KiB
Plaintext

//------------------------------------------------------------------------------
// Settings
//------------------------------------------------------------------------------
Settings
{
.CachePath = 'C:\FASTBuild_Cache\' // Use a local SSD or network path
#if __WINDOWS__
#import TMP
.Environment = { "TMP=$TMP$",
"SystemRoot=C:\Windows" }
#endif
}
//------------------------------------------------------------------------------
// Global Output Paths
//------------------------------------------------------------------------------
.BinPath = 'bin'
.OutputBase = 'Intermediate'
.CommonWinLibs = ' kernel32.lib user32.lib gdi32.lib dxguid.lib Ws2_32.lib dxgi.lib imm32.lib dwmapi.lib d3dcompiler.lib shell32.lib'
//------------------------------------------------------------------------------
// VisualStudio Project Generation
//------------------------------------------------------------------------------
#if __WINDOWS__
.ProjectCommon =
[
.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 = 'v143'
.LocalDebuggerCommand = '^$(SolutionDir)\bin\x64-^$(Configuration)\^$(ProjectName).exe'
.LocalDebuggerWorkingDirectory = '^$(SolutionDir)\bin\x64-^$(Configuration)\'
]
.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
//------------------------------------------------------------------------------
.BuildConfigs = { 'Debug', 'Profile', '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
// Generate solutions
VSSolution( 'JulietApp-Solution' )
{
.SolutionOutput = 'Juliet.sln'
.SolutionProjects = { 'JulietApp', 'Juliet', 'Game', 'ImGui' }
.SolutionConfigs = .ProjectConfigs_JulietApp
.SolutionBuildProject = 'JulietApp'
}
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'
}
}