summaryrefslogtreecommitdiff
path: root/meson.build
blob: be0b2a13a31938f09808be1a434798e297b24c3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
project('kms++', 'cpp',
    default_options : [
        'cpp_std=c++20',
    ],
    version: '0.0.0',
)

cpp = meson.get_compiler('cpp')
cpp_arguments = []

if (cpp.get_id() == 'gcc' and
    host_machine.cpu_family() == 'arm' and
    cpp.has_argument('-Wno-psabi'))
    cpp_arguments += [
        '-Wno-psabi',
    ]
endif

if cpp.has_argument('-Wno-c99-designator')
    cpp_arguments += [
        '-Wno-c99-designator',
    ]
endif

if cpp.compiles('#include <string>\n constexpr bool test(const std::string& x) { return x.empty(); }')
    add_global_arguments('-DHAS_CONSTEXPR_STR', language : 'cpp')
else
    message('Compiler does not support constexpr strings')
endif

if cpp.compiles('#include <vector>\n constexpr bool test(const std::vector<int>& x) { return x.empty(); }')
    add_global_arguments('-DHAS_CONSTEXPR_VEC', language : 'cpp')
else
    message('Compiler does not support constexpr vectors')
endif

add_project_arguments(cpp_arguments, language : 'cpp')

libfmt_dep = dependency('fmt')

libdrmomap_dep = dependency('libdrm_omap', required : get_option('omap'))

if libdrmomap_dep.found()
    add_global_arguments('-DHAS_LIBDRM_OMAP', language : 'cpp')
endif

if get_option('libutils')
    add_global_arguments('-DHAS_KMSXXUTIL', language : 'cpp')
endif

subdir('kms++')
subdir('kms++util')
subdir('utils')
subdir('kmscube')
subdir('py')

summary({
            'omapdrm extensions (omap)': omapdrm_enabled,
            'kms++utils library (libutils)': libutils_enabled,
            'Python bindings (pykms)': pybindings_enabled,
            'kmscube (kmscube)': kmscube_enabled,
            'Utilities (utils)': utils_enabled,
        },
        section : 'Configuration',
        bool_yn : true)