![Page 1: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/1.jpg)
![Page 2: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/2.jpg)
![Page 3: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/3.jpg)
•
•
•
•
•
•
•
![Page 4: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/4.jpg)
![Page 5: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/5.jpg)
•
•
•
•
•
•
![Page 6: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/6.jpg)
![Page 7: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/7.jpg)
; Compile all .cpp files in the root directoryObjectList('HelloWorld-Cpp'){
.CompilerInputPath = '/'
.CompilerOutputPath = '_out/'}
; Link the executableExecutable('HelloWorld'){
.Libraries = { 'HelloWorld-Cpp' }
.LinkerOutput = '_bin/helloworld.exe'}
; Create a default targetAlias('all') { .Targets = { 'HelloWorld' } }
; Include the compiler definitions#include "config.bff"
![Page 8: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/8.jpg)
![Page 9: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/9.jpg)
; Composing variables dynamically.BuildType = 'Release'.FlagsDebug = ' -Od -g' ; Mind the space!.FlagsRelease = ' -O3' ; Mind the space!.CompilerOptions + .'Flags$BuildType$' ; Appending to .CompilerOptions!
; Import environment variables.ExtraFlags = ''#if exists(EXTRA_FLAGS)
#import EXTRA_FLAGS.ExtraFlags + .EXTRA_FLAGS
#endif
; Structs & scoping.StructA = [ .Foo = 'Value1' ].StructB = [
Using(.StructA) ; StructB now has a .Foo property.Bar = 'Value2' ; "Extend" StructB, by adding .Bar
]
![Page 10: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/10.jpg)
; Create all target configurations..ConfigX86 = [
.Compiler = 'bin/x86/cl.exe'
.ConfigName = 'x86'].ConfigX64 = [
.Compiler = 'bin/x64/cl.exe'
.ConfigName = 'x64'].Configs = { .ConfigX86, .ConfigX64 }
; Looping through all configurations to minimize duplicated work.ForEach(.Config in .Configs){
Using(.Config)Library('Util-$ConfigName$'){
.CompilerInputPath = 'libs/util/'
.CompilerOutputPath = 'out/$ConfigName$/'
.LibrarianOutput = 'out/$ConfigName$/util.lib'}
}
![Page 11: PowerPoint Presentation · ; Create all target configurations..ConfigX86 = [.Compiler = 'bin/x86/cl.exe'.ConfigName = 'x86'].ConfigX64 = [.Compiler = 'bin/x64/cl.exe'.ConfigName =](https://reader033.vdocuments.us/reader033/viewer/2022052013/6029e02293d5696a6b36bb6c/html5/thumbnails/11.jpg)
•
•
•
•