diff --git a/CMakeLists.txt b/CMakeLists.txt index 6fbf9ba144..d29898b819 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -373,6 +373,8 @@ endif() # Build/optimization presets if (PLATFORM_LINUX OR CXX_CLANG) if (ARCHITECTURE_x86_64) + # See https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html + # Generic supports Pentium Pro instruction set and above set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, v3, zen2, zen4, native") if (${YUZU_BUILD_PRESET} STREQUAL "generic") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64 -mtune=generic") @@ -391,13 +393,17 @@ if (PLATFORM_LINUX OR CXX_CLANG) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native") endif() elseif(ARCHITECTURE_arm64) - set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, armv9") + # See https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html + set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, armv9, native") if (${YUZU_BUILD_PRESET} STREQUAL "generic") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a -mtune=generic") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a -mtune=generic") elseif (${YUZU_BUILD_PRESET} STREQUAL "armv9") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv9-a -mtune=generic") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv9-a -mtune=generic") + elseif (${YUZU_BUILD_PRESET} STREQUAL "native") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native") endif() endif() endif()