diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake index 6000062f3..c5476d3d4 100644 --- a/build/cmake/aom_configure.cmake +++ b/build/cmake/aom_configure.cmake @@ -98,9 +98,8 @@ elseif ("${AOM_TARGET_CPU}" MATCHES "arm") set(AS_EXECUTABLE as) set(AOM_AS_FLAGS -arch ${AOM_TARGET_CPU} -isysroot ${CMAKE_OSX_SYSROOT}) elseif ("${AOM_TARGET_SYSTEM}" STREQUAL "Linux") - if (NOT AS_EXECUTABLE) - message(FATAL_ERROR "Assembler missing for ${AOM_TARGET_CPU}-Linux.") - endif () + # arm linux assembler settings controlled by + # build/cmake/toolchains/arm*-linux*.cmake endif () if (NOT AS_EXECUTABLE) message(FATAL_ERROR diff --git a/build/cmake/toolchains/arm64-linux-gcc.cmake b/build/cmake/toolchains/arm64-linux-gcc.cmake new file mode 100644 index 000000000..dd0df53f7 --- /dev/null +++ b/build/cmake/toolchains/arm64-linux-gcc.cmake @@ -0,0 +1,31 @@ +## +## Copyright (c) 2017, Alliance for Open Media. All rights reserved +## +## This source code is subject to the terms of the BSD 2 Clause License and +## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License +## was not distributed with this source code in the LICENSE file, you can +## obtain it at www.aomedia.org/license/software. If the Alliance for Open +## Media Patent License 1.0 was not distributed with this source code in the +## PATENTS file, you can obtain it at www.aomedia.org/license/patent. +## +if (NOT AOM_BUILD_CMAKE_TOOLCHAINS_ARM64_LINUX_GCC_CMAKE_) +set(AOM_BUILD_CMAKE_TOOLCHAINS_ARM64_LINUX_GCC_CMAKE_ 1) + +set(CMAKE_SYSTEM_NAME "Linux") + +# TODO(tomfinegan): Allow control of compiler prefix (aka $CROSS). +set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) +set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++) +set(AS_EXECUTABLE arm-linux-gnueabihf-as) +set(CMAKE_C_COMPILER_ARG1 "-march=armv8-a") +set(CMAKE_CXX_COMPILER_ARG1 "-march=armv8-a") +set(AOM_AS_FLAGS "-march=armv8-a") +set(CMAKE_SYSTEM_PROCESSOR "arm64") + +# No intrinsics flag required for arm64-linux-gcc. +set(AOM_NEON_INTRIN_FLAG "") + +# No runtime cpu detect for arm64-linux-gcc. +set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE BOOL "") + +endif () # AOM_BUILD_CMAKE_TOOLCHAINS_ARM64_LINUX_GCC_CMAKE_