//------------------------------------------------------------------------------ // 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' } }