diff --git a/bench/meson.build b/bench/meson.build index e185e689..c2604271 100644 --- a/bench/meson.build +++ b/bench/meson.build @@ -11,3 +11,5 @@ foreach i : bench_matrix bench_exe = executable(i[0], i[0] + '.cpp', dependencies: i[1]) benchmark('bench_' + i[0], bench_exe, args: i[2]) endforeach + +run_command(find_program('mkdir'), meson.current_build_dir() + '/logs') diff --git a/example/meson.build b/example/meson.build index 0a5a53c7..7e29abb2 100644 --- a/example/meson.build +++ b/example/meson.build @@ -1,8 +1,5 @@ -example_matrix = [ - ['spdlog-example', spdlog_dep], - ['spdlog-example-ho', spdlog_headeronly_dep], -] +executable('example', 'example.cpp', dependencies: spdlog_dep) +executable('example_header_only', 'example.cpp', dependencies: spdlog_headeronly_dep) +run_command(find_program('mkdir'), meson.current_build_dir() + '/logs') + -foreach i : example_matrix - test_exe = executable(i[0], ['example.cpp'], dependencies: i[1]) -endforeach diff --git a/meson.build b/meson.build index 05288abb..5d3ac101 100644 --- a/meson.build +++ b/meson.build @@ -27,21 +27,37 @@ if get_option('external_fmt') compile_args += '-DSPDLOG_FMT_EXTERNAL' endif +if get_option('no_exceptions') + compile_args += '-DSPDLOG_NO_EXCEPTIONS' +endif + # ------------------------------------ # --- Compiled library version --- # ------------------------------------ spdlog_inc = include_directories('./include') +spdlog_srcs = files([ + 'src/async.cpp', + 'src/color_sinks.cpp', + 'src/file_sinks.cpp', + 'src/fmt.cpp', + 'src/spdlog.cpp', + 'src/stdout_sinks.cpp' +]) + if get_option('library_type') == 'static' - spdlog = static_library('spdlog', ['src/spdlog.cpp'], + spdlog = static_library( + 'spdlog', + spdlog_srcs, cpp_args : [compile_args] + ['-DSPDLOG_COMPILED_LIB'], include_directories : spdlog_inc, dependencies : dep_list, - install : not meson.is_subproject(), - ) + install : not meson.is_subproject() + ) else - spdlog = shared_library('spdlog', ['src/spdlog.cpp'], + spdlog = shared_library('spdlog', + spdlog_srcs, cpp_args : [compile_args] + ['-DSPDLOG_COMPILED_LIB'], include_directories : spdlog_inc, dependencies : dep_list, @@ -112,12 +128,14 @@ summary_str = '''spdlog build summary: - building examples: @2@ - building benchmarks: @3@ - library type: @4@ + - no exceptions: @5@ '''.format( get_option('external_fmt'), get_option('enable_tests'), get_option('enable_examples'), get_option('enable_benchmarks'), - get_option('library_type') + get_option('library_type'), + get_option('no_exceptions') ) message(summary_str) diff --git a/meson_options.txt b/meson_options.txt index b568adf1..235b8d9f 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,5 +1,6 @@ option('external_fmt', type: 'boolean', value: false) -option('enable_examples', type: 'boolean', value: false) +option('enable_examples', type: 'boolean', value: true) option('enable_benchmarks', type: 'boolean', value: false) option('enable_tests', type: 'boolean', value: false) option('library_type', type: 'combo', choices: ['static', 'shared'], value: 'static') +option('no_exceptions', type: 'boolean', value: false) diff --git a/tests/meson.build b/tests/meson.build index 9cb7eef4..73d7b8f8 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,20 +1,27 @@ test_sources = files([ - 'main.cpp', - 'test_async.cpp', - 'test_dup_filter.cpp', - 'test_errors.cpp', - 'test_file_helper.cpp', - 'test_file_logging.cpp', - 'test_fmt_helper.cpp', - 'test_macros.cpp', - 'test_misc.cpp', - 'test_mpmc_q.cpp', - 'test_pattern_formatter.cpp', - 'test_registry.cpp', - 'test_stdout_api.cpp', - 'utils.cpp', + 'test_file_helper.cpp', + 'test_file_logging.cpp', + 'test_daily_logger.cpp', + 'test_misc.cpp', + 'test_pattern_formatter.cpp', + 'test_async.cpp', + 'includes.h', + 'test_registry.cpp', + 'test_macros.cpp', + 'utils.cpp', + 'main.cpp', + 'test_mpmc_q.cpp', + 'test_fmt_helper.cpp', + 'test_stdout_api.cpp', + 'test_dup_filter.cpp', + 'test_backtrace.cpp' ]) + +if not get_option('no_exceptions') + test_sources += 'test_errors.cpp' +endif + global_test_deps = [] # ----------------------------------------------------- @@ -24,20 +31,23 @@ global_test_deps = [] systemd_dep = dependency('libsystemd', required: false) if systemd_dep.found() - test_sources += files(['test_systemd.cpp']) + test_sources += 'test_systemd.cpp' global_test_deps += systemd_dep endif +run_command('mkdir', 'logs') # -------------------------------------- # --- Build the test executables --- # -------------------------------------- test_matrix = [ - ['spdlog-utest', spdlog_dep], - ['spdlog-utest-ho', spdlog_headeronly_dep], + ['spdlog-utests', spdlog_dep], + ['spdlog-utests-ho', spdlog_headeronly_dep], ] foreach i : test_matrix test_exe = executable(i[0], test_sources, dependencies: global_test_deps + [i[1]]) test('test_' + i[0], test_exe) endforeach + +run_command(find_program('mkdir'), meson.current_build_dir() + '/logs') \ No newline at end of file