Browse Source

Removed SIMD and implemented optimizations from PR 3263

pull/3246/head
Forrest Keller 4 weeks ago
committed by crueter
parent
commit
f844c03674
  1. 84
      src/CMakeLists.txt

84
src/CMakeLists.txt

@ -15,90 +15,6 @@ endif()
# CMake seems to only define _DEBUG on Windows
set_property(DIRECTORY APPEND PROPERTY
COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG> $<$<NOT:$<CONFIG:Debug>>:NDEBUG>)
# Platform detection macros
if(WIN32)
add_compile_definitions(PLATFORM_WINDOWS)
elseif(ANDROID)
add_compile_definitions(PLATFORM_ANDROID)
elseif(APPLE)
add_compile_definitions(PLATFORM_MACOS)
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
add_compile_definitions(PLATFORM_FREEBSD)
elseif(UNIX)
add_compile_definitions(PLATFORM_LINUX)
endif()
# Architecture-specific intrinsics flags
if(ARCHITECTURE_x86_64)
add_compile_definitions(ARCH_X86_64)
if(MSVC AND NOT CXX_CLANG)
# MSVC: Enable AVX2 (includes BMI2 support)
add_compile_options(/arch:AVX2)
else()
# GCC/Clang: Enable SSE4.2, AVX2, and BMI2
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-mavx2" COMPILER_SUPPORTS_AVX2)
check_cxx_compiler_flag("-mbmi2" COMPILER_SUPPORTS_BMI2)
if(COMPILER_SUPPORTS_AVX2)
add_compile_options(-mavx2)
endif()
if(COMPILER_SUPPORTS_BMI2)
add_compile_options(-mbmi2)
add_compile_definitions(HAS_BMI2)
endif()
endif()
elseif(ARCHITECTURE_arm64)
add_compile_definitions(ARCH_ARM64)
# ARM64 has NEON by default, but enable explicitly for some compilers
if(NOT MSVC)
add_compile_options(-march=armv8-a)
endif()
# Android-specific ARM64 configuration
if(ANDROID AND ANDROID_ABI STREQUAL "arm64-v8a")
add_compile_options(-march=armv8-a+simd)
endif()
elseif(ARCHITECTURE_arm)
add_compile_definitions(ARCH_ARM32)
# Check for NEON support on ARM32
if(NOT MSVC)
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-mfpu=neon" COMPILER_SUPPORTS_NEON)
if(COMPILER_SUPPORTS_NEON)
add_compile_options(-mfpu=neon)
add_compile_definitions(HAS_NEON)
# Android ARM32 specific
if(ANDROID)
add_compile_options(-mfloat-abi=softfp)
endif()
endif()
endif()
endif()
# Android-specific ABI configurations
if(ANDROID)
if(ANDROID_ABI STREQUAL "x86_64")
add_compile_definitions(ARCH_X86_64)
if(NOT MSVC)
add_compile_options(-msse4.2 -mavx2 -mbmi2)
endif()
elseif(ANDROID_ABI STREQUAL "armeabi-v7a")
add_compile_definitions(ARCH_ARM32)
add_compile_options(-mfpu=neon -mfloat-abi=softfp)
add_compile_definitions(HAS_NEON)
endif()
endif()
# Set compilation flags
if (MSVC AND NOT CXX_CLANG)

Loading…
Cancel
Save