2022-01-30 17:25:04 +00:00

51 lines
2.2 KiB
Diff

Override default tuning which is for the build system
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -175,18 +175,34 @@
string(SUBSTRING "${_GCC_OUTPUT}" ${POS} -1 _GCC_OUTPUT)
string(REGEX REPLACE "${ARCH_FLAG}=[ \t]*([^ \n]*)[ \n].*" "\\1" GNUCC_ARCH "${_GCC_OUTPUT}")
- # test the parsed flag
- set (EXEC_ARGS ${CC_ARG1} -E - -mtune=${GNUCC_ARCH})
- execute_process(COMMAND ${CMAKE_C_COMPILER} ${EXEC_ARGS}
- OUTPUT_QUIET ERROR_QUIET
- INPUT_FILE /dev/null
- RESULT_VARIABLE GNUCC_TUNE_TEST)
- if (NOT GNUCC_TUNE_TEST EQUAL 0)
- message(WARNING "Something went wrong determining gcc tune: -mtune=${GNUCC_ARCH} not valid, falling back to -mtune=native")
- set(TUNE_FLAG native)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "arch64")
+ set(GNUCC_ARCH armv8)
+ set(TUNE_FLAG generic)
+ message(STATUS "gcc will tune for ${GNUCC_ARCH}, ${TUNE_FLAG}")
+ set(ARCH_C_FLAGS -march=armv8-a)
+ set(ARCH_CXX_FLAGS -march=armv8-a)
+ message(WARNING "Using armv8-a for arm64")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "i686")
+ set(GNUCC_ARCH core2)
+ set(TUNE_FLAG generic)
+ message(STATUS "gcc will tune for ${GNUCC_ARCH}, ${TUNE_FLAG}")
+ set(ARCH_C_FLAGS -march=core2)
+ set(ARCH_CXX_FLAGS -march=core2)
+ message(WARNING "Using core2 for X86/X86_64")
else()
- set(TUNE_FLAG ${GNUCC_ARCH})
- message(STATUS "gcc will tune for ${GNUCC_ARCH}, ${TUNE_FLAG}")
+ # test the parsed flag
+ set (EXEC_ARGS ${CC_ARG1} -E - -mtune=${GNUCC_ARCH})
+ execute_process(COMMAND ${CMAKE_C_COMPILER} ${EXEC_ARGS}
+ OUTPUT_QUIET ERROR_QUIET
+ INPUT_FILE /dev/null
+ RESULT_VARIABLE GNUCC_TUNE_TEST)
+ if (NOT GNUCC_TUNE_TEST EQUAL 0)
+ message(WARNING "Something went wrong determining gcc tune: -mtune=${GNUCC_ARCH} not valid, falling back to -mtune=native")
+ set(TUNE_FLAG native)
+ else()
+ set(TUNE_FLAG ${GNUCC_ARCH})
+ message(STATUS "gcc will tune for ${GNUCC_ARCH}, ${TUNE_FLAG}")
+ endif()
endif()
elseif (CMAKE_COMPILER_IS_CLANG AND NOT CROSS_COMPILE)
if (ARCH_IA32 OR ARCH_X86_64)