Fastbuild all work for static linking
Need : Dll for game and lib to do hot reload Need : static for release only Way to compile only julietapp only shader app, only juliet.dll and game.dll
This commit is contained in:
102
JulietApp/JulietApp.bff
Normal file
102
JulietApp/JulietApp.bff
Normal file
@@ -0,0 +1,102 @@
|
||||
// Juliet - Lib
|
||||
//------------------------------------------------------------------------------
|
||||
{
|
||||
.ProjectName = 'JulietApp'
|
||||
.ProjectPath = 'JulietApp'
|
||||
.JulietIncludePath = ' "-IJuliet/include"'
|
||||
.ProjectDefPath = '$_WORKING_DIR_$/$ProjectName$/$ProjectName$.def'
|
||||
|
||||
// Library
|
||||
//--------------------------------------------------------------------------
|
||||
.ProjectConfigs = {}
|
||||
ForEach( .BuildConfig in .BuildConfigs )
|
||||
{
|
||||
Using( .BuildConfig )
|
||||
.OutputBase + '\$Platform$-$BuildConfigName$'
|
||||
|
||||
// Unity
|
||||
//--------------------------------------------------------------------------
|
||||
Unity( '$ProjectName$-Unity-$Platform$-$BuildConfigName$' )
|
||||
{
|
||||
.UnityInputPath = '$ProjectPath$/'
|
||||
.UnityOutputPath = '$OutputBase$/$ProjectPath$/'
|
||||
.UnityOutputPattern = '$ProjectName$_Unity*.cpp'
|
||||
}
|
||||
|
||||
// Library
|
||||
//--------------------------------------------------------------------------
|
||||
ObjectList( '$ProjectName$-Lib-$Platform$-$BuildConfigName$' )
|
||||
{
|
||||
// Input (Unity)
|
||||
.CompilerInputUnity = '$ProjectName$-Unity-$Platform$-$BuildConfigName$'
|
||||
|
||||
// Extra Compiler Options
|
||||
.CompilerOptions + .JulietIncludePath
|
||||
|
||||
#if __WINDOWS__
|
||||
.CompilerOptions + ' -DJULIET_WIN32'
|
||||
#endif
|
||||
|
||||
// Output
|
||||
.CompilerOutputPath = '$OutputBase$/$ProjectPath$/'
|
||||
}
|
||||
|
||||
// Windows Manifest
|
||||
//--------------------------------------------------------------------------
|
||||
#if __WINDOWS__
|
||||
.ManifestFile = '$OutputBase$/$ProjectPath$/$ProjectName$$ExeExtension$.manifest.tmp'
|
||||
//CreateManifest( '$ProjectName$-Manifest-$Platform$-$BuildConfigName$'
|
||||
// .ManifestFile )
|
||||
#endif
|
||||
|
||||
// Executable
|
||||
//--------------------------------------------------------------------------
|
||||
Executable( '$ProjectName$-Exe-$Platform$-$BuildConfigName$' )
|
||||
{
|
||||
.Libraries = {
|
||||
'JulietApp-Lib-$Platform$-$BuildConfigName$',
|
||||
'Juliet-Lib-$Platform$-$BuildConfigName$',
|
||||
'Game-Lib-$Platform$-$BuildConfigName$'
|
||||
}
|
||||
|
||||
.LinkerOutput = '$OutputBase$/$ProjectPath$/JulietApp$ExeExtension$'
|
||||
|
||||
// TODO : Only use when using DLL and not static link
|
||||
//.LinkerOptions + ' /DEF:"$ProjectDefPath$"'
|
||||
|
||||
#if __WINDOWS__
|
||||
.LinkerOptions + ' /SUBSYSTEM:CONSOLE'
|
||||
+ ' kernel32.lib'
|
||||
+ ' user32.lib'
|
||||
|
||||
+ ' gdi32.lib'
|
||||
|
||||
+ ' dxguid.lib'
|
||||
+ ' Ws2_32.lib'
|
||||
+ ' dxgi.lib'
|
||||
//+ .CRTLibs_Static
|
||||
|
||||
// Chose appropriate CRT
|
||||
.CRTLibs = .CRTLibs_Dynamic
|
||||
If ( .BuildConfigName == 'Debug' )
|
||||
{
|
||||
^CRTLibs = .CRTLibs_DynamicDebug
|
||||
}
|
||||
.LinkerOptions + .CRTLibs
|
||||
|
||||
// Manifest
|
||||
.LinkerAssemblyResources = .ManifestFile
|
||||
.LinkerOptions + ' /MANIFEST:EMBED'
|
||||
// + ' /MANIFESTINPUT:%3'
|
||||
#endif
|
||||
}
|
||||
|
||||
Alias( '$ProjectName$-$Platform$-$BuildConfigName$' ) { .Targets = '$ProjectName$-Exe-$Platform$-$BuildConfigName$' }
|
||||
^'Targets_$Platform$_$BuildConfigName$' + { '$ProjectName$-$Platform$-$BuildConfigName$' }
|
||||
|
||||
#if __WINDOWS__
|
||||
.ProjectConfig = [ Using( .'Project_$Platform$_$BuildConfigName$' ) .Target = '$ProjectName$-$Platform$-$BuildConfigName$' ]
|
||||
^ProjectConfigs + .ProjectConfig
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user