[Dist] Remove build dependency on libdrm
[platform/adaptation/npu/trix-engine.git] / meson.build
1 project('npu-engine', ['c', 'cpp'],
2   version: '2.0.1',
3   license: ['Proprietary'],
4   meson_version: '>=0.50.0',
5   default_options: [
6     'werror=true',
7     'warning_level=1',
8     'c_std=gnu89',
9     'cpp_std=gnu++11',
10   ]
11 )
12
13 cc = meson.get_compiler('c')
14 cpp = meson.get_compiler('cpp')
15
16 warning_c_flags = [
17   '-Wmissing-prototypes',
18   '-Wmissing-declarations',
19   '-Wnested-externs',
20   '-Waggregate-return',
21   '-Wold-style-definition',
22   '-Wdeclaration-after-statement'
23 ]
24
25 warning_flags = [
26   '-Wredundant-decls',
27   '-Wwrite-strings',
28   '-Wformat',
29   '-Wformat-nonliteral',
30   '-Wformat-security',
31   '-Winit-self',
32   '-Waddress',
33   '-Wno-multichar',
34   '-Wvla',
35   '-Wpointer-arith',
36   '-Wno-sign-compare',
37 ]
38
39 foreach extra_arg : warning_c_flags
40   if cc.has_argument (extra_arg)
41     add_project_arguments([extra_arg], language : 'c')
42   endif
43 endforeach
44
45 foreach extra_arg : warning_flags
46   if cc.has_argument (extra_arg)
47     add_project_arguments([extra_arg], language : 'c')
48   endif
49   if cpp.has_argument (extra_arg)
50     add_project_arguments([extra_arg], language : 'cpp')
51   endif
52 endforeach
53
54 # Add version arguments
55 version = meson.project_version().split('.')
56 add_project_arguments('-DVER_NE_MAJOR=' + version[0], language: ['c', 'cpp'])
57 add_project_arguments('-DVER_NE_MINOR=' + version[1], language: ['c', 'cpp'])
58 add_project_arguments('-DVER_NE_EXTRA=' + version[2], language: ['c', 'cpp'])
59
60 # Install Paths
61 ne_prefix = get_option('prefix')
62 ne_libdir = join_paths(ne_prefix, get_option('libdir'))
63 ne_bindir = join_paths(ne_prefix, get_option('bindir'))
64 ne_includedir = join_paths(ne_prefix, get_option('includedir'))
65 ne_inidir = get_option('sysconfdir')
66 add_project_arguments('-DNE_INIDIR="' + ne_inidir + '"', language: ['c', 'cpp'])
67 ne_datadir = join_paths(ne_prefix, join_paths(get_option('datadir'), 'npu-engine'))
68
69 ne_common_inc = include_directories('include/common')
70 ne_host_inc = include_directories('include/host')
71
72 libdl_dep = cc.find_library('dl') # DL library
73 libm_dep = cc.find_library('m') # math library
74 thread_dep = dependency('threads') # pthread library
75 iniparser_dep = dependency('iniparser') # iniparser library
76
77 if get_option('enable_npu_emul')
78   add_project_arguments('-I/opt/trinity/include', language: ['c', 'cpp'])
79   add_project_arguments('-DENABLE_EMUL', language: ['c', 'cpp'])
80 endif
81 if get_option('enable_data_manip')
82   add_project_arguments('-DENABLE_MANIP', language: ['c', 'cpp'])
83 endif
84 if get_option('enable_buffering')
85   add_project_arguments('-DENABLE_BUFFERING', language: ['c', 'cpp'])
86 endif
87
88 subdir('src')
89 subdir('tests')
90
91 # Set configuration to install .ini
92 ne_install_conf = configuration_data()
93
94 ne_install_conf.set('VERSION', meson.project_version())
95 ne_install_conf.set('PREFIX', ne_prefix)
96 ne_install_conf.set('EXEC_PREFIX', ne_bindir)
97 ne_install_conf.set('LIB_INSTALL_DIR', ne_libdir)
98 ne_install_conf.set('INCLUDE_INSTALL_DIR', ne_includedir)
99
100 ne_install_conf.set('RESV_MEM_SIZE', get_option('resv_mem_size'))
101 ne_install_conf.set('NUM_THREADS', get_option('num_threads'))
102 ne_install_conf.set('LOG_DIR', get_option('log_dir'))
103
104 # Install .ini
105 configure_file(input: 'npu-engine.ini.in', output: 'npu-engine.ini',
106   install_dir: ne_inidir,
107   configuration: ne_install_conf)
108
109 # Install .pc
110 configure_file(input: 'npu-engine.pc.in', output: 'npu-engine.pc',
111   install_dir: join_paths(ne_libdir, 'pkgconfig'),
112   configuration: ne_install_conf)
113
114 # Install headers
115 ne_install_headers = [
116   'include/common/npubinfmt.h',
117   'include/common/typedef.h',
118   'include/host/libnpuhost.h',
119 ]
120
121 install_headers(ne_install_headers, subdir: 'npu-engine')