Updated meson build
This commit is contained in:
		@@ -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')
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								meson.build
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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_daily_logger.cpp',
 | 
			
		||||
    'test_misc.cpp',
 | 
			
		||||
  'test_mpmc_q.cpp',
 | 
			
		||||
    'test_pattern_formatter.cpp',
 | 
			
		||||
    'test_async.cpp',
 | 
			
		||||
    'includes.h',
 | 
			
		||||
    'test_registry.cpp',
 | 
			
		||||
  'test_stdout_api.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')
 | 
			
		||||
		Reference in New Issue
	
	Block a user