diff --git a/meson.build b/meson.build deleted file mode 100644 index fae42bfc..00000000 --- a/meson.build +++ /dev/null @@ -1,184 +0,0 @@ -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', - 'buildtype=release', - 'b_colorout=always', - ], -) - -# ------------------------ -# --- Dependencies --- -# ------------------------ -dep_list = [] -compile_args = [] - -# Threads -dep_list += dependency('threads') - -# Check for FMT -if get_option('external_fmt') - if not meson.version().version_compare('>=0.49.0') - warning('Finding fmt can fail with meson versions before 0.49.0') - endif - dep_list += dependency('fmt', fallback : ['fmt', 'fmt_dep']) - compile_args += '-DSPDLOG_FMT_EXTERNAL' -endif - -if get_option('no_exceptions') - compile_args += '-DSPDLOG_NO_EXCEPTIONS' -endif - -if get_option('wchar_support') - if build_machine.system() != 'windows' - error('wchar_support only supported under windows') - endif - compile_args += '-DSPDLOG_WCHAR_TO_UTF8_SUPPORT' -endif - -if get_option('wchar_filenames') - if build_machine.system() != 'windows' - error('wchar_filenames only supported under windows') - endif - compile_args += '-DSPDLOG_WCHAR_FILENAMES' -endif - -if get_option('clock_coarse') - if build_machine.system() != 'linux' - error('clock_coarse only supported under linux') - endif - compile_args += '-DSPDLOG_CLOCK_COARSE' -endif - -if get_option('prevent_child_fd') - compile_args += '-DSPDLOG_PREVENT_CHILD_FD' -endif - -if get_option('no_thread_id') - compile_args += '-DSPDLOG_NO_THREAD_ID' -endif - -if get_option('no_tls') - compile_args += '-DSPDLOG_NO_TLS' -endif - -if get_option('no_atomic_levels') - compile_args += '-DSPDLOG_NO_ATOMIC_LEVELS' -endif - -compile_args_compiled = compile_args + ['-DSPDLOG_COMPILED_LIB'] -compile_args_ho = compile_args - -# ------------------------------------ -# --- Compiled library version --- -# ------------------------------------ - -spdlog_inc = include_directories('./include') - -spdlog_srcs = files([ - 'src/async.cpp', - 'src/color_sinks.cpp', - 'src/file_sinks.cpp', - 'src/spdlog.cpp', - 'src/stdout_sinks.cpp', - 'src/cfg.cpp' -]) - -if not get_option('external_fmt') - spdlog_srcs+= 'src/fmt.cpp' -endif - -if get_option('library_type') == 'static' - spdlog = static_library( - 'spdlog', - spdlog_srcs, - cpp_args : compile_args_compiled, - include_directories : spdlog_inc, - dependencies : dep_list, - install : not meson.is_subproject() - ) -else - spdlog = shared_library('spdlog', - spdlog_srcs, - cpp_args : compile_args_compiled, - include_directories : spdlog_inc, - dependencies : dep_list, - install : not meson.is_subproject(), - version : meson.project_version(), - ) -endif - -spdlog_dep = declare_dependency( - link_with : spdlog, - include_directories : spdlog_inc, - compile_args : compile_args_compiled, - dependencies : dep_list, - version : meson.project_version(), -) - -# ---------------------------------- -# --- Header only dependency --- -# ---------------------------------- -spdlog_headeronly_dep = declare_dependency( - include_directories : spdlog_inc, - compile_args : compile_args_ho, - dependencies : dep_list, - version : meson.project_version(), -) - -# ------------------------ -# --- Installation --- -# ------------------------ - -# Do not install when spdlog is used as a subproject -if not meson.is_subproject() - 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 : compile_args_compiled - ) -endif - -# ------------------------------------- -# --- Conditionally add subdirs --- -# ------------------------------------- - -if get_option('enable_tests') or get_option('enable_tests_ho') - 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 external fmt: @0@ - - building tests: @1@ - - 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('no_exceptions') -) - -message(summary_str)