idlize

Форк
0
/
meson.build 
79 строк · 1.6 Кб
1
project('NativeBridge', 'c', 'cpp',
2
    version: '0.1',
3
    default_options: ['cpp_std=c++17', 'buildtype=debug']
4
)
5

6
if get_option('subset')
7
source_set = 'subset'
8
else
9
source_set = 'peers'
10
endif
11
use_dummy_libace = true
12
is_node = true
13

14
gen_dir = '../generated/' + source_set
15

16
include_dirs = [
17
   gen_dir
18
]
19

20
sources = [
21
    gen_dir + '/common-interop.cc',
22
    gen_dir + '/custom.cc',
23
    gen_dir + '/bridge.cc',
24
]
25
if use_dummy_libace
26
sources += [
27
   gen_dir + '/dummy_impl.cc'
28
]
29
endif
30

31
is_msvc = meson.get_compiler('cpp').get_id() == 'msvc'
32

33
oses = { 'emscripten': 'wasm', 'darwin': 'macos' }  # rename meson default names to convienient ones
34
archs = { 'x86_64': 'x64', 'aarch64': 'arm64', 'wasm32': 'wasm' }
35

36
os = target_machine.system()
37
os = oses.get(os, os)
38
arch = target_machine.cpu()
39
arch = archs.get(arch, arch)
40

41
cxx = meson.get_compiler('cpp')
42

43
cflags = []
44
ldflags = []
45

46
# library_name = 'NativeBridge-' + os + '-' + arch
47
library_name = 'NativeBridge'
48

49
if is_node
50
cflags += ['-DKOALA_USE_NODE_VM', '-DKOALA_NAPI', '-DINTEROP_LIBRARY_NAME=' + library_name]
51
include_dirs += [
52
    '../node-api-headers/include',
53
    '../node-addon-api'
54
]
55
sources += [
56
    gen_dir + '/convertors-node.cc'
57
]
58
if os == 'windows'
59
    cflags += ['-DKOALA_WINDOWS']
60
    sources += [ gen-dir + '/win-dynamic-node.cc' ]
61
endif
62
module_prefix = ''
63
module_suffix = 'node'
64
endif
65

66
shared_library(library_name,
67
    sources,
68
    override_options: [
69
        'b_lundef=false',
70
    ],
71
    install: true,
72
    name_prefix: module_prefix,
73
    name_suffix: module_suffix,
74
    include_directories: include_dirs,
75
    install_dir: meson.current_source_dir(),
76
    cpp_args: cflags,
77
    link_args: ldflags,
78
    dependencies: []
79
)
80

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.