endif()
message(STATUS "gcc will tune for ${GNUCC_ARCH}")
elseif (CMAKE_COMPILER_IS_CLANG AND NOT CROSS_COMPILE)
- set(GNUCC_ARCH native)
- set(TUNE_FLAG generic)
message(STATUS "clang will tune for ${TUNE_FLAG}")
- if (BUILD_AVX512)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SKYLAKE_FLAG}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SKYLAKE_FLAG}")
- elseif (BUILD_AVX2)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
+ if (ARCH_IA32 OR ARCH_X86_64)
+ set(GNUCC_ARCH native)
+ set(TUNE_FLAG generic)
+ if (BUILD_AVX512)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SKYLAKE_FLAG}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SKYLAKE_FLAG}")
+ elseif (BUILD_AVX2)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
+ else()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
+ endif()
+ elseif(ARCH_AARCH64)
+ set(GNUCC_ARCH armv8)
+ set(TUNE_FLAG generic)
+ elseif(ARCH_ARM32)
+ set(GNUCC_ARCH armv7a)
+ set(TUNE_FLAG generic)
else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
+ set(GNUCC_ARCH native)
+ set(TUNE_FLAG generic)
endif()
- message(STATUS "${CMAKE_C_FLAGS}")
- message(STATUS "${CMAKE_CXX_FLAGS}")
elseif (CROSS_COMPILE)
set(GNUCC_ARCH generic)
set(TUNE_FLAG generic)
if (ARCH_IA32 OR ARCH_X86_64 OR ARCH_ARM32 OR ARCH_AARCH64)
if (NOT CMAKE_C_FLAGS MATCHES .*march.* AND NOT CMAKE_C_FLAGS MATCHES .*mtune.*)
- set(ARCH_C_FLAGS "-march=${GNUCC_ARCH} -mtune=${TUNE_FLAG}")
+ set(ARCH_C_FLAGS "-march=${GNUCC_ARCH} -mtune=${TUNE_FLAG}")
endif()
-
- if (NOT CMAKE_CXX_FLAGS MATCHES .*march.* AND NOT CMAKE_CXX_FLAGS MATCHES .*mtune.*)
+ if (NOT CMAKE_CXX_FLAGS MATCHES .*march.* AND NOT CMAKE_CXX_FLAGS MATCHES .*mtune.*)
set(ARCH_CXX_FLAGS "-march=${GNUCC_ARCH} -mtune=${TUNE_FLAG}")
endif()
endif()