infra: add extra build options for flexible ThorVG composition

this commit introduces an additional build options:

- lottie expressions: this advanced feature in Lottie can
significantly increase binary size. Users now have the option
to enable or disable it based on their requirements.

Note that, this change introduces one config definitions:

- THORVG_LOTTIE_EXPRESSIONS_SUPPORT
This commit is contained in:
Hermet Park 2024-05-07 12:01:05 +09:00
parent abef4c724f
commit 3a855b6119
2 changed files with 49 additions and 39 deletions

View file

@ -56,11 +56,6 @@ endif
if all_loaders or get_option('loaders').contains('lottie') == true
config_h.set10('THORVG_LOTTIE_LOADER_SUPPORT', true)
#Experimental feature, enable it manually
lottie_expressions = false
if lottie_expressions
config_h.set10('THORVG_LOTTIE_EXPRESSIONS_SUPPORT', false)
endif
endif
if all_loaders or get_option('loaders').contains('ttf') == true
@ -124,6 +119,13 @@ if get_option('tools').contains('all') == true
all_tools = true
endif
#Extra
lottie_expressions = (get_option('loaders').contains('all') or get_option('loaders').contains('lottie')) and get_option('extra').contains('lottie_expressions')
if lottie_expressions
config_h.set10('THORVG_LOTTIE_EXPRESSIONS_SUPPORT', true)
endif
#Miscellaneous
config_h.set10('WIN32_LEAN_AND_MEAN', true)
@ -148,31 +150,32 @@ endif
summary = '''
Summary:
ThorVG version: @0@
Build Type: @1@
Prefix: @2@
Multi-Tasking: @3@
SIMD Instruction: @4@
Raster Engine (SW): @5@
Raster Engine (GL_BETA): @6@
Raster Engine (WG_BETA): @7@
Loader (TVG): @8@
Loader (SVG): @9@
Loader (TTF): @10@
Loader (LOTTIE): @11@
Loader (PNG): @12@
Loader (JPG): @13@
Loader (WEBP): @14@
Saver (TVG): @15@
Saver (GIF): @16@
Binding (CAPI): @17@
Binding (WASM_BETA): @18@
Log Message: @19@
Tests: @20@
Examples: @21@
Tool (Svg2Tvg): @22@
Tool (Svg2Png): @23@
Tool (Lottie2Gif): @24@
ThorVG version: @0@
Build Type: @1@
Prefix: @2@
Multi-Tasking: @3@
SIMD Instruction: @4@
Raster Engine (SW): @5@
Raster Engine (GL_BETA): @6@
Raster Engine (WG_BETA): @7@
Loader (TVG): @8@
Loader (SVG): @9@
Loader (TTF): @10@
Loader (LOTTIE): @11@
Loader (PNG): @12@
Loader (JPG): @13@
Loader (WEBP): @14@
Saver (TVG): @15@
Saver (GIF): @16@
Binding (CAPI): @17@
Binding (WASM_BETA): @18@
Log Message: @19@
Tests: @20@
Examples: @21@
Tool (Svg2Tvg): @22@
Tool (Svg2Png): @23@
Tool (Lottie2Gif): @24@
Extra (Lottie Expressions): @25@
'''.format(
meson.project_version(),
@ -200,6 +203,7 @@ Summary:
all_tools or get_option('tools').contains('svg2tvg'),
all_tools or get_option('tools').contains('svg2png'),
all_tools or get_option('tools').contains('lottie2gif'),
lottie_expressions
)
message(summary)

View file

@ -39,9 +39,9 @@ option('tools',
description: 'Enable building thorvg tools')
option('examples',
type: 'boolean',
value: false,
description: 'Enable building examples')
type: 'boolean',
value: false,
description: 'Enable building examples')
option('tests',
type: 'boolean',
@ -49,11 +49,17 @@ option('tests',
description: 'Enable building Unit Tests')
option('log',
type: 'boolean',
value: false,
description: 'Enable log message')
type: 'boolean',
value: false,
description: 'Enable log message')
option('static',
type: 'boolean',
value: false,
description: 'Force to use static linking modules in thorvg')
type: 'boolean',
value: false,
description: 'Force to use static linking modules in thorvg')
option('extra',
type: 'array',
choices: ['', 'lottie_expressions'],
value: ['lottie_expressions'],
description: '"Enable support for exceptionally advanced features')