project(
'gnome-bluetooth', 'c',
version: '3.28.2',
license: 'GPL2+',
default_options: 'buildtype=debugoptimized',
meson_version: '>= 0.43.0'
)
gnomebt_version = meson.project_version()
version_array = gnomebt_version.split('.')
gnomebt_major_version = version_array[0].to_int()
gnomebt_minor_version = version_array[1].to_int()
gnomebt_micro_version = version_array[2].to_int()
gnomebt_api_version = '1.0'
gnomebt_api_name = '@0@-@1@'.format(meson.project_name(), gnomebt_api_version)
gnomebt_gir_ns = 'GnomeBluetooth'
gnomebt_gir_version = '1.0'
gnomebt_gettext_package = meson.project_name() + '2'
gnomebt_prefix = get_option('prefix')
gnomebt_bindir = join_paths(gnomebt_prefix, get_option('bindir'))
gnomebt_datadir = join_paths(gnomebt_prefix, get_option('datadir'))
gnomebt_includedir = join_paths(gnomebt_prefix, get_option('includedir'))
gnomebt_libdir = join_paths(gnomebt_prefix, get_option('libdir'))
gnomebt_libexecdir = join_paths(gnomebt_prefix, get_option('libexecdir'))
gnomebt_localedir = join_paths(gnomebt_prefix, get_option('localedir'))
gnomebt_mandir = join_paths(gnomebt_prefix, get_option('mandir'))
gnomebt_pkgdatadir = join_paths(gnomebt_datadir, meson.project_name())
gnomebt_pkglibdir = join_paths(gnomebt_libdir, meson.project_name())
# options
enable_gtk_doc = get_option('gtk_doc')
enable_gir = get_option('introspection')
# Before making a release, the GNOMEBT_LT_VERSION string should be modified.
# The string is of the form C:R:A.
# - If interfaces have been changed or added, but binary compatibility has
# been preserved, change to C+1:0:A+1
# - If binary compatibility has been broken (eg removed or changed interfaces)
# change to C+1:0:0
# - If the interface is the same as the previous version, change to C:R+1:A
current = 13
revision = 1
age = 0
libversion = '@0@.@1@.@2@'.format(current, age, revision)
cc = meson.get_compiler('c')
config_h = configuration_data()
#i18n
config_h.set_quoted('GETTEXT_PACKAGE', gnomebt_gettext_package)
config_h.set_quoted('LOCALEDIR', gnomebt_localedir)
# compiler flags
common_flags = [
'-DHAVE_CONFIG_H',
'-DBONOBO_DISABLE_DEPRECATED',
'-DBONOBO_DISABLE_SINGLE_INCLUDES',
'-DBONOBO_UI_DISABLE_DEPRECATED',
'-DBONOBO_UI_DISABLE_SINGLE_INCLUDES',
'-DGCONF_DISABLE_DEPRECATED',
'-DGCONF_DISABLE_SINGLE_INCLUDES',
'-DGNOME_DISABLE_DEPRECATED',
'-DGNOME_DISABLE_SINGLE_INCLUDES',
'-DGNOME_VFS_DISABLE_DEPRECATED',
'-DGNOME_VFS_DISABLE_SINGLE_INCLUDES',
'-DLIBGLADE_DISABLE_DEPRECATED',
'-DLIBGLADE_DISABLE_SINGLE_INCLUDES',
'-DLIBSOUP_DISABLE_DEPRECATED',
'-DLIBSOUP_DISABLE_SINGLE_INCLUDES',
'-DWNCK_DISABLE_DEPRECATED',
'-DWNCK_DISABLE_SINGLE_INCLUDES'
]
compiler_flags = []
if get_option('buildtype').contains('debug')
test_flags = [
'-Werror=format=2',
'-Werror=implicit-function-declaration',
'-Werror=init-self',
'-Werror=missing-prototypes',
'-Werror=missing-include-dirs',
'-Werror=pointer-arith',
'-Werror=return-type',
'-Wnested-externs',
'-Wstrict-prototypes'
]
compiler_flags += cc.get_supported_arguments(test_flags)
endif
add_project_arguments(common_flags + compiler_flags, language: 'c')
gtk_dep = dependency('gtk+-3.0', version: '>= 3.12.0')
m_dep = cc.find_library('m')
libgbt_dep = [ dependency('gio-unix-2.0'),
dependency('gmodule-2.0'),
dependency('libcanberra-gtk3'),
dependency('libnotify', version: '>= 0.7.0'),
dependency('libudev')
]
gnome = import('gnome')
i18n = import('i18n')
pkg = import('pkgconfig')
po_dir = join_paths(meson.source_root(), 'po')
top_inc = include_directories('.')
subdir('icons')
subdir('lib')
subdir('sendto')
if enable_gtk_doc
subdir('docs/reference/libgnome-bluetooth')
endif
subdir('po')
configure_file(
output: 'config.h',
configuration: config_h
)
meson.add_install_script(
'meson_post_install.py',
get_option('icon_update') ? 'icon_update' : '',
gnomebt_datadir
)
output = '\nConfigure summary:\n\n'
output += ' Compiler....................: ' + cc.get_id() + '\n\n'
output += ' Compiler Flags..............: ' + ' '.join(compiler_flags) + '\n'
output += ' Prefix......................: ' + gnomebt_prefix + '\n'
output += ' Documentation...............: ' + enable_gtk_doc.to_string() + '\n'
output += ' GObject-Introspection.......: ' + enable_gir.to_string()
message(output)