third_party_libffi/BUILD.gn

219 lines
6.2 KiB
Plaintext
Raw Permalink Normal View History

2021-06-01 16:32:44 +00:00
# Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
import("//build/ohos.gni")
libffi_dir = "${target_gen_dir}/libffi-3.4.2"
action("libffi_action") {
print("libffi_action is exec")
script = "//third_party/libffi/install.py"
outputs = [
"$libffi_dir/src/raw_api.c",
"$libffi_dir/src/tramp.c",
"$libffi_dir/src/closures.c",
"$libffi_dir/src/debug.c",
"$libffi_dir/src/types.c",
"$libffi_dir/src/java_raw_api.c",
"$libffi_dir/src/dlmalloc.c",
"$libffi_dir/src/prep_cif.c",
"$libffi_dir/src/cris/sysv.S",
"$libffi_dir/src/cris/ffi.c",
"$libffi_dir/src/arc/ffi.c",
"$libffi_dir/src/arc/arcompact.S",
"$libffi_dir/src/s390/sysv.S",
"$libffi_dir/src/s390/ffi.c",
"$libffi_dir/src/or1k/sysv.S",
"$libffi_dir/src/or1k/ffi.c",
"$libffi_dir/src/avr32/sysv.S",
"$libffi_dir/src/avr32/ffi.c",
"$libffi_dir/src/tile/ffi.c",
"$libffi_dir/src/tile/tile.S",
"$libffi_dir/src/pa/linux.S",
"$libffi_dir/src/pa/ffi.c",
"$libffi_dir/src/pa/hpux32.S",
"$libffi_dir/src/x86/win64_intel.S",
"$libffi_dir/src/x86/sysv.S",
"$libffi_dir/src/x86/ffi.c",
"$libffi_dir/src/x86/sysv_intel.S",
"$libffi_dir/src/x86/ffi64.c",
"$libffi_dir/src/x86/ffiw64.c",
"$libffi_dir/src/x86/win64.S",
"$libffi_dir/src/x86/unix64.S",
"$libffi_dir/src/alpha/ffi.c",
"$libffi_dir/src/alpha/osf.S",
"$libffi_dir/src/csky/sysv.S",
"$libffi_dir/src/csky/ffi.c",
"$libffi_dir/src/bfin/sysv.S",
"$libffi_dir/src/bfin/ffi.c",
"$libffi_dir/src/sh/sysv.S",
"$libffi_dir/src/sh/ffi.c",
"$libffi_dir/src/arm/sysv.S",
"$libffi_dir/src/arm/ffi.c",
"$libffi_dir/src/arm/sysv_msvc_arm32.S",
"$libffi_dir/src/sparc/v9.S",
"$libffi_dir/src/sparc/ffi.c",
"$libffi_dir/src/sparc/ffi64.c",
"$libffi_dir/src/sparc/v8.S",
"$libffi_dir/src/xtensa/sysv.S",
"$libffi_dir/src/xtensa/ffi.c",
"$libffi_dir/src/moxie/ffi.c",
"$libffi_dir/src/moxie/eabi.S",
"$libffi_dir/src/frv/ffi.c",
"$libffi_dir/src/frv/eabi.S",
"$libffi_dir/src/m88k/ffi.c",
"$libffi_dir/src/m88k/obsd.S",
"$libffi_dir/src/ia64/ffi.c",
"$libffi_dir/src/ia64/unix.S",
"$libffi_dir/src/nios2/sysv.S",
"$libffi_dir/src/nios2/ffi.c",
"$libffi_dir/src/riscv/sysv.S",
"$libffi_dir/src/riscv/ffi.c",
"$libffi_dir/src/m68k/sysv.S",
"$libffi_dir/src/m68k/ffi.c",
"$libffi_dir/src/sh64/sysv.S",
"$libffi_dir/src/sh64/ffi.c",
"$libffi_dir/src/powerpc/ffi_linux64.c",
"$libffi_dir/src/powerpc/darwin.S",
"$libffi_dir/src/powerpc/darwin_closure.S",
"$libffi_dir/src/powerpc/sysv.S",
"$libffi_dir/src/powerpc/ffi_sysv.c",
"$libffi_dir/src/powerpc/ffi.c",
"$libffi_dir/src/powerpc/aix_closure.S",
"$libffi_dir/src/powerpc/linux64_closure.S",
"$libffi_dir/src/powerpc/linux64.S",
"$libffi_dir/src/powerpc/ffi_darwin.c",
"$libffi_dir/src/powerpc/aix.S",
"$libffi_dir/src/powerpc/ppc_closure.S",
"$libffi_dir/src/aarch64/sysv.S",
"$libffi_dir/src/aarch64/ffi.c",
"$libffi_dir/src/aarch64/win64_armasm.S",
"$libffi_dir/src/microblaze/sysv.S",
"$libffi_dir/src/microblaze/ffi.c",
"$libffi_dir/src/metag/sysv.S",
"$libffi_dir/src/metag/ffi.c",
"$libffi_dir/src/mips/o32.S",
"$libffi_dir/src/mips/n32.S",
"$libffi_dir/src/mips/ffi.c",
"$libffi_dir/src/sw_64/ffi.c",
"$libffi_dir/src/sw_64/osf.S",
"$libffi_dir/src/m32r/sysv.S",
"$libffi_dir/src/m32r/ffi.c",
"$libffi_dir/src/kvx/sysv.S",
"$libffi_dir/src/kvx/ffi.c",
"$libffi_dir/src/vax/elfbsd.S",
"$libffi_dir/src/vax/ffi.c",
]
inputs = [ "//third_party/libffi/libffi-3.4.2.tar.gz" ]
libffi_path = rebase_path("${target_gen_dir}", root_build_dir)
libffi_source_path = rebase_path("//third_party/libffi", root_build_dir)
args = [
"--gen-dir",
"$libffi_path",
"--source-dir",
"$libffi_source_path",
]
}
config("ffi_public_config") {
if (target_cpu == "arm") {
include_dirs = [
"$libffi_dir/include",
"$libffi_dir/src/arm",
]
} else if (target_cpu == "x86_64") {
include_dirs = [
"$libffi_dir/include",
"$libffi_dir/src/x86",
]
} else {
include_dirs = [
"$libffi_dir/include",
"$libffi_dir/src/aarch64",
]
}
}
2021-06-01 16:32:44 +00:00
ohos_shared_library("ffi") {
if (target_cpu == "arm") {
include_dirs = [
"$libffi_dir",
"$libffi_dir/include",
"$libffi_dir/src/arm",
]
2021-06-01 16:32:44 +00:00
cflags = [
"-DTARGET=ARM",
"-Wno-sign-compare",
"-Wno-implicit-function-declaration",
"-Wno-extern-initializer",
]
2021-06-01 16:32:44 +00:00
sources = [
"$libffi_dir/src/arm/ffi.c",
"$libffi_dir/src/arm/sysv.S",
"$libffi_dir/src/closures.c",
"$libffi_dir/src/java_raw_api.c",
"$libffi_dir/src/prep_cif.c",
"$libffi_dir/src/raw_api.c",
"$libffi_dir/src/tramp.c",
"$libffi_dir/src/types.c",
]
} else if (target_cpu == "x86_64") {
include_dirs = [
"$libffi_dir",
"$libffi_dir/include",
"$libffi_dir/src/x86",
]
cflags = [
"-DTARGET=X86_64",
"-Wno-sign-compare",
"-Wno-implicit-function-declaration",
"-Wno-extern-initializer",
]
sources = [
"$libffi_dir/src/closures.c",
"$libffi_dir/src/java_raw_api.c",
"$libffi_dir/src/prep_cif.c",
"$libffi_dir/src/raw_api.c",
"$libffi_dir/src/tramp.c",
"$libffi_dir/src/types.c",
"$libffi_dir/src/x86/ffi64.c",
"$libffi_dir/src/x86/ffiw64.c",
"$libffi_dir/src/x86/unix64.S",
"$libffi_dir/src/x86/win64.S",
]
} else {
include_dirs = [
"$libffi_dir",
"$libffi_dir/include",
"$libffi_dir/src/aarch64",
]
2021-06-01 16:32:44 +00:00
cflags = [
"-DTARGET=AARCH64",
"-Wno-sign-compare",
"-Wno-implicit-function-declaration",
"-Wno-extern-initializer",
]
2021-06-01 16:32:44 +00:00
sources = [
"$libffi_dir/src/aarch64/ffi.c",
"$libffi_dir/src/aarch64/sysv.S",
"$libffi_dir/src/closures.c",
"$libffi_dir/src/java_raw_api.c",
"$libffi_dir/src/prep_cif.c",
"$libffi_dir/src/raw_api.c",
"$libffi_dir/src/tramp.c",
"$libffi_dir/src/types.c",
]
}
2021-06-01 16:32:44 +00:00
deps = [ ":libffi_action" ]
public_configs = [ ":ffi_public_config" ]
2021-06-01 16:32:44 +00:00
part_name = "libffi"
subsystem_name = "thirdparty"
2021-06-01 16:32:44 +00:00
}