|
1 | 1 | # Copyright (c) 2019 Maxim Egorushkin. MIT License. See the full licence in file LICENSE. |
2 | 2 |
|
3 | | -# (rm -rf build; meson build; cd build; time ninja -v) |
| 3 | +# (rm -rf build; meson setup build; time ninja -C build -v) |
4 | 4 |
|
5 | 5 | project( |
6 | 6 | 'atomic_queue', 'cpp', |
7 | 7 | license : 'MIT License', |
8 | 8 | default_options : ['cpp_std=gnu++14', 'buildtype=release', 'b_ndebug=if-release'] |
9 | 9 | ) |
10 | 10 |
|
11 | | -cxx = meson.get_compiler('cpp') |
12 | | -dl = cxx.find_library('dl', required : true) |
13 | | -threads = dependency('threads') |
14 | | -unit_test_framework = dependency('boost', modules : ['unit_test_framework']) |
15 | | -if get_option('benchmarks') |
16 | | - tbb = cxx.find_library('tbb', required : true) |
17 | | - xenium = declare_dependency(include_directories : '../xenium') |
18 | | - moodycamel = declare_dependency(include_directories : '../') |
19 | | -endif |
| 11 | +threads_dep = dependency('threads') |
20 | 12 |
|
21 | | -atomic_queue = declare_dependency(include_directories : ['include'], dependencies : threads) |
| 13 | +atomic_queue_dep = declare_dependency(include_directories : ['include'], dependencies : threads_dep) |
22 | 14 |
|
23 | | -tests_exe = executable( |
24 | | - 'tests', |
25 | | - 'src/tests.cc', |
26 | | - dependencies : [atomic_queue, unit_test_framework] |
27 | | -) |
28 | | -test('tests', tests_exe) |
| 15 | +if get_option('tests') |
| 16 | + unit_test_framework_dep = dependency('boost', modules : ['unit_test_framework']) |
29 | 17 |
|
30 | | -example_exe = executable( |
31 | | - 'example', |
32 | | - 'src/example.cc', |
33 | | - dependencies : [atomic_queue] |
34 | | -) |
| 18 | + tests_exe = executable( |
| 19 | + 'tests', |
| 20 | + 'src/tests.cc', |
| 21 | + dependencies : [atomic_queue_dep, unit_test_framework_dep], |
| 22 | + ) |
| 23 | + test('tests', tests_exe) |
| 24 | + |
| 25 | + example_exe = executable( |
| 26 | + 'example', |
| 27 | + 'src/example.cc', |
| 28 | + dependencies : [atomic_queue_dep], |
| 29 | + ) |
| 30 | + test('example', example_exe) |
| 31 | +endif |
35 | 32 |
|
36 | 33 | if get_option('benchmarks') |
37 | | - benchmarks_exe = executable( |
| 34 | + cxx = meson.get_compiler('cpp') |
| 35 | + dl_dep = cxx.find_library('dl') |
| 36 | + xenium_dep = declare_dependency(include_directories : '../xenium') |
| 37 | + boost_dep = dependency('boost') |
| 38 | + tbb_dep = cxx.find_library('tbb') |
| 39 | + moodycamel_dep = declare_dependency(include_directories : '../') |
| 40 | + |
| 41 | + executable( |
38 | 42 | 'benchmarks', |
39 | 43 | ['src/benchmarks.cc', 'src/cpu_base_frequency.cc', 'src/huge_pages.cc'], |
40 | | - dependencies : [atomic_queue, xenium, moodycamel, tbb, dl] |
| 44 | + include_directories : ['src'], |
| 45 | + dependencies : [atomic_queue_dep, dl_dep, xenium_dep, boost_dep, tbb_dep, moodycamel_dep], |
41 | 46 | ) |
42 | 47 | endif |
0 commit comments