thorvg/meson.build
Hermet Park 6b7aa8ad9e
tests: introduce catch2 unit tests infrastructure.
Catch2 is a multi-paradigm test framework for C++.
It is primarily distributed as a single header file,
very easy and simple to adopt this to thorvg project.

This patch introduces catch2 infrastsructure and one prototype as a sample.

You can refer "testInitializer.cpp", how to add unit test!
while ignoring else files such as "catch2.hpp", "testMain.cpp"

Also, enable Unit-tests with meson option when you change any thorvg code.

$meson build -Dtests=true.

launch tvgUnitTest in the build result then verify 100% coverage
before submitting any patches.
2021-06-04 16:46:34 +09:00

70 lines
1.7 KiB
Meson

project('thorvg',
'cpp',
default_options : ['buildtype=debugoptimized', 'werror=false', 'optimization=s'],
version : '0.1.0',
license : 'MIT')
config_h = configuration_data()
add_project_arguments('-DEXAMPLE_DIR="@0@/src/examples/images"'.format(meson.current_source_dir()), language : 'cpp')
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
if get_option('loaders').contains('svg') == true
config_h.set10('THORVG_SVG_LOADER_SUPPORT', true)
endif
if get_option('loaders').contains('png') == true
config_h.set10('THORVG_PNG_LOADER_SUPPORT', true)
endif
if get_option('vectors').contains('avx') == true
config_h.set10('THORVG_AVX_VECTOR_SUPPORT', true)
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)
message('Enable Log')
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@
Tests : @3@
Examples : @4@
'''.format(
meson.project_version(),
get_option('buildtype'),
get_option('prefix'),
get_option('tests'),
get_option('examples'),
)
message(summary)