project('thorvg', 'cpp', default_options : ['buildtype=debugoptimized', 'b_sanitize=none', 'werror=false', 'optimization=s', 'cpp_std=c++14'], version : '0.8.99', license : 'MIT') config_h = configuration_data() src_dir = '/'.join(meson.current_source_dir().split('\\')) add_project_arguments('-DEXAMPLE_DIR="@0@/src/examples/images"'.format(src_dir), '-DTEST_DIR="@0@/test/images"'.format(src_dir), language : 'cpp') config_h.set_quoted('THORVG_VERSION_STRING', meson.project_version()) if get_option('engines').contains('sw') == true config_h.set10('THORVG_SW_RASTER_SUPPORT', true) endif if get_option('engines').contains('gl') == true config_h.set10('THORVG_GL_RASTER_SUPPORT', true) endif all_loaders = false if get_option('loaders').contains('all') == true all_loaders = true endif if all_loaders or get_option('loaders').contains('svg') == true config_h.set10('THORVG_SVG_LOADER_SUPPORT', true) endif if all_loaders or get_option('loaders').contains('tvg') == true config_h.set10('THORVG_TVG_LOADER_SUPPORT', true) endif if all_loaders or get_option('loaders').contains('png') == true config_h.set10('THORVG_PNG_LOADER_SUPPORT', true) endif if all_loaders or get_option('loaders').contains('jpg') == true config_h.set10('THORVG_JPG_LOADER_SUPPORT', true) endif if get_option('savers').contains('tvg') == true config_h.set10('THORVG_TVG_SAVER_SUPPORT', true) endif simd_type = 'none' if get_option('vector') == true if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64' config_h.set10('THORVG_AVX_VECTOR_SUPPORT', true) simd_type = 'avx' elif host_machine.cpu_family() == 'arm' config_h.set10('THORVG_NEON_VECTOR_SUPPORT', true) simd_type = 'neon' endif endif if get_option('bindings').contains('capi') == true config_h.set10('THORVG_CAPI_BINDING_SUPPORT', true) endif if get_option('log') == true config_h.set10('THORVG_LOG_ENABLED', true) endif all_tools = false if get_option('tools').contains('all') == true all_tools = true endif configure_file( output: 'config.h', configuration: config_h ) headers = [include_directories('inc'), include_directories('.')] subdir('inc') subdir('src') if get_option('tests') == true subdir('test') endif summary = ''' Summary: ThorVG version: @0@ Build Type: @1@ Prefix: @2@ SIMD Instruction: @3@ Raster Engine (SW): @4@ Raster Engine (GL): @5@ Loader (TVG): @6@ Loader (SVG): @7@ Loader (PNG): @8@ Loader (JPG): @9@ Saver (TVG): @10@ CAPI Binding: @11@ Log Message: @12@ Tests: @13@ Examples: @14@ Tool (Svg2Tvg): @15@ Tool (Svg2Png): @16@ '''.format( meson.project_version(), get_option('buildtype'), get_option('prefix'), simd_type, get_option('engines').contains('sw'), get_option('engines').contains('gl'), all_loaders or get_option('loaders').contains('tvg'), all_loaders or get_option('loaders').contains('svg'), all_loaders or get_option('loaders').contains('png'), all_loaders or get_option('loaders').contains('jpg'), get_option('savers').contains('tvg'), get_option('bindings').contains('capi'), get_option('log'), get_option('tests'), get_option('examples'), all_tools or get_option('tools').contains('svg2tvg'), all_tools or get_option('tools').contains('svg2png'), ) message(summary)