From aaa2934acfb53243d21a4a68ac6486951ae4b045 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 3 Oct 2020 21:06:43 +1000 Subject: [PATCH 035/124] meson_options.txt: Update to use meson best practices and clean up Convert to use meson features for features. Reorganise and rename options for consistency. Make descriptions a bit less redundant. --- desktop/meson.build | 2 +- meson.build | 27 +++++++--------- meson_options.txt | 71 ++++++++++++++++++++++++------------------ src/engine/meson.build | 2 +- src/meson.build | 4 +-- test/meson.build | 2 +- 6 files changed, 57 insertions(+), 51 deletions(-) diff --git a/desktop/meson.build b/desktop/meson.build index f0c8a660..712db358 100644 --- a/desktop/meson.build +++ b/desktop/meson.build @@ -77,7 +77,7 @@ endif # Contractor file (Elementary OS) # -if install_contractor_file +if get_option('contractor').enabled() # Call msgfmt manually since gettext won't otherwise translate the # Description field. See merge req !50. msgfmt = find_program('msgfmt') diff --git a/meson.build b/meson.build index 240eacaa..82f0439d 100644 --- a/meson.build +++ b/meson.build @@ -4,13 +4,6 @@ project('geary', [ 'vala', 'c' ], meson_version: '>= 0.50', ) -# Build-time configuration options -enable_valadoc = get_option('valadoc') -install_contractor_file = get_option('contractor') -iso_3166_xml = get_option('iso_3166_xml') -iso_639_xml = get_option('iso_639_xml') -reference_tracking = get_option('ref_tracking') - # Build type if get_option('profile') == 'development' profile = '.Devel' @@ -92,13 +85,13 @@ libpeas_gtk = dependency('libpeas-gtk-1.0', version: '>= 1.24.0') libsecret = dependency('libsecret-1', version: '>= 0.11') libsoup = dependency('libsoup-2.4', version: '>= 2.48') libunwind_dep = dependency( - 'libunwind', version: '>= 1.1', required: not get_option('libunwind_optional') + 'libunwind', version: '>= 1.1', required: get_option('libunwind') ) libunwind_generic_dep = dependency( - 'libunwind-generic', version: '>= 1.1', required: not get_option('libunwind_optional') + 'libunwind-generic', version: '>= 1.1', required: get_option('libunwind') ) libxml = dependency('libxml-2.0', version: '>= 2.7.8') -libytnef = dependency('libytnef', version: '>= 1.9.3', required: get_option('tnef-support')) +libytnef = dependency('libytnef', version: '>= 1.9.3', required: get_option('tnef')) posix = valac.find_library('posix') webkit2gtk_web_extension = dependency('webkit2gtk-web-extension-4.0', version: '>=' + target_webkit) @@ -153,27 +146,31 @@ endif # Build glue # +valadoc = find_program('valadoc', required: get_option('valadoc')) + vala_unit_proj = subproject( 'vala-unit', default_options: [ 'install=false', - 'valadoc=@0@'.format(enable_valadoc) + 'valadoc=@0@'.format(valadoc.found()) ] ) vala_unit_dep = vala_unit_proj.get_variable('vala_unit_dep') -if enable_valadoc - valadoc = find_program('valadoc') -endif - # Language detection + iso_codes_dir = iso_codes.get_pkgconfig_variable('prefix')/'share'/'xml'/'iso-codes' + +iso_639_xml = get_option('iso_639_xml') if iso_639_xml == '' iso_639_xml = iso_codes_dir / 'iso_639.xml' endif + +iso_3166_xml = get_option('iso_3166_xml') if iso_3166_xml == '' iso_3166_xml = iso_codes_dir / 'iso_3166.xml' endif + files(iso_639_xml, iso_3166_xml) # Check to make sure these exist # Post-install scripts diff --git a/meson_options.txt b/meson_options.txt index a18438d4..968c2541 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,11 +1,18 @@ # # General build options # + option( - 'contractor', - type: 'boolean', - value: false, - description: 'Whether to install the contractor file (Elementary OS-specific).' + 'profile', + type: 'combo', + value: 'default', + choices: ['default','development','beta'], + description: 'Specifies the application type to be built' +) +option( + 'revno', + type: 'string', + description: 'Custom revision string (default extracted from "git describe")' ) option( 'iso_639_xml', @@ -19,41 +26,43 @@ option( value: '', description: 'Full path to the ISO 3166 XML file.' ) -option( - 'libunwind_optional', - type: 'boolean', - value: false, - description: 'Determines if libunwind is required.' -) -option( - 'tnef-support', - type: 'boolean', - value: true, - description: 'Whether to support TNEF attachments (requires libytnef).' -) option( 'valadoc', - type: 'boolean', - value: false, - description: 'Whether to build the documentation (requires valadoc).' + type: 'feature', + value: 'auto', + description: 'Build API documentation' ) +# # Development options +# + option( - 'profile', - type: 'combo', - value: 'default', - choices: ['default','development','beta'], - description: 'Specifies the application type to be built' + 'ref_tracking', + type: 'feature', + value: 'disabled', + description: 'Enable Geary.BaseObject reference tracking' +) + +# +# Optional features +# + +option( + 'contractor', + type: 'feature', + value: 'disabled', + description: 'Install an Elementary OS a contractor file' ) option( - 'ref_tracking', - type: 'boolean', - value: false, - description: 'Whether to use explicit reference tracking.' + 'libunwind', + type: 'feature', + value: 'enabled', + description: 'Use libunwind for back traces in problem reports.' ) option( - 'revno', - type: 'string', - description: 'Custom revision string (default extracted from "git describe")' + 'tnef', + type: 'feature', + value: 'enabled', + description: 'Support Microsoft-proprietary TNEF attachments.' ) diff --git a/src/engine/meson.build b/src/engine/meson.build index 0efd773e..1133f7b8 100644 --- a/src/engine/meson.build +++ b/src/engine/meson.build @@ -349,7 +349,7 @@ if libunwind_dep.found() ] endif -if get_option('tnef-support') +if libytnef.found() engine_dependencies += libytnef engine_vala_args += [ '-D', 'WITH_TNEF_SUPPORT' diff --git a/src/meson.build b/src/meson.build index 225777e8..14f08c18 100644 --- a/src/meson.build +++ b/src/meson.build @@ -33,7 +33,7 @@ endif # Symbols for valac's preprocessor must be defined as compiler args, # not in the code or in config.h -if reference_tracking +if get_option('ref_tracking').enabled() geary_vala_args += [ '--define=REF_TRACKING' ] endif @@ -157,7 +157,7 @@ foreach dir : valadoc_vapi_dirs valadoc_vapidir_args += '--vapidir=@0@'.format(dir) endforeach -if enable_valadoc +if valadoc.found() docs = custom_target('valadoc', build_by_default: true, depends: [client_lib, engine_lib], diff --git a/test/meson.build b/test/meson.build index fe3040dd..a32b2a82 100644 --- a/test/meson.build +++ b/test/meson.build @@ -118,7 +118,7 @@ test_engine_dependencies += engine_dependencies test_engine_vala_args = geary_vala_args -if get_option('tnef-support') +if libytnef.found() test_engine_dependencies += libytnef test_engine_vala_args += [ '-D', 'WITH_TNEF_SUPPORT' -- 2.29.2