17dd7a460b26344a0ea4761186a10f281be462ec
[platform/adaptation/npu/trix-engine.git] / meson.build
1 # Do NOT enable C in core
2 # C++ is only allowed inside test directory for gtest.
3
4 project('npu-engine', 'c',
5   version: '0.0.3',
6   license: ['Proprietary'],
7   meson_version: '>=0.42.0',
8   default_options: [
9     'werror=true',
10     'warning_level=1',
11     'c_std=gnu89',
12   ]
13 )
14
15 add_project_arguments('-DVERSION="' + meson.project_version() + '"',
16   language: ['c'])
17
18 cc = meson.get_compiler('c')
19
20 warning_c_flags = [
21   '-Wmissing-declarations',
22   '-Wmissing-prototypes',
23   '-Wnested-externs',
24   '-Waggregate-return',
25   '-Wold-style-definition',
26   '-Wdeclaration-after-statement'
27 ]
28
29 foreach extra_arg : warning_c_flags
30   if cc.has_argument (extra_arg)
31     add_project_arguments([extra_arg], language: 'c')
32   endif
33 endforeach
34
35 # Install Paths
36 ne_prefix = get_option('prefix')
37 ne_libdir = join_paths(ne_prefix, get_option('libdir'))
38 ne_bindir = join_paths(ne_prefix, get_option('bindir'))
39 ne_includedir = join_paths(ne_prefix, get_option('includedir'))
40 ne_inidir = get_option('sysconfdir')
41 add_project_arguments('-DNE_INIDIR="' + ne_inidir + '"', language: ['c', 'cpp'])
42 ne_datadir = join_paths(ne_prefix, join_paths(get_option('datadir'), 'npu-engine'))
43
44 ne_common_inc = include_directories('include/common')
45 ne_host_inc = include_directories('include/host')
46
47 libdl_dep = cc.find_library('dl') # DL library
48 libm_dep = cc.find_library('m') # math library
49 libdrm_dep = dependency('libdrm') # libdrm library
50 thread_dep = dependency('threads') # pthread library
51 iniparser_dep = dependency('iniparser') # iniparser library
52
53 if get_option('enable_npu_emul')
54   npuvision_dep = dependency('libnpuvision') # npuvision library
55
56   add_project_arguments('-I/opt/trinity/include', language: 'c')
57   add_project_arguments('-I/opt/trinity/include', language: 'cpp')
58   add_project_arguments('-DENABLE_EMUL', language: 'c')
59   add_project_arguments('-DENABLE_EMUL', language: 'cpp')
60 endif
61
62 subdir('src')
63 subdir('tools')
64
65 # Set configuration to install .ini
66 ne_install_conf = configuration_data()
67
68 ne_install_conf.set('VERSION', meson.project_version())
69 ne_install_conf.set('PREFIX', ne_prefix)
70 ne_install_conf.set('EXEC_PREFIX', ne_bindir)
71 ne_install_conf.set('LIB_INSTALL_DIR', ne_libdir)
72 ne_install_conf.set('INCLUDE_INSTALL_DIR', ne_includedir)
73
74 ne_install_conf.set('RESV_MEM_SIZE', get_option('resv_mem_size'))
75 ne_install_conf.set('WORKING_DIR', get_option('working_dir'))
76 ne_install_conf.set('LOG_DIR', get_option('log_dir'))
77
78 # Install .ini
79 configure_file(input: 'npu-engine.ini.in', output: 'npu-engine.ini',
80   install_dir: ne_inidir,
81   configuration: ne_install_conf)
82
83 # Install .pc
84 configure_file(input: 'npu-engine.pc.in', output: 'npu-engine.pc',
85   install_dir: join_paths(ne_libdir, 'pkgconfig'),
86   configuration: ne_install_conf)
87
88 # Install headers
89 ne_install_headers = [
90   'include/common/npubinfmt.h',
91   'include/common/typedef.h',
92   'include/host/libnpuhost.h',
93 ]
94
95 install_headers(ne_install_headers, subdir: 'npu-engine')