blob: 74aaee29ea9d8c626eba1160f3db48b6cb8a1523 [file] [log] [blame]
Alec Thileniusf79f52b2017-12-22 12:10:17 -07001project('mosys', 'c')
2
3# Include common. This is passed to all subdir build files as well
4include_common = include_directories(['include'])
5
6# Config data used for creating a config header and including it
7conf_data = configuration_data()
8
Jack Rosenthal24fea5c2020-10-20 09:51:15 -06009use_vpd_file_cache = get_option('use_vpd_file_cache') == true
Jason D. Clintona7fd67d2018-04-17 13:34:08 -060010use_cros_config = get_option('use_cros_config') == true
Alec Thileniusf79f52b2017-12-22 12:10:17 -070011if use_cros_config
12 conf_data.set('CONFIG_CROS_CONFIG', 1)
13endif
14
15# Setting on a per-arch basis
Jack Rosenthal62ce5432020-05-15 10:10:40 -060016arch = host_machine.cpu_family()
17if arch == 'x86' or arch == 'x86_64'
Alec Thileniusf79f52b2017-12-22 12:10:17 -070018 conf_data.set('CONFIG_PLATFORM_ARCH_X86', 1)
Jack Rosenthal62ce5432020-05-15 10:10:40 -060019elif arch == 'arm' or arch == 'aarch64'
Alec Thileniusf79f52b2017-12-22 12:10:17 -070020 conf_data.set('CONFIG_PLATFORM_ARCH_ARMEL', 1)
Alec Thileniusf79f52b2017-12-22 12:10:17 -070021endif
22
Jack Rosenthal8180e5f2020-04-30 10:50:42 -060023platform_intf = get_option('platform_intf')
24if platform_intf != ''
25 conf_data.set_quoted('CONFIG_SINGLE_PLATFORM', platform_intf)
26endif
27
Alec Thileniusf79f52b2017-12-22 12:10:17 -070028# Create the config header file and include it by default while compiling
29configure_file(
30 output : 'config.h',
31 configuration : conf_data,
32)
33add_global_arguments('-include', 'config.h', language: 'c')
Jason D. Clintona7fd67d2018-04-17 13:34:08 -060034add_global_arguments('-std=gnu99', language : 'c')
Alec Thileniusf79f52b2017-12-22 12:10:17 -070035
Brian Norrise11e08f2018-04-30 10:46:48 -070036cc = meson.get_compiler('c')
Jason D. Clinton4f88fa32018-08-29 15:34:26 -060037add_global_arguments('-Wall', language : 'c')
Brian Norris402d8322018-04-30 14:22:51 -070038add_global_arguments('-Werror', language : 'c')
Jason D. Clinton4f88fa32018-08-29 15:34:26 -060039add_global_arguments('-Wstrict-prototypes', language : 'c')
40add_global_arguments('-Wundef', language : 'c')
Brian Norrise11e08f2018-04-30 10:46:48 -070041
Jack Rosenthal85039cd2020-05-15 17:48:37 -060042# Require that externally-visible symbols have a prototype. This
43# helps find missing usages of 'static'.
44add_global_arguments('-Wmissing-variable-declarations', language : 'c')
45add_global_arguments('-Wmissing-prototypes', language : 'c')
46
Alec Thileniusf79f52b2017-12-22 12:10:17 -070047# External libs used by Mosys
Jack Rosenthalbca93e32020-05-13 10:21:06 -060048minijail_dep = declare_dependency(link_args: '-lminijail')
Alec Thileniusf79f52b2017-12-22 12:10:17 -070049
Jason D. Clinton3a2b39c2018-04-16 11:42:49 -060050libmosys_src = files()
Jack Rosenthal3ae12622020-05-15 10:58:49 -060051platform_support_src = files()
Andrew Lamb9cccc892019-02-13 14:53:44 -070052unittest_src = files()
Jason D. Clinton3a2b39c2018-04-16 11:42:49 -060053
Alec Thileniusf79f52b2017-12-22 12:10:17 -070054# Subdirs with source to link against
55subdir('core')
56subdir('drivers')
57subdir('intf')
58subdir('lib')
59subdir('platform')
60
Jack Rosenthaldf9917b2020-10-21 10:57:39 -060061deps = [minijail_dep]
Jason D. Clinton3a2b39c2018-04-16 11:42:49 -060062
63# Cros config is a special snowflake.
64if use_cros_config
65 libmosys_src += mosys_lib_cros_config_src
Jason D. Clinton3a2b39c2018-04-16 11:42:49 -060066endif
67
Jack Rosenthalbca93e32020-05-13 10:21:06 -060068subdir('mains')
Manoj Guptaace739d2019-08-13 18:21:57 -070069subdir('unittests')