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.
This commit is contained in:
Michael Gratton 2020-10-03 21:06:43 +10:00 committed by Michael James Gratton
parent d3badedad7
commit aaa2934acf
6 changed files with 58 additions and 52 deletions

View file

@ -77,7 +77,7 @@ endif
# Contractor file (Elementary OS) # Contractor file (Elementary OS)
# #
if install_contractor_file if get_option('contractor').enabled()
# Call msgfmt manually since gettext won't otherwise translate the # Call msgfmt manually since gettext won't otherwise translate the
# Description field. See merge req !50. # Description field. See merge req !50.
msgfmt = find_program('msgfmt') msgfmt = find_program('msgfmt')

View file

@ -4,13 +4,6 @@ project('geary', [ 'vala', 'c' ],
meson_version: '>= 0.50', 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 # Build type
if get_option('profile') == 'development' if get_option('profile') == 'development'
profile = '.Devel' profile = '.Devel'
@ -92,13 +85,13 @@ libpeas_gtk = dependency('libpeas-gtk-1.0', version: '>= 1.24.0')
libsecret = dependency('libsecret-1', version: '>= 0.11') libsecret = dependency('libsecret-1', version: '>= 0.11')
libsoup = dependency('libsoup-2.4', version: '>= 2.48') libsoup = dependency('libsoup-2.4', version: '>= 2.48')
libunwind_dep = dependency( 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_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') 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') posix = valac.find_library('posix')
webkit2gtk_web_extension = dependency('webkit2gtk-web-extension-4.0', version: '>=' + target_webkit) webkit2gtk_web_extension = dependency('webkit2gtk-web-extension-4.0', version: '>=' + target_webkit)
@ -153,27 +146,31 @@ endif
# Build glue # Build glue
# #
valadoc = find_program('valadoc', required: get_option('valadoc'))
vala_unit_proj = subproject( vala_unit_proj = subproject(
'vala-unit', 'vala-unit',
default_options: [ default_options: [
'install=false', 'install=false',
'valadoc=@0@'.format(enable_valadoc) 'valadoc=@0@'.format(valadoc.found())
] ]
) )
vala_unit_dep = vala_unit_proj.get_variable('vala_unit_dep') vala_unit_dep = vala_unit_proj.get_variable('vala_unit_dep')
if enable_valadoc
valadoc = find_program('valadoc')
endif
# Language detection # Language detection
iso_codes_dir = iso_codes.get_pkgconfig_variable('prefix')/'share'/'xml'/'iso-codes' 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 == '' if iso_639_xml == ''
iso_639_xml = iso_codes_dir / 'iso_639.xml' iso_639_xml = iso_codes_dir / 'iso_639.xml'
endif endif
iso_3166_xml = get_option('iso_3166_xml')
if iso_3166_xml == '' if iso_3166_xml == ''
iso_3166_xml = iso_codes_dir / 'iso_3166.xml' iso_3166_xml = iso_codes_dir / 'iso_3166.xml'
endif endif
files(iso_639_xml, iso_3166_xml) # Check to make sure these exist files(iso_639_xml, iso_3166_xml) # Check to make sure these exist
# Post-install scripts # Post-install scripts

View file

@ -1,11 +1,18 @@
# #
# General build options # General build options
# #
option( option(
'contractor', 'profile',
type: 'boolean', type: 'combo',
value: false, value: 'default',
description: 'Whether to install the contractor file (Elementary OS-specific).' 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( option(
'iso_639_xml', 'iso_639_xml',
@ -19,41 +26,43 @@ option(
value: '', value: '',
description: 'Full path to the ISO 3166 XML file.' 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( option(
'valadoc', 'valadoc',
type: 'boolean', type: 'feature',
value: false, value: 'auto',
description: 'Whether to build the documentation (requires valadoc).' description: 'Build API documentation'
) )
#
# Development options # Development options
option( #
'profile',
type: 'combo',
value: 'default',
choices: ['default','development','beta'],
description: 'Specifies the application type to be built'
)
option( option(
'ref_tracking', 'ref_tracking',
type: 'boolean', type: 'feature',
value: false, value: 'disabled',
description: 'Whether to use explicit reference tracking.' description: 'Enable Geary.BaseObject reference tracking'
)
#
# Optional features
#
option(
'contractor',
type: 'feature',
value: 'disabled',
description: 'Install an Elementary OS a contractor file'
) )
option( option(
'revno', 'libunwind',
type: 'string', type: 'feature',
description: 'Custom revision string (default extracted from "git describe")' value: 'enabled',
description: 'Use libunwind for back traces in problem reports.'
)
option(
'tnef',
type: 'feature',
value: 'enabled',
description: 'Support Microsoft-proprietary TNEF attachments.'
) )

View file

@ -349,7 +349,7 @@ if libunwind_dep.found()
] ]
endif endif
if get_option('tnef-support') if libytnef.found()
engine_dependencies += libytnef engine_dependencies += libytnef
engine_vala_args += [ engine_vala_args += [
'-D', 'WITH_TNEF_SUPPORT' '-D', 'WITH_TNEF_SUPPORT'

View file

@ -33,7 +33,7 @@ endif
# Symbols for valac's preprocessor must be defined as compiler args, # Symbols for valac's preprocessor must be defined as compiler args,
# not in the code or in config.h # not in the code or in config.h
if reference_tracking if get_option('ref_tracking').enabled()
geary_vala_args += [ '--define=REF_TRACKING' ] geary_vala_args += [ '--define=REF_TRACKING' ]
endif endif
@ -157,7 +157,7 @@ foreach dir : valadoc_vapi_dirs
valadoc_vapidir_args += '--vapidir=@0@'.format(dir) valadoc_vapidir_args += '--vapidir=@0@'.format(dir)
endforeach endforeach
if enable_valadoc if valadoc.found()
docs = custom_target('valadoc', docs = custom_target('valadoc',
build_by_default: true, build_by_default: true,
depends: [client_lib, engine_lib], depends: [client_lib, engine_lib],

View file

@ -118,7 +118,7 @@ test_engine_dependencies += engine_dependencies
test_engine_vala_args = geary_vala_args test_engine_vala_args = geary_vala_args
if get_option('tnef-support') if libytnef.found()
test_engine_dependencies += libytnef test_engine_dependencies += libytnef
test_engine_vala_args += [ test_engine_vala_args += [
'-D', 'WITH_TNEF_SUPPORT' '-D', 'WITH_TNEF_SUPPORT'