Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gabime/spdlog.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--bench/meson.build13
-rw-r--r--example/meson.build8
-rw-r--r--meson.build111
-rw-r--r--meson_options.txt4
-rwxr-xr-xscripts/clang_tidy.sh (renamed from clang_tidy.sh)5
-rwxr-xr-xscripts/extract_version.py17
-rwxr-xr-xscripts/format.sh (renamed from format.sh)5
-rw-r--r--tests/meson.build43
9 files changed, 210 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index fafa874a..cf0563ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/bench/meson.build b/bench/meson.build
new file mode 100644
index 00000000..e185e689
--- /dev/null
+++ b/bench/meson.build
@@ -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
diff --git a/example/meson.build b/example/meson.build
new file mode 100644
index 00000000..0a5a53c7
--- /dev/null
+++ b/example/meson.build
@@ -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
diff --git a/meson.build b/meson.build
new file mode 100644
index 00000000..abb51f71
--- /dev/null
+++ b/meson.build
@@ -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)
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 00000000..7dafbf51
--- /dev/null
+++ b/meson_options.txt
@@ -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)
diff --git a/clang_tidy.sh b/scripts/clang_tidy.sh
index 9ced07f1..8b1b5f88 100755
--- a/clang_tidy.sh
+++ b/scripts/clang_tidy.sh
@@ -1 +1,6 @@
+#!/bin/bash
+
+cd "$(dirname "$0")"
+cd ..
+
clang-tidy example/example.cpp -- -I ./include
diff --git a/scripts/extract_version.py b/scripts/extract_version.py
new file mode 100755
index 00000000..960df51b
--- /dev/null
+++ b/scripts/extract_version.py
@@ -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']))
diff --git a/format.sh b/scripts/format.sh
index 97bbea23..bffbb4c1 100755
--- a/format.sh
+++ b/scripts/format.sh
@@ -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
diff --git a/tests/meson.build b/tests/meson.build
new file mode 100644
index 00000000..9cb7eef4
--- /dev/null
+++ b/tests/meson.build
@@ -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