From a05f081406738401671011bed680a12af283ba0a Mon Sep 17 00:00:00 2001 From: J Reece Wilson Date: Wed, 31 Jul 2024 03:12:53 +0100 Subject: [PATCH] =?UTF-8?q?[*]=20Dumb=20fucks:=20Daniel=20Griffing,=20Thom?= =?UTF-8?q?as=20K=C3=B6ppe,=20et=20al=20Dumbshit=20MSVC=20devs:=20https://?= =?UTF-8?q?developercommunity.visualstudio.com/t/Support-=5F=5Fbuiltin=5Fm?= =?UTF-8?q?emcpy-and-=5F=5Fbuiltin=5Fm/1046483=3Fftype=3Dproblem=20Read=20?= =?UTF-8?q?this=20dumbfuck=20babble:=20https://www.open-std.org/jtc1/sc22/?= =?UTF-8?q?wg21/docs/papers/2018/p0806r2.html=20The=20skill-sets:=20https:?= =?UTF-8?q?//github.com/tkoeppe=3Ftab=3Drepositories=20Blogging=20through?= =?UTF-8?q?=20news=20media:=20https://www.textilwirtschaft.de/business/new?= =?UTF-8?q?s/die-ueberraschungsausgabe-ki-ist-wie-derschritt-von-der-sense?= =?UTF-8?q?-zum-maehdrescher-232732?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/project.lua | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Core/project.lua b/Core/project.lua index a47ebde..fd72aae 100644 --- a/Core/project.lua +++ b/Core/project.lua @@ -100,6 +100,14 @@ local function configureProjectForCompiler() filter {"toolset:msc", "files:**.cpp or files:**.cc or files:**.cxx"} buildoptions {"/experimental:module-", "/Zc:__cplusplus"} filter {} + + filter {"toolset:clang"} + buildoptions {"-Wno-implicit-function-declaration", "-Wno-deprecated-non-prototype"} + filter {} + + filter {"toolset:clang", "files:**.cpp or files:**.cc or files:**.cxx"} + buildoptions {"-Wno-deprecated-this-capture"} + filter {} end local function configureProjectForPlatform(platform, projectType) @@ -158,18 +166,29 @@ local function configureProjectForPlatforms(projType) end local function configureProjectCPUTarget() + filter { "toolset:msc"} + defines {"AURORA_RUNTIME_MEMCMP=__builtin_memcmp"} + defines {"AURORA_RUNTIME_MEMCMP_=1"} + filter {} + + 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" } + buildoptions { "-march=ivybridge", "-maes" } disablewarnings { "dynamic-class-memaccess" } 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 {} filter { "toolset:clang", "architecture:x86"} @@ -178,8 +197,10 @@ local function configureProjectCPUTarget() disablewarnings { "dynamic-class-memaccess" } 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