Add basic arm64 linux support to the cmake build.

Requires new cmake toolchain file arm64-linux-gcc.cmake:
$ cmake path/to/aom
-DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/arm64-linux-gcc.cmake

Above requires aarch64-linux-gnu-gcc toolchain is installed and its
bin dir added to PATH.

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I6c7e297a67415008583b7ac2cd8aea528787e6d0
This commit is contained in:
Tom Finegan 2017-03-29 10:56:18 -07:00
Родитель f47266d965
Коммит 48d1ed81ce
2 изменённых файлов: 33 добавлений и 3 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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_