1 # Do NOT enable C in core
2 # C++ is only allowed inside test directory for gtest.
4 project('npu-engine', ['c', 'cpp'],
6 license: ['Proprietary'],
7 meson_version: '>=0.50.0',
16 cc = meson.get_compiler('c')
17 cpp = meson.get_compiler('cpp')
20 '-Wmissing-declarations',
21 '-Wmissing-prototypes',
24 '-Wold-style-definition',
25 '-Wdeclaration-after-statement',
26 '-Wno-format-truncation',
29 foreach extra_arg : warning_c_flags
30 if cc.has_argument (extra_arg)
31 add_project_arguments([extra_arg], language : 'c')
32 elif cpp.has_argument (extra_arg)
33 add_project_arguments([extra_arg], language : 'cpp')
38 ne_prefix = get_option('prefix')
39 ne_libdir = join_paths(ne_prefix, get_option('libdir'))
40 ne_bindir = join_paths(ne_prefix, get_option('bindir'))
41 ne_includedir = join_paths(ne_prefix, get_option('includedir'))
42 ne_inidir = get_option('sysconfdir')
43 add_project_arguments('-DNE_INIDIR="' + ne_inidir + '"', language: ['c', 'cpp'])
44 ne_datadir = join_paths(ne_prefix, join_paths(get_option('datadir'), 'npu-engine'))
46 ne_common_inc = include_directories('include/common')
47 ne_host_inc = include_directories('include/host')
49 libdl_dep = cc.find_library('dl') # DL library
50 libm_dep = cc.find_library('m') # math library
51 libdrm_dep = dependency('libdrm') # libdrm library
52 thread_dep = dependency('threads') # pthread library
53 iniparser_dep = dependency('iniparser') # iniparser library
55 if get_option('enable_npu_emul')
56 add_project_arguments('-I/opt/trinity/include', language: ['c', 'cpp'])
57 add_project_arguments('-DENABLE_EMUL', language: ['c', 'cpp'])
59 if get_option('enable_data_manip')
60 add_project_arguments('-DENABLE_MANIP', language: ['c', 'cpp'])
67 # Set configuration to install .ini
68 ne_install_conf = configuration_data()
70 ne_install_conf.set('VERSION', meson.project_version())
71 ne_install_conf.set('PREFIX', ne_prefix)
72 ne_install_conf.set('EXEC_PREFIX', ne_bindir)
73 ne_install_conf.set('LIB_INSTALL_DIR', ne_libdir)
74 ne_install_conf.set('INCLUDE_INSTALL_DIR', ne_includedir)
76 ne_install_conf.set('RESV_MEM_SIZE', get_option('resv_mem_size'))
77 ne_install_conf.set('WORKING_DIR', get_option('working_dir'))
78 ne_install_conf.set('LOG_DIR', get_option('log_dir'))
81 configure_file(input: 'npu-engine.ini.in', output: 'npu-engine.ini',
82 install_dir: ne_inidir,
83 configuration: ne_install_conf)
86 configure_file(input: 'npu-engine.pc.in', output: 'npu-engine.pc',
87 install_dir: join_paths(ne_libdir, 'pkgconfig'),
88 configuration: ne_install_conf)
91 ne_install_headers = [
92 'include/common/npubinfmt.h',
93 'include/common/typedef.h',
94 'include/host/libnpuhost.h',
97 install_headers(ne_install_headers, subdir: 'npu-engine')