project('thorvg',
'cpp',
- default_options : ['buildtype=debugoptimized', 'b_sanitize=none', 'werror=false', 'optimization=s'],
- version : '0.3.99',
+ 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()
-add_project_arguments('-DEXAMPLE_DIR="@0@/src/examples/images"'.format(meson.current_source_dir()), language : 'cpp')
+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)
config_h.set10('THORVG_GL_RASTER_SUPPORT', true)
endif
-if get_option('loaders').contains('svg') == true
+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 get_option('loaders').contains('tvg') == true
+if all_loaders or get_option('loaders').contains('tvg') == true
config_h.set10('THORVG_TVG_LOADER_SUPPORT', true)
endif
-if get_option('loaders').contains('png') == true
- config_h.set10('THORVG_PNG_LOADER_SUPPORT', true)
+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
-if get_option('vectors').contains('avx') == true
+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_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
ThorVG version: @0@
Build Type: @1@
Prefix: @2@
- Raster Engine (SW): @3@
- Raster Engine (GL): @4@
- AVX SIMD Instruction: @5@
+ SIMD Instruction: @3@
+ Raster Engine (SW): @4@
+ Raster Engine (GL): @5@
Loader (TVG): @6@
Loader (SVG): @7@
Loader (PNG): @8@
- CAPI Binding: @9@
- Log Message: @10@
- Tests: @11@
- Examples: @12@
- Tool (Svg2Png): @13@
+ 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'),
- get_option('vectors').contains('avx'),
- get_option('loaders').contains('tvg'),
- get_option('loaders').contains('svg'),
- get_option('loaders').contains('png'),
+ 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'),
- get_option('tools').contains('svg2png'),
+ all_tools or get_option('tools').contains('svg2tvg'),
+ all_tools or get_option('tools').contains('svg2png'),
)
message(summary)