Add basic armv7 linux support to the cmake build.
Requires new cmake toolchain file armv7-linux-gcc.cmake: $ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/armv7-linux-gcc.cmake Above requires arm-linux-gnueabihf-gcc toolchain is installed and its bin dir added to PATH. BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76 Change-Id: Id2d0022fd5b4615fef7ea0ef38980cbdfd957c0e
This commit is contained in:
Родитель
c538d6815e
Коммит
f47266d965
|
@ -97,6 +97,10 @@ elseif ("${AOM_TARGET_CPU}" MATCHES "arm")
|
|||
if ("${AOM_TARGET_SYSTEM}" STREQUAL "Darwin")
|
||||
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 ()
|
||||
endif ()
|
||||
if (NOT AS_EXECUTABLE)
|
||||
message(FATAL_ERROR
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
##
|
||||
## 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_ARMV7_LINUX_GCC_CMAKE_)
|
||||
set(AOM_BUILD_CMAKE_TOOLCHAINS_ARMV7_LINUX_GCC_CMAKE_ 1)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME "Linux")
|
||||
|
||||
# TODO(tomfinegan): Allow control of compiler prefix (aka $CROSS).
|
||||
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
|
||||
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
|
||||
set(AS_EXECUTABLE arm-linux-gnueabihf-as)
|
||||
|
||||
# TODO(tomfinegan): Handle soft float.
|
||||
set(CMAKE_C_COMPILER_ARG1 "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
|
||||
set(CMAKE_CXX_COMPILER_ARG1 "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
|
||||
set(AOM_AS_FLAGS
|
||||
--defsym ARCHITECTURE=7 -march=armv7-a -mfloat-abi=hard -mfpu=neon)
|
||||
|
||||
set(CMAKE_SYSTEM_PROCESSOR "armv7")
|
||||
|
||||
# No intrinsics flag required for armv7-linux-gcc.
|
||||
set(AOM_NEON_INTRIN_FLAG "")
|
||||
|
||||
# Assembler sources must be converted for armv7-linux-gcc targets.
|
||||
set(AOM_ADS2GAS_REQUIRED 1)
|
||||
set(AOM_ADS2GAS "${CMAKE_CURRENT_SOURCE_DIR}/build/make/ads2gas.pl")
|
||||
set(AOM_GAS_EXT "S")
|
||||
|
||||
# No runtime cpu detect for armv7-linux-gcc.
|
||||
set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE BOOL "")
|
||||
|
||||
endif () # AOM_BUILD_CMAKE_TOOLCHAINS_ARMV7_LINUX_GCC_CMAKE_
|
Загрузка…
Ссылка в новой задаче