update and change how we build with spdlog
This commit is contained in:
		
							
								
								
									
										141
									
								
								third_party/spdlog/meson.build
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								third_party/spdlog/meson.build
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,141 @@ | ||||
| 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 wit meson versions before 0.49.0') | ||||
|   endif | ||||
|   dep_list     += dependency('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', | ||||
|     spdlog_srcs, | ||||
|     cpp_args            : [compile_args] + ['-DSPDLOG_COMPILED_LIB'], | ||||
|     include_directories : spdlog_inc, | ||||
|     dependencies        : dep_list, | ||||
|     install             : not meson.is_subproject() | ||||
|     ) | ||||
| else | ||||
|   spdlog = shared_library('spdlog', | ||||
|     spdlog_srcs, | ||||
|     cpp_args            : [compile_args] + ['-DSPDLOG_COMPILED_LIB'], | ||||
|     include_directories : spdlog_inc, | ||||
|     dependencies        : dep_list, | ||||
|     install             : not meson.is_subproject(), | ||||
|   ) | ||||
| endif | ||||
|  | ||||
| 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   --- | ||||
| # ------------------------ | ||||
|  | ||||
| # 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 : ['-DSPDLOG_COMPILED_LIB'] | ||||
|   ) | ||||
| endif | ||||
|  | ||||
| # ------------------------------------- | ||||
| # ---   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 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) | ||||
		Reference in New Issue
	
	Block a user