mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 06:16:30 +03:00
273 lines
10 KiB
Plaintext
273 lines
10 KiB
Plaintext
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
import("//build/config/android/config.gni")
|
||
|
import("//build/config/arm.gni")
|
||
|
|
||
|
declare_args() {
|
||
|
# Override this value to build with small float FFT tables
|
||
|
openmax_big_float_fft = true
|
||
|
}
|
||
|
|
||
|
config("dl_config") {
|
||
|
include_dirs = [ ".." ]
|
||
|
if (current_cpu == "arm") {
|
||
|
if (arm_use_neon) {
|
||
|
# Enable build-time NEON selection.
|
||
|
defines = [ "DL_ARM_NEON" ]
|
||
|
} else if (arm_optionally_use_neon) {
|
||
|
# Enable run-time NEON selection.
|
||
|
defines = [ "DL_ARM_NEON_OPTIONAL" ]
|
||
|
}
|
||
|
} else if (current_cpu == "arm64") {
|
||
|
# Enable build-time NEON selection.
|
||
|
defines = [ "DL_ARM_NEON" ]
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "arm" && is_clang) {
|
||
|
# TODO(hans) Enable integrated-as (crbug.com/124610).
|
||
|
asmflags = [ "-fno-integrated-as" ]
|
||
|
if (is_android) {
|
||
|
rebased_android_toolchain_root =
|
||
|
rebase_path(android_toolchain_root, root_build_dir)
|
||
|
# Else /usr/bin/as gets picked up.
|
||
|
asmflags += [ "-B${rebased_android_toolchain_root}/bin" ]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# GYP: third_party/openmax_dl/dl/dl.gyp:openmax_dl
|
||
|
static_library("dl") {
|
||
|
public_configs = [ ":dl_config" ]
|
||
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
||
|
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||
|
sources = [
|
||
|
"api/omxtypes.h",
|
||
|
"sp/api/omxSP.h",
|
||
|
"sp/src/armSP_FFT_F32TwiddleTable.c",
|
||
|
]
|
||
|
|
||
|
cflags = []
|
||
|
deps = []
|
||
|
defines = []
|
||
|
|
||
|
if (openmax_big_float_fft) {
|
||
|
defines += [ "BIG_FFT_TABLE" ]
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "arm" || current_cpu == "arm64") {
|
||
|
sources += [
|
||
|
# Common files that are used by both arm and arm64 code.
|
||
|
"api/arm/armOMX.h",
|
||
|
"api/arm/omxtypes_s.h",
|
||
|
"sp/api/armSP.h",
|
||
|
"sp/src/arm/armSP_FFT_S32TwiddleTable.c",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_C_FC32.c",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_C_SC32.c",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_R_F32.c",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_R_S32.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_C_FC32.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_R_F32.c",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "arm") {
|
||
|
sources += [
|
||
|
# Common files that are used by both the NEON and non-NEON code.
|
||
|
"api/armCOMM_s.h",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_C_SC16.c",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_R_S16.c",
|
||
|
"sp/src/arm/omxSP_FFTGetBufSize_R_S16S32.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_C_SC16.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_C_SC32.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_R_S16.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_R_S16S32.c",
|
||
|
"sp/src/arm/omxSP_FFTInit_R_S32.c",
|
||
|
]
|
||
|
|
||
|
deps += [
|
||
|
":openmax_dl_armv7",
|
||
|
":openmax_dl_neon"
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "arm64") {
|
||
|
sources += [
|
||
|
"api/arm/arm64COMM_s.h",
|
||
|
|
||
|
# Complex floating-point FFT
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix2_fs_s.S",
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix2_ls_s.S",
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix2_s.S",
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix4_fs_s.S",
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix4_ls_s.S",
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix4_s.S",
|
||
|
"sp/src/arm/arm64/armSP_FFT_CToC_FC32_Radix8_fs_s.S",
|
||
|
"sp/src/arm/arm64/omxSP_FFTInv_CToC_FC32.c",
|
||
|
"sp/src/arm/arm64/omxSP_FFTFwd_CToC_FC32.c",
|
||
|
|
||
|
# Real floating-point FFT
|
||
|
"sp/src/arm/arm64/armSP_FFTInv_CCSToR_F32_preTwiddleRadix2_s.S",
|
||
|
"sp/src/arm/arm64/omxSP_FFTFwd_RToCCS_F32.c",
|
||
|
"sp/src/arm/arm64/ComplexToRealFixup.S",
|
||
|
"sp/src/arm/arm64/omxSP_FFTInv_CCSToR_F32.c",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "x86" || current_cpu == "x64") {
|
||
|
if (is_posix || is_fuchsia) {
|
||
|
cflags += [ "-msse2" ]
|
||
|
}
|
||
|
|
||
|
sources += [
|
||
|
# Real 32-bit floating-point FFT.
|
||
|
"sp/api/x86SP.h",
|
||
|
"sp/src/x86/omxSP_FFTFwd_RToCCS_F32_Sfs.c",
|
||
|
"sp/src/x86/omxSP_FFTGetBufSize_R_F32.c",
|
||
|
"sp/src/x86/omxSP_FFTInit_R_F32.c",
|
||
|
"sp/src/x86/omxSP_FFTInv_CCSToR_F32_Sfs.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix2_fs.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix2_ls.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix2_ls_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix2_ms.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix4_fs.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix4_fs_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix4_ls.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix4_ls_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix4_ms.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Fwd_Radix4_ms_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix2_fs.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix2_ls.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix2_ls_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix2_ms.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix4_fs.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix4_fs_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix4_ls.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix4_ls_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix4_ms.c",
|
||
|
"sp/src/x86/x86SP_FFT_CToC_FC32_Inv_Radix4_ms_sse.c",
|
||
|
"sp/src/x86/x86SP_FFT_F32_radix2_kernel.c",
|
||
|
"sp/src/x86/x86SP_FFT_F32_radix4_kernel.c",
|
||
|
"sp/src/x86/x86SP_SSE_Math.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "mipsel") {
|
||
|
cflags += [ "-std=c99" ]
|
||
|
sources -= [ "sp/src/armSP_FFT_F32TwiddleTable.c" ]
|
||
|
|
||
|
sources += [
|
||
|
"sp/api/mipsSP.h",
|
||
|
"sp/src/mips/mips_FFTFwd_RToCCS_F32_complex.c",
|
||
|
"sp/src/mips/mips_FFTFwd_RToCCS_F32_real.c",
|
||
|
"sp/src/mips/mips_FFTInv_CCSToR_F32_complex.c",
|
||
|
"sp/src/mips/mips_FFTInv_CCSToR_F32_real.c",
|
||
|
"sp/src/mips/omxSP_FFT_F32TwiddleTable.c",
|
||
|
"sp/src/mips/omxSP_FFTFwd_RToCCS_F32_Sfs.c",
|
||
|
"sp/src/mips/omxSP_FFTGetBufSize_R_F32.c",
|
||
|
"sp/src/mips/omxSP_FFTInit_R_F32.c",
|
||
|
"sp/src/mips/omxSP_FFTInv_CCSToR_F32_Sfs.c",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (current_cpu == "arm") {
|
||
|
# GYP: third_party/openmax_dl/dl/dl.gyp:openmax_dl_armv7
|
||
|
# Non-NEON implementation of FFT. This library is NOT
|
||
|
# standalone. Applications must link with openmax_dl.
|
||
|
static_library("openmax_dl_armv7") {
|
||
|
configs += [ ":dl_config" ]
|
||
|
visibility = [ ":*" ]
|
||
|
|
||
|
sources = [
|
||
|
# Complex floating-point FFT
|
||
|
"sp/src/arm/armv7/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S",
|
||
|
"sp/src/arm/armv7/armSP_FFT_CToC_FC32_Radix4_fs_unsafe_s.S",
|
||
|
"sp/src/arm/armv7/armSP_FFT_CToC_FC32_Radix4_unsafe_s.S",
|
||
|
"sp/src/arm/armv7/armSP_FFT_CToC_FC32_Radix8_fs_unsafe_s.S",
|
||
|
"sp/src/arm/armv7/omxSP_FFTInv_CToC_FC32_Sfs_s.S",
|
||
|
"sp/src/arm/armv7/omxSP_FFTFwd_CToC_FC32_Sfs_s.S",
|
||
|
|
||
|
# Real floating-point FFT
|
||
|
"sp/src/arm/armv7/armSP_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S",
|
||
|
"sp/src/arm/armv7/omxSP_FFTFwd_RToCCS_F32_Sfs_s.S",
|
||
|
"sp/src/arm/armv7/omxSP_FFTInv_CCSToR_F32_Sfs_s.S",
|
||
|
]
|
||
|
if (arm_optionally_use_neon) {
|
||
|
# Run-time NEON detection.
|
||
|
deps = [ "//third_party/android_tools:cpu_features" ]
|
||
|
# To get the __android_log_print routine
|
||
|
libs = [ "log" ]
|
||
|
# Detection routine
|
||
|
sources += [ "sp/src/arm/detect.c" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# GYP: third_party/openmax_dl/dl/dl.gyp:openmax_dl_neon
|
||
|
# NEON implementation of FFT. This library is NOT
|
||
|
# standalone. Applications must link with openmax_dl.
|
||
|
static_library("openmax_dl_neon") {
|
||
|
configs += [ ":dl_config" ]
|
||
|
visibility = [ ":*" ]
|
||
|
|
||
|
if (!arm_use_neon) {
|
||
|
configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
|
||
|
asmflags = [ "-mfpu=neon" ]
|
||
|
}
|
||
|
|
||
|
sources = [
|
||
|
# Complex 32-bit fixed-point FFT.
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_ls_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_ls_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix8_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_CToC_SC32_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CToC_SC32_Sfs_s.S",
|
||
|
|
||
|
# Real 32-bit fixed-point FFT
|
||
|
"sp/src/arm/neon/armSP_FFTInv_CCSToR_S32_preTwiddleRadix2_unsafe_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S32_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CCSToR_S32_Sfs_s.S",
|
||
|
|
||
|
# Complex 16-bit fixed-point FFT
|
||
|
"sp/src/arm/neon/armSP_FFTInv_CCSToR_S16_preTwiddleRadix2_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_ls_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_ps_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_ls_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix8_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_CToC_SC16_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CToC_SC16_Sfs_s.S",
|
||
|
|
||
|
# Real 16-bit fixed-point FFT
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S16_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CCSToR_S16_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S16S32_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CCSToR_S32S16_Sfs_s.S",
|
||
|
|
||
|
# Complex floating-point FFT
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_ls_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_ls_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_unsafe_s.S",
|
||
|
"sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix8_fs_unsafe_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_CToC_FC32_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CToC_FC32_Sfs_s.S",
|
||
|
|
||
|
# Real floating-point FFT
|
||
|
"sp/src/arm/neon/armSP_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTFwd_RToCCS_F32_Sfs_s.S",
|
||
|
"sp/src/arm/neon/omxSP_FFTInv_CCSToR_F32_Sfs_s.S",
|
||
|
]
|
||
|
}
|
||
|
}
|