source: mainline/meson.build@ c77cfd8

ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since c77cfd8 was 923bb331, checked in by Jiri Svoboda <jiri@…>, 4 years ago

Fix build with meson 0.56.2

Meson changed the meaning of warning_level, before 2 had -Wpedantic
and 3 was -Wextra, now -3 is -Wpedantic and 2 is -Wextra. HelenOS
can compile with -Wextra, but not with -Wpedantic (and lot of work
to make it compile with that). So changing to level 3 for now.
This probably means build will fail with older meson version.

  • Property mode set to 100644
File size: 3.6 KB
Line 
1#
2# Copyright (c) 2019 Jiří Zárevúcky
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8#
9# - Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# - Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14# - The name of the author may not be used to endorse or promote products
15# derived from this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27#
28
29# TODO: Use vcs_tag() to generate version string
30# TODO: jobfile
31# TODO: lto in uspace
32# TODO: fix clang build
33
34project(
35 'HelenOS',
36 [ 'c', 'cpp' ],
37 default_options : ['buildtype=plain', 'c_std=gnu11', 'cpp_std=c++17', 'warning_level=2', 'werror=false', 'b_staticpic=false', 'prefix=/' ],
38 meson_version: '>=0.50.1',
39)
40
41debug_options = false
42debug_shell_scripts = false
43
44subdir('meson/part/tools')
45subdir('meson/part/read_config')
46subdir('meson/part/compiler_args')
47subdir('meson/part/initrd_manifest')
48subdir('meson' / 'arch' / UARCH)
49
50## The at-sign
51#
52# The `atsign` variable holds the ASCII character representing the at-sign
53# ('@') used in various $(AS) constructs (e.g. @progbits). On architectures that
54# don't use '@' for starting a comment, `atsign` is merely '@'. However, on
55# those that do use it for starting a comment (e.g. arm32), `atsign` must be
56# defined as the percentile-sign ('%') in the architecture-dependent files.
57#
58if not is_variable('atsign')
59 atsign = '@'
60endif
61
62## Some architectures need a particular string at the beginning of assembly files.
63if not is_variable('kernel_as_prolog')
64 kernel_as_prolog = ''
65endif
66if not is_variable('uspace_as_prolog')
67 uspace_as_prolog = ''
68endif
69
70# The following variables are filled in by code in the kernel and uspace subdirs.
71
72# References to the actual binary artefacts that will be part of initrd image.
73rd_init_binaries = []
74# Installed files.
75install_files = []
76install_deps = []
77# Install script for headers.
78# TODO: Make a list of directories and turn into script later.
79uspace_lib_install_script_text = []
80
81subdir('kernel')
82subdir('uspace')
83
84subdir('meson/part/exports')
85subdir('meson/part/initrd')
86
87subdir('boot')
88
89# Copy the final image to the build root,
90# and write its name to a text file `image_path`.
91
92if is_variable('POST_INPUT')
93 image = custom_target(POST_OUTPUT,
94 output: POST_OUTPUT,
95 input: POST_INPUT,
96 command: [ cp, '@INPUT@', '@OUTPUT@' ],
97 )
98
99 custom_target('image_path',
100 output: 'image_path',
101 input: image,
102 command: [ 'echo', '@INPUT@' ],
103 capture: true,
104 )
105else
106 custom_target('image_path',
107 output: 'image_path',
108 command: [ 'echo' ],
109 capture: true,
110 )
111endif
112
113subdir('meson/part/extra_targets')
Note: See TracBrowser for help on using the repository browser.