131 lines
5.7 KiB
Lua
131 lines
5.7 KiB
Lua
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")
|
|
|
|
-- When enabled, debug run targets shall run under the modules path instead of sRelWd
|
|
auSetDefault(settings, "bIsBuildDirWd" , false)
|
|
|
|
-- Archives the debug symbols of sRelShip binaries
|
|
auSetDefault(settings, "bArchiveShipSyms" , false)
|
|
|
|
-- 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)
|
|
|
|
auSetDefault(settings, "bStaticRuntime", true)
|
|
|
|
auSetDefault(settings, "bEditAndCont", false)
|
|
|
|
auSetDefault(settings, "bSplitTargetDirByArch", false)
|
|
|
|
|
|
-- 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)
|
|
|
|
auSetDefault(settings, "bForceClangOnUnix", true)
|
|
|
|
auSetDefault(settings, "bForceWin32EscLd", true)
|
|
|
|
-- 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)
|
|
|
|
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 |