source: mainline/meson/part/read_config/meson.build@ 200b2113

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 200b2113 was 200b2113, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 6 years ago

Reorganize main meson.build script

I split most of it into separate subdirs, so that the overall organization
is easier to follow.

  • Property mode set to 100644
File size: 2.6 KB
Line 
1# Read variables from config file generated by config.py,
2# and version information from repository.
3
4_config_file = files(meson.build_root() / 'Makefile.config')
5_version_file = files(meson.source_root() / 'version')
6
7_config_variables = [
8 # Uspace and kernel
9 'CONFIG_BAREBONE',
10 'CONFIG_BUILD_SHARED_LIBS',
11 'CONFIG_DEBUG',
12 'CONFIG_DEVEL_FILES',
13 'CONFIG_FPU',
14 'CONFIG_LINE_DEBUG',
15 'CONFIG_LTO',
16 'CONFIG_PCUT_SELF_TESTS',
17 'CONFIG_PCUT_TESTS',
18 'CONFIG_RTLD',
19 'CONFIG_STRIP_BINARIES',
20 'CONFIG_UBSAN',
21 'CONFIG_USE_SHARED_LIBS',
22 'CROSS_TARGET',
23 'OPTIMIZATION',
24 'PROCESSOR',
25 'QUADFLOAT',
26 'RDFMT',
27
28 # Kernel only
29 'CONFIG_ACPI',
30 'CONFIG_AM335X_TIMERS',
31 'CONFIG_ASID',
32 'CONFIG_ASID_FIFO',
33 'CONFIG_AT_KBD',
34 'CONFIG_BCM2835_MAILBOX',
35 'CONFIG_DSRLNIN',
36 'CONFIG_DSRLNOUT',
37 'CONFIG_EGA',
38 'CONFIG_FB',
39 'CONFIG_GICV2',
40 'CONFIG_I8042',
41 'CONFIG_I8259',
42 'CONFIG_IOMAP_BITMAP',
43 'CONFIG_IOMAP_DUMMY',
44 'CONFIG_KCONSOLE',
45 'CONFIG_MAC_KBD',
46 'CONFIG_MULTIBOOT',
47 'CONFIG_NS16550',
48 'CONFIG_OFW_PCI',
49 'CONFIG_OFW_TREE',
50 'CONFIG_OMAP_UART',
51 'CONFIG_PAGE_HT',
52 'CONFIG_PAGE_PT',
53 'CONFIG_PC_KBD',
54 'CONFIG_PL011_UART',
55 'CONFIG_PL050',
56 'CONFIG_S3C24XX_IRQC',
57 'CONFIG_S3C24XX_UART',
58 'CONFIG_SMP',
59 'CONFIG_SOFTINT',
60 'CONFIG_SRLN',
61 'CONFIG_SUN_KBD',
62 'CONFIG_SYMTAB',
63 'CONFIG_TEST',
64 'CONFIG_TRACE',
65 'CONFIG_TSB',
66 'CONFIG_UDEBUG',
67 'CONFIG_VIA_CUDA',
68 'MACHINE',
69 'MEMORY_MODEL',
70
71 'UARCH',
72 'KARCH',
73 'BARCH',
74 'GRUB_ARCH',
75 'UIMAGE_OS',
76 'CONFIG_COMPRESSED_INIT',
77]
78
79foreach _varname : _config_variables
80 _c = run_command(grep, '^' + _varname + '\\b', _config_file)
81 if _c.returncode() != 0
82 # TODO: Output negative/inapplicable variables too in config, so that we can check for typos here.
83 #warning('Missing configuration variable ' + _varname + ' in Makefile.config')
84 set_variable(_varname, false)
85 continue
86 endif
87
88 _val = _c.stdout().split('\n')[0].strip().split('=')[1].strip()
89 if _val == 'y'
90 _val = true
91 elif _val == 'n'
92 _val = false
93 endif
94
95 set_variable(_varname, _val)
96 if debug_options
97 message([ _varname, get_variable(_varname) ])
98 endif
99endforeach
100
101# Also read version information.
102_version_variables = [
103 'COPYRIGHT',
104 'NAME',
105 'PATCHLEVEL',
106 'SUBLEVEL',
107 'VERSION',
108]
109
110foreach _varname : _version_variables
111 _line = run_command(grep, '^' + _varname + '\\b', _version_file, check: true).stdout().strip()
112 _val = _line.split('=')[1].strip()
113
114 _realvarname = 'HELENOS_' + _varname
115 set_variable(_realvarname, _val)
116 if debug_options
117 message([ _realvarname, get_variable(_realvarname) ])
118 endif
119endforeach
120
121HELENOS_RELEASE = HELENOS_VERSION + '.' + HELENOS_PATCHLEVEL + '.' + HELENOS_SUBLEVEL
Note: See TracBrowser for help on using the repository browser.