From 3a855b61195d0cf6406a89e5a28b8a2c6be38803 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 7 May 2024 12:01:05 +0900 Subject: [PATCH] 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 --- meson.build | 64 +++++++++++++++++++++++++---------------------- meson_options.txt | 24 +++++++++++------- 2 files changed, 49 insertions(+), 39 deletions(-) diff --git a/meson.build b/meson.build index 3e143e80..567f7ec2 100644 --- a/meson.build +++ b/meson.build @@ -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) diff --git a/meson_options.txt b/meson_options.txt index a6506232..b3e5558c 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -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') \ No newline at end of file