2021-11-13 08:31:32 +00:00
local settings = auFetchGlobal ( " Settings " )
-- General settings you can probably ignore
auSetDefault ( settings , " bPremakeOverload " , nil )
auSetDefault ( settings , " sPremakeOverload " , nil )
auSetDefault ( settings , " sAbsValac " , nil )
auSetDefault ( settings , " sAbsRoot " , nil )
-- Root offset from `../../`
-- Embedders should define 'sAbsAuRoot' from their premake scripts
-- Users may change this to account for nested monorepos
auSetDefault ( settings , " sRelRoot " , " ./ " )
--
auSetDefault ( settings , " sRelAuRoot " , " ./ " )
-- The following settings define constants relating to the aurora build scripts
-- You should probably ignore me
auSetDefault ( settings , " sRelScripts " , " ./Build_Scripts " )
-- You should probably ignore me
auSetDefault ( settings , " sRelWin32 " , " ./Build_Scripts/Win32 " )
-- You should probably ignore me
auSetDefault ( settings , " sRelUnixBins " , " ./Build_Scripts/bin " )
-- You should probably ignore me
auSetDefault ( settings , " sRelRepoScripts " , " ./Build_UserScripts " )
-- The following settings are relative to the projects sAbsRoot/sRelRoot
-- Exported debug binaries
-- Debug binaries, debug stl, debug everything. These binaries suck and you probably shouldn't use them.
auSetDefault ( settings , " sRelDebug " , " ./Build/Develop " )
-- Exported staging binaries.
-- These binaries should be used by teams internally and for qa.
-- They contain most high level debug assertions, leaving the lower level debug assertions disabled for performance reasons
-- Path strings and other debug information should not be shipped in real time or performance critical applications
-- For those use cses, defer to the shippable binaries
auSetDefault ( settings , " sRelStage " , " ./Build/Stage " )
-- Exported ship binaires
--
-- Ship binaries contain no debug assertions or debug-level push system errors
-- Debug information is still exported for these, albeit stripped from ELF
auSetDefault ( settings , " sRelShip " , " ./Build/Ship " )
-- Working directory for debug run targets should 'bIsBuildDirWd' be set to false
auSetDefault ( settings , " sRelWd " , " ./Build/CWD " )
-- ELF stripped or PDB archieve directory
auSetDefault ( settings , " sRelSymbols " , " ./Build/Symbols " ) -- exported private symbols
auSetDefault ( settings , " sRelLinkLibs " , " ./Build/Link " ) -- public link files
auSetDefault ( settings , " sRelCompilerWd " , " ./Build/Workspace " )
2023-12-09 22:10:43 +00:00
auSetDefault ( settings , " sRelRootInclude " , " ./Include " )
2021-11-13 08:31:32 +00:00
-- When enabled, debug run targets shall run under the modules path instead of sRelWd
auSetDefault ( settings , " bIsBuildDirWd " , false )
2023-08-25 13:11:50 +00:00
--
auSetDefault ( settings , " bIsShipLTOByDefault " , true )
2021-11-13 08:31:32 +00:00
-- Archives the debug symbols of sRelShip binaries
2023-08-25 13:11:50 +00:00
auSetDefault ( settings , " bArchiveShipSyms " , false )
2021-11-13 08:31:32 +00:00
-- C++ language version. C++14/17/20
auSetDefault ( settings , " sCppVersion " , " C++20 " )
-- Enables standard aurora post build steps including copy of binaries and stripping of symbols
auSetDefault ( settings , " bUseAuBuildHooks " , true )
-- Aurora automatically searches for ./include in the root of your solution for solution wide headers
-- 'bIncludeAuIncludeIfExists' enables this behaviour
auSetDefault ( settings , " bIncludeAuIncludeIfExists " , true )
--Enables multithreaded compilation across toolchains that support it
auSetDefault ( settings , " bMultithreadBuild " , true )
auSetDefault ( settings , " bUseUnixStdPrefix " , false ) -- should include the standard unix lib prefix
auSetDefault ( settings , " sLibPrefix " , " " ) -- if false, use this
auSetDefault ( settings , " sMsvcDefCharset " , " MBCS " )
--
auSetDefault ( settings , " sNameOfDebug " , " Debug " )
--
auSetDefault ( settings , " sNameOfInternal " , " Stage " )
--
auSetDefault ( settings , " sNameOfShip " , " Ship " )
--
auSetDefault ( settings , " aNamesOfConfigs " , { " Debug " , " Stage " , " Ship " } )
--
auSetDefault ( settings , " bDefinePartialABIInTargetName " , true )
2022-03-07 20:13:40 +00:00
auSetDefault ( settings , " bStaticRuntime " , true )
2023-08-27 11:45:28 +00:00
auSetDefault ( settings , " bBasicMitigations " , true )
2023-03-05 20:38:25 +00:00
--
auSetDefault ( settings , " bLTO " , false )
--
2022-03-07 20:13:40 +00:00
auSetDefault ( settings , " bEditAndCont " , false )
2023-03-05 20:38:25 +00:00
--
2022-03-18 07:16:48 +00:00
auSetDefault ( settings , " bSplitTargetDirByArch " , false )
2021-11-13 08:31:32 +00:00
-- Disable common warnings.
-- Rationalized as other big projects tend to disable them, builds on linuxs were ugly, and clang and msvc would seethe at different things, and I don't care.
-- You should probably turn this off once in a while to check for hidden issues
auSetDefault ( settings , " bDisableWarningsThatAnnoyRec " , true )
auSetDefault ( settings , " bForceClangWin32 " , false )
-- Forces libc++ stl on Linux, where such is not currently recommended by the vendor, but it's worth forcing modern tech
-- G++ is a mess whose future I don't care for. Not that libc++ doesn't do stupid thing on Linux, but au runtime takes care of a lot of things, so idc.
auSetDefault ( settings , " bForceLLVMStl " , true )
2022-03-20 10:04:05 +00:00
auSetDefault ( settings , " bForceClangOnUnix " , true )
2021-11-15 18:34:46 +00:00
auSetDefault ( settings , " bForceWin32EscLd " , true )
2023-12-09 23:25:06 +00:00
auSetDefault ( settings , " bActionsIncludeFull " , false )
2021-11-13 08:31:32 +00:00
-- Premake5 binary name to look for when when tied into cmake. Used by build actions and other lua scripted features
auSetDefault ( settings , " sDefaultCmakePremakeBin " , " premake5 " )
-- In place of page NX traps and suspending thread contexts like most debug operations in visual studio,
-- they perform an expensive check in each functions prologue :vomit:
-- V8 took minutes to start up on an i9-9900k, QST/VM tests result in highs of ~30MB/s down from 900MB/s
-- MSVCs justmycode implementation is not fit for use.
auSetDefault ( settings , " bHotswap " , false )
2022-03-06 17:28:21 +00:00
if ( os.host ( ) == " windows " ) then
auSetDefault ( settings , " sValaGirs " , " C: \\ msys64 \\ mingw64 \\ share \\ gir-1.0 " )
auSetDefault ( settings , " aValaDevVApis " , { " C: \\ msys64 \\ mingw64 \\ share \\ vala \\ vapi " , " C: \\ msys64 \\ mingw64 \\ share \\ vala-0.54 \\ vapi " } )
else
auSetDefault ( settings , " sValaGirs " , " /usr/share/gir-1.0 " )
auSetDefault ( settings , " aValaDevVApis " , { " /usr/share/vala/vapi " , " /usr/share/vala-0.54/vapi " } )
end