mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-25 10:01:33 +08:00
commit
7b218737cc
4
.gitignore
vendored
4
.gitignore
vendored
@ -34,6 +34,9 @@ build/*
|
||||
# Codelite
|
||||
.codelite
|
||||
|
||||
# KDevelop
|
||||
*.kdev4
|
||||
|
||||
# .orig files
|
||||
*.orig
|
||||
|
||||
@ -46,6 +49,7 @@ example/*
|
||||
!example/example.sln
|
||||
!example/example.vcxproj
|
||||
!example/CMakeLists.txt
|
||||
!example/meson.build
|
||||
!example/multisink.cpp
|
||||
!example/jni
|
||||
|
||||
|
13
bench/meson.build
Normal file
13
bench/meson.build
Normal file
@ -0,0 +1,13 @@
|
||||
benchmark = dependency('benchmark')
|
||||
|
||||
bench_matrix = [
|
||||
['bench', [spdlog_dep], []],
|
||||
['async_bench', [spdlog_dep], []],
|
||||
['formatter-bench', [spdlog_dep, benchmark], ['all']],
|
||||
['latency', [spdlog_dep, benchmark], []],
|
||||
]
|
||||
|
||||
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
|
8
example/meson.build
Normal file
8
example/meson.build
Normal file
@ -0,0 +1,8 @@
|
||||
example_matrix = [
|
||||
['spdlog-example', spdlog_dep],
|
||||
['spdlog-example-ho', spdlog_headeronly_dep],
|
||||
]
|
||||
|
||||
foreach i : example_matrix
|
||||
test_exe = executable(i[0], ['example.cpp'], dependencies: i[1])
|
||||
endforeach
|
111
meson.build
Normal file
111
meson.build
Normal file
@ -0,0 +1,111 @@
|
||||
project('spdlog', ['cpp'],
|
||||
license : 'MIT',
|
||||
version : run_command(find_program('scripts/extract_version.py')).stdout().strip(),
|
||||
default_options : [
|
||||
'warning_level=3',
|
||||
'cpp_std=c++11',
|
||||
'default_library=static',
|
||||
'buildtype=release',
|
||||
'b_colorout=always',
|
||||
],
|
||||
)
|
||||
|
||||
# ------------------------
|
||||
# --- Dependencies ---
|
||||
# ------------------------
|
||||
|
||||
dep_list = []
|
||||
compile_args = []
|
||||
|
||||
# Threads
|
||||
dep_list += dependency('threads')
|
||||
|
||||
# Check for FMT
|
||||
if get_option('extrenal_fmt')
|
||||
if not meson.version().version_compare('>=0.49.0')
|
||||
warning('Finding fmt can fail wit meson versions before 0.49.0')
|
||||
endif
|
||||
dep_list += dependency('fmt')
|
||||
compile_args += '-DSPDLOG_FMT_EXTERNAL'
|
||||
endif
|
||||
|
||||
# ------------------------------------
|
||||
# --- Compiled library version ---
|
||||
# ------------------------------------
|
||||
|
||||
spdlog_inc = include_directories('./include')
|
||||
|
||||
spdlog = library('spdlog', ['src/spdlog.cpp'],
|
||||
cpp_args : [compile_args] + ['-DSPDLOG_COMPILED_LIB'],
|
||||
include_directories : spdlog_inc,
|
||||
dependencies : dep_list,
|
||||
install : true,
|
||||
)
|
||||
|
||||
spdlog_dep = declare_dependency(
|
||||
link_with : spdlog,
|
||||
include_directories : spdlog_inc,
|
||||
compile_args : compile_args + ['-DSPDLOG_COMPILED_LIB'],
|
||||
dependencies : dep_list,
|
||||
version : meson.project_version(),
|
||||
)
|
||||
|
||||
# ----------------------------------
|
||||
# --- Header only dependency ---
|
||||
# ----------------------------------
|
||||
|
||||
spdlog_headeronly_dep = declare_dependency(
|
||||
include_directories : spdlog_inc,
|
||||
compile_args : compile_args,
|
||||
dependencies : dep_list,
|
||||
version : meson.project_version(),
|
||||
)
|
||||
|
||||
# ------------------------
|
||||
# --- Installation ---
|
||||
# ------------------------
|
||||
|
||||
install_subdir('include/spdlog', install_dir: get_option('includedir'))
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
pkg.generate(spdlog,
|
||||
name : 'spdlog',
|
||||
description : 'Fast C++ logging library',
|
||||
url : 'https://github.com/gabime/spdlog',
|
||||
extra_cflags : ['-DSPDLOG_COMPILED_LIB']
|
||||
)
|
||||
|
||||
# -------------------------------------
|
||||
# --- Conditionally add subdirs ---
|
||||
# -------------------------------------
|
||||
|
||||
if get_option('enable_tests')
|
||||
subdir('tests')
|
||||
endif
|
||||
|
||||
if get_option('enable_examples')
|
||||
subdir('example')
|
||||
endif
|
||||
|
||||
if get_option('enable_benchmarks')
|
||||
subdir('bench')
|
||||
endif
|
||||
|
||||
# -------------------
|
||||
# --- Summary ---
|
||||
# -------------------
|
||||
|
||||
summary_str = '''spdlog build summary:
|
||||
|
||||
- using extrenal fmt: @0@
|
||||
- building tests: @1@
|
||||
- building examples: @2@
|
||||
- building benchmarks: @3@
|
||||
'''.format(
|
||||
get_option('extrenal_fmt'),
|
||||
get_option('enable_tests'),
|
||||
get_option('enable_examples'),
|
||||
get_option('enable_benchmarks')
|
||||
)
|
||||
|
||||
message(summary_str)
|
4
meson_options.txt
Normal file
4
meson_options.txt
Normal file
@ -0,0 +1,4 @@
|
||||
option('extrenal_fmt', type: 'boolean', value: false)
|
||||
option('enable_examples', type: 'boolean', value: false)
|
||||
option('enable_benchmarks', type: 'boolean', value: false)
|
||||
option('enable_tests', type: 'boolean', value: false)
|
@ -1 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
cd ..
|
||||
|
||||
clang-tidy example/example.cpp -- -I ./include
|
17
scripts/extract_version.py
Executable file
17
scripts/extract_version.py
Executable file
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
||||
config_h = os.path.join(base_path, 'include', 'spdlog', 'version.h')
|
||||
data = {'MAJOR': 0, 'MINOR': 0, 'PATCH': 0}
|
||||
reg = re.compile(r'^\s*#define\s+SPDLOG_VER_([A-Z]+)\s+([0-9]+).*$')
|
||||
|
||||
with open(config_h, 'r') as fp:
|
||||
for l in fp:
|
||||
m = reg.match(l)
|
||||
if m:
|
||||
data[m.group(1)] = int(m.group(2))
|
||||
|
||||
print('{}.{}.{}'.format(data['MAJOR'], data['MINOR'], data['PATCH']))
|
@ -1,3 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
cd ..
|
||||
|
||||
echo -n "Running dos2unix "
|
||||
find . -name "*\.h" -o -name "*\.cpp"|grep -v bundled|xargs -I {} sh -c "dos2unix '{}' 2>/dev/null; echo -n '.'"
|
||||
echo
|
43
tests/meson.build
Normal file
43
tests/meson.build
Normal file
@ -0,0 +1,43 @@
|
||||
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',
|
||||
])
|
||||
|
||||
global_test_deps = []
|
||||
|
||||
# -----------------------------------------------------
|
||||
# --- Add the systemd test if libsystemd is found ---
|
||||
# -----------------------------------------------------
|
||||
|
||||
systemd_dep = dependency('libsystemd', required: false)
|
||||
|
||||
if systemd_dep.found()
|
||||
test_sources += files(['test_systemd.cpp'])
|
||||
global_test_deps += systemd_dep
|
||||
endif
|
||||
|
||||
# --------------------------------------
|
||||
# --- Build the test executables ---
|
||||
# --------------------------------------
|
||||
|
||||
test_matrix = [
|
||||
['spdlog-utest', spdlog_dep],
|
||||
['spdlog-utest-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
|
Loading…
Reference in New Issue
Block a user