[*] Gotta deal with more fucking idiots

This commit is contained in:
Reece Wilson 2024-07-31 03:12:53 +01:00
parent 8b8aadaa86
commit f28545cabd

View File

@ -100,6 +100,28 @@ local function configureProjectForCompiler()
filter {"toolset:msc", "files:**.cpp or files:**.cc or files:**.cxx"}
buildoptions {"/experimental:module-", "/Zc:__cplusplus"}
filter {}
filter {"toolset:clang"}
disablewarnings { "implicit-function-declaration", "deprecated-non-prototype" }
filter {}
filter {"toolset:clang", "files:**.cpp or files:**.cc or files:**.cxx"}
disablewarnings { "dynamic-class-memaccess", "deprecated-this-capture" }
filter {}
filter { "toolset:msc" }
defines {"AURORA_RUNTIME_MEMCMP=__builtin_memcmp"}
defines {"AURORA_RUNTIME_MEMCMP_=1"}
filter {}
filter { "toolset:clang" }
defines {"AURORA_RUNTIME_MEMSET=__builtin_memset"}
defines {"AURORA_RUNTIME_MEMCPY=__builtin_memcpy"}
defines {"AURORA_RUNTIME_MEMCMP=__builtin_memcmp"}
defines {"AURORA_RUNTIME_MEMSET_=1"}
defines {"AURORA_RUNTIME_MEMCPY_=1"}
defines {"AURORA_RUNTIME_MEMCMP_=1"}
filter {}
end
local function configureProjectForPlatform(platform, projectType)
@ -158,28 +180,22 @@ local function configureProjectForPlatforms(projType)
end
local function configureProjectCPUTarget()
filter { "toolset:msc", "architecture:x86_64"}
buildoptions { "/arch:AVX" }
filter {}
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" }
disablewarnings { "dynamic-class-memaccess" }
defines {"AURORA_RUNTIME_MEMSET=__builtin_memset"}
defines {"AURORA_RUNTIME_MEMCPY=__builtin_memcpy"}
defines {"AURORA_RUNTIME_MEMSET_=1"}
defines {"AURORA_RUNTIME_MEMCPY_=1"}
buildoptions { "-march=ivybridge", "-maes" }
filter {}
filter { "toolset:clang", "architecture:x86"}
-- Let Linux x86_32 support Intel Core+ (2006) CPUs
buildoptions { "-march=core2" }
disablewarnings { "dynamic-class-memaccess" }
defines {"AURORA_RUNTIME_MEMSET=__builtin_memset"}
defines {"AURORA_RUNTIME_MEMCPY=__builtin_memcpy"}
defines {"AURORA_RUNTIME_MEMSET_=1"}
defines {"AURORA_RUNTIME_MEMCPY_=1"}
filter {}
end