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 d27a9782d4
commit 364a51d0eb
2 changed files with 50 additions and 40 deletions

View file

@ -71,11 +71,6 @@ endif
if lottie_loader if lottie_loader
config_h.set10('THORVG_LOTTIE_LOADER_SUPPORT', 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 endif
if ttf_loader if ttf_loader
@ -124,6 +119,13 @@ if get_option('log') == true
config_h.set10('THORVG_LOG_ENABLED', true) config_h.set10('THORVG_LOG_ENABLED', true)
endif endif
#Extra
lottie_expressions = lottie_loader and get_option('extra').contains('lottie_expressions')
if lottie_expressions
config_h.set10('THORVG_LOTTIE_EXPRESSIONS_SUPPORT', true)
endif
#Miscellaneous #Miscellaneous
config_h.set10('WIN32_LEAN_AND_MEAN', true) config_h.set10('WIN32_LEAN_AND_MEAN', true)
@ -148,31 +150,32 @@ endif
summary = ''' summary = '''
Summary: Summary:
ThorVG version: @0@ ThorVG version: @0@
Build Type: @1@ Build Type: @1@
Prefix: @2@ Prefix: @2@
Multi-Tasking: @3@ Multi-Tasking: @3@
SIMD Instruction: @4@ SIMD Instruction: @4@
Raster Engine (SW): @5@ Raster Engine (SW): @5@
Raster Engine (GL_BETA): @6@ Raster Engine (GL_BETA): @6@
Raster Engine (WG_BETA): @7@ Raster Engine (WG_BETA): @7@
Loader (TVG): @8@ Loader (TVG): @8@
Loader (SVG): @9@ Loader (SVG): @9@
Loader (TTF): @10@ Loader (TTF): @10@
Loader (LOTTIE): @11@ Loader (LOTTIE): @11@
Loader (PNG): @12@ Loader (PNG): @12@
Loader (JPG): @13@ Loader (JPG): @13@
Loader (WEBP): @14@ Loader (WEBP): @14@
Saver (TVG): @15@ Saver (TVG): @15@
Saver (GIF): @16@ Saver (GIF): @16@
Binding (CAPI): @17@ Binding (CAPI): @17@
Binding (WASM_BETA): @18@ Binding (WASM_BETA): @18@
Log Message: @19@ Log Message: @19@
Tests: @20@ Tests: @20@
Examples: @21@ Examples: @21@
Tool (Svg2Tvg): @22@ Tool (Svg2Tvg): @22@
Tool (Svg2Png): @23@ Tool (Svg2Png): @23@
Tool (Lottie2Gif): @24@ Tool (Lottie2Gif): @24@
Extra (Lottie Expressions): @25@
'''.format( '''.format(
meson.project_version(), meson.project_version(),
@ -199,7 +202,8 @@ Summary:
get_option('examples'), get_option('examples'),
svg2tvg, svg2tvg,
svg2png, svg2png,
lottie2gif lottie2gif,
lottie_expressions
) )
message(summary) message(summary)

View file

@ -39,9 +39,9 @@ option('tools',
description: 'Enable building thorvg tools') description: 'Enable building thorvg tools')
option('examples', option('examples',
type: 'boolean', type: 'boolean',
value: false, value: false,
description: 'Enable building examples') description: 'Enable building examples')
option('tests', option('tests',
type: 'boolean', type: 'boolean',
@ -49,11 +49,17 @@ option('tests',
description: 'Enable building Unit Tests') description: 'Enable building Unit Tests')
option('log', option('log',
type: 'boolean', type: 'boolean',
value: false, value: false,
description: 'Enable log message') description: 'Enable log message')
option('static', option('static',
type: 'boolean', type: 'boolean',
value: false, value: false,
description: 'Force to use static linking modules in thorvg') 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')