diff --git a/Core/project.lua b/Core/project.lua index f7d8f55..22a224a 100644 --- a/Core/project.lua +++ b/Core/project.lua @@ -157,6 +157,26 @@ local function configureProjectForPlatforms(projType) end) end +local function configureProjectCPUTarget() + filter { "toolset:clang", "architecture:x86_64"} + -- Some discount VPSes might be running on this dead architecture + -- Haswell introduced AVX2. + -- clang cpu levels: x86_64-v4 contains meme avx512 instructions and beyond, x86_64-v3 includes AVX1+2, x86_64-v2 doesn't have any AVX whatsoever. + -- Dunno if intentional because SSE4.1 >= AVX, but either way, let's get some modern CPU features in an otherwise widely supported binary. + -- Lets sit between v2 and v3 by a single intel generation. + buildoptions { "-march=ivybridge" } + defines {"AURORA_RUNTIME_MEMSET=__builtin_memset"} + defines {"AURORA_RUNTIME_MEMCPY=__builtin_memcpy"} + filter {} + + filter { "toolset:clang", "architecture:x86"} + -- Let Linux x86_32 support Intel Core+ (2006) CPUs + buildoptions { "-march=core2" } + defines {"AURORA_RUNTIME_MEMSET=__builtin_memset"} + defines {"AURORA_RUNTIME_MEMCPY=__builtin_memcpy"} + filter {} +end + local function configureProjectErrors() if (not Aurora.Settings.bDisableWarningsThatAnnoyRec) then return @@ -194,7 +214,7 @@ local function configureProjectErrors() "unknown-warning-option" } - filter{} + filter {} if (targetingCmake) then filter {"toolset:msc"} @@ -379,6 +399,7 @@ local function setupProject(prj) configureProjectForSolution(prj) configureProjectErrors() configureProjectForCompiler() + configureProjectCPUTarget() configureProjectForPlatforms(prj.projectType) configureProjectForTarget() configureProjectForDebug(prj)