summaryrefslogtreecommitdiff
path: root/subprojects/packagefiles/vndk/meson.build
blob: 1d784731ab75f1470544ec7e11dad67ced34714c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# SPDX-License-Identifier: CC0-1.0

project('vndk', 'cpp',
        version : 'vndk-v34')

cpu_family = host_machine.cpu_family()
if cpu_family != 'x86_64'
    error('vndk only supports x86_64 cpu_family')
endif

prebuild_libraries = [
    meson.current_source_dir() / cpu_family / 'arch-x86_64/shared/llndk-stub',
    meson.current_source_dir() / cpu_family / 'arch-x86_64/shared/vndk-sp',
    meson.current_source_dir() / cpu_family / 'arch-x86_64/shared/vndk-core',
]

include_base = cpu_family / 'include'

cxx = meson.get_compiler('cpp')
libhardware_dep = declare_dependency(
    dependencies : cxx.find_library('hardware', dirs : prebuild_libraries),
    include_directories : include_directories(include_base / 'hardware/libhardware/'))
meson.override_dependency('libhardware', libhardware_dep)

liblog_dep = declare_dependency(
    dependencies : cxx.find_library('log', dirs : prebuild_libraries),
    include_directories : include_directories(include_base / 'system/logging/liblog/include_vndk'))
meson.override_dependency('liblog', liblog_dep)

libutils_dep = declare_dependency(
    dependencies : [
        cxx.find_library('utils', dirs : prebuild_libraries),
        liblog_dep,
    ],
    include_directories : include_directories(include_base / 'system/core/libutils/include'))
meson.override_dependency('libutils', libutils_dep)

libui_dep = declare_dependency(
    dependencies : [
        cxx.find_library('ui', dirs : prebuild_libraries),
        libutils_dep,
    ],
    include_directories : include_directories(include_base / 'frameworks/native/libs/ui/include_vndk'))
meson.override_dependency('libui', libui_dep)

deps_cpp = [
  cxx.find_library('c++', dirs : prebuild_libraries),
  cxx.find_library('c', dirs : prebuild_libraries),
]

vndk_libcpp_dep = declare_dependency(
    dependencies : deps_cpp,
    include_directories : include_directories(include_base / 'external/libcxx/include'))
meson.override_dependency('cpp_stdlib', vndk_libcpp_dep)

# TODO: add libexif, libjpeg and libyuv

libexif_dep = declare_dependency(
    dependencies : [
        cxx.find_library('exif', dirs : prebuild_libraries),
        libutils_dep,
    ],
    include_directories : include_directories(include_base / 'external/libexif/'))
meson.override_dependency('libexif', libexif_dep)

libjpeg_dep = declare_dependency(
    dependencies : [
        cxx.find_library('jpeg', dirs : prebuild_libraries),
        libutils_dep,
    ],
    include_directories : include_directories(include_base / 'external/libjpeg-turbo/'))
meson.override_dependency('libjpeg', libjpeg_dep)

libyuv_dep = declare_dependency(
    dependencies : [
        cxx.find_library('yuv', dirs : prebuild_libraries),
        libutils_dep,
    ],
    include_directories : include_directories(include_base / 'external/libyuv/files/include'))
meson.override_dependency('libyuv', libyuv_dep)