-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmeson.build
85 lines (72 loc) · 2.28 KB
/
meson.build
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
project('cybercobra_assembler', 'cpp', default_options : ['cpp_std=c++23'])
incdir = [include_directories('inc')]
catch_dep = dependency('catch2-with-main')
if (meson.get_compiler('cpp').get_id() in ['g++', 'gcc']) \
and get_option('buildtype').startswith('debug') \
and get_option('warning_level') == '3'
add_project_arguments([
'-Wshadow'
,'-Wformat=2'
,'-Wfloat-equal'
,'-Wconversion'
,'-Wlogical-op'
,'-Wshift-overflow=2'
,'-Wduplicated-cond'
,'-Wcast-qual'
,'-Wcast-align'
,'-D_GLIBCXX_DEBUG'
,'-D_GLIBCXX_DEBUG_PEDANTIC'
,'-D_FORTIFY_SOURCE=2'
,'-fno-sanitize-recover'
,'-fstack-protector'
,'-Wsign-conversion'
,'-Weffc++'
], language : ['cpp'])
endif
assembler_src_unit_test_files = [
'decoder.cpp',
'encoder.cpp',
]
src_dir = 'src'
foreach file : assembler_src_unit_test_files
path = src_dir / file
exe = executable(file, sources : path,
include_directories : incdir,
cpp_args : ['-DUNIT_TEST'],
dependencies : catch_dep)
test(file, exe)
endforeach
assembler_src_all_files = assembler_src_unit_test_files + [
'main.cpp',
]
assembler_path_src = []
foreach file : assembler_src_all_files
assembler_path_src += src_dir / file
endforeach
assembler_name = 'cybercobra_assembler'
executable(assembler_name, sources : assembler_path_src, include_directories : incdir)
src_standalone_test_files = {
'test_preprocessor.cpp' : [],
'test_assembler.cpp' : [
'src' / 'encoder.cpp',
'src' / 'decoder.cpp',
],
}
standalone_test_dir = 'test'
foreach test_file, other_files : src_standalone_test_files
test_file_path = standalone_test_dir / test_file
all_src_path = [test_file_path] + other_files
exe = executable(test_file, sources : all_src_path,
include_directories : incdir,
dependencies : catch_dep)
test(test_file, exe)
endforeach
# preprocessor_path_src = []
# preprocessor_src_all_files = [
# 'preprocessor.cpp',
# ]
# foreach file : preprocessor_src_all_files
# preprocessor_path_src += src_dir / file
# endforeach
# preprocessor_name = 'cybercobra_preprocessor'
# executable(preprocessor_name, sources : preprocessor_path_src, include_directories : incdir)