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