From f28545cabd1dc9d067b36cef088e140a6cc5d55a Mon Sep 17 00:00:00 2001 From: J Reece Wilson Date: Wed, 31 Jul 2024 03:12:53 +0100 Subject: [PATCH] [*] Gotta deal with more fucking idiots --- Core/project.lua | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/Core/project.lua b/Core/project.lua index a47ebde..59803eb 100644 --- a/Core/project.lua +++ b/Core/project.lua @@ -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