Blame lib/meson.build

Packit 8fb625
lib_inc = include_directories('.')
Packit 8fb625
Packit 8fb625
enum_headers = files('bluetooth-enums.h')
Packit 8fb625
Packit 8fb625
headers = enum_headers + files(
Packit 8fb625
  'bluetooth-client.h',
Packit 8fb625
  'bluetooth-chooser.h',
Packit 8fb625
  'bluetooth-chooser-button.h',
Packit 8fb625
  'bluetooth-chooser-combo.h',
Packit 8fb625
  'bluetooth-filter-widget.h',
Packit 8fb625
  'bluetooth-settings-widget.h',
Packit 8fb625
  'bluetooth-utils.h'
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
install_headers(
Packit 8fb625
  headers,
Packit 8fb625
  subdir: meson.project_name()
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
sources = files(
Packit 8fb625
  'bluetooth-agent.c',
Packit 8fb625
  'bluetooth-chooser.c',
Packit 8fb625
  'bluetooth-chooser-button.c',
Packit 8fb625
  'bluetooth-chooser-combo.c',
Packit 8fb625
  'bluetooth-client.c',
Packit 8fb625
  'bluetooth-filter-widget.c',
Packit 8fb625
  'bluetooth-pairing-dialog.c',
Packit 8fb625
  'bluetooth-settings-obexpush.c',
Packit 8fb625
  'bluetooth-settings-row.c',
Packit 8fb625
  'bluetooth-settings-widget.c',
Packit 8fb625
  'bluetooth-utils.c',
Packit 8fb625
  'pin.c'
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
built_sources = []
Packit 8fb625
Packit 8fb625
resource_data = files(
Packit 8fb625
  'bluetooth-pairing-dialog.ui',
Packit 8fb625
  'bluetooth-settings.css',
Packit 8fb625
  'bluetooth-settings-row.ui',
Packit 8fb625
  'settings.ui'
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
built_sources += gnome.compile_resources(
Packit 8fb625
  'bluetooth-settings-resources',
Packit 8fb625
  'bluetooth.gresource.xml',
Packit 8fb625
  source_dir: '.',
Packit 8fb625
  c_name: 'bluetooth_settings',
Packit 8fb625
  dependencies: resource_data,
Packit 8fb625
  export: true
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
enum_types = 'gnome-bluetooth-enum-types'
Packit 8fb625
Packit 8fb625
built_sources += gnome.mkenums(
Packit 8fb625
  enum_types,
Packit 8fb625
  sources: headers,
Packit 8fb625
  c_template: enum_types + '.c.template',
Packit 8fb625
  h_template: enum_types + '.h.template'
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
client = 'bluetooth-client'
Packit 8fb625
Packit 8fb625
built_sources += gnome.gdbus_codegen(
Packit 8fb625
  client + '-glue',
Packit 8fb625
  client + '.xml',
Packit 8fb625
  interface_prefix: 'org.bluez'
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
deps = [
Packit 8fb625
  gtk_dep,
Packit 8fb625
  m_dep,
Packit 8fb625
  libgbt_dep
Packit 8fb625
]
Packit 8fb625
Packit 8fb625
cflags = [
Packit 8fb625
  '-DPKGDATADIR="@0@"'.format(gnomebt_pkgdatadir),
Packit 8fb625
  '-DG_LOG_DOMAIN="Bluetooth"'
Packit 8fb625
]
Packit 8fb625
Packit 8fb625
symbol_map = join_paths(meson.current_source_dir(), meson.project_name() + '.map')
Packit 8fb625
Packit 8fb625
test_ldflag = '-Wl,--version-script,' + symbol_map
Packit 8fb625
ldflags = []
Packit 8fb625
Packit 8fb625
if cc.has_argument(test_ldflag)
Packit 8fb625
  ldflags += test_ldflag
Packit 8fb625
endif
Packit 8fb625
Packit 8fb625
libgnome_bluetooth = shared_library(
Packit 8fb625
  meson.project_name(),
Packit 8fb625
  sources: sources + built_sources,
Packit 8fb625
  version: libversion,
Packit 8fb625
  include_directories: top_inc,
Packit 8fb625
  dependencies: deps,
Packit 8fb625
  c_args: cflags,
Packit 8fb625
  link_args: ldflags,
Packit 8fb625
  link_depends: symbol_map,
Packit 8fb625
  install: true,
Packit 8fb625
  install_dir: gnomebt_libdir
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
libgnome_bluetooth_dep = declare_dependency(
Packit 8fb625
  link_with: libgnome_bluetooth,
Packit 8fb625
  include_directories: lib_inc,
Packit 8fb625
  dependencies: deps
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
pkg.generate(
Packit 8fb625
  libraries: libgnome_bluetooth,
Packit 8fb625
  version: gnomebt_version,
Packit 8fb625
  name: gnomebt_api_name,
Packit 8fb625
  description: 'Widgets for Bluetooth device selection',
Packit 8fb625
  filebase: gnomebt_api_name,
Packit 8fb625
  subdirs: meson.project_name(),
Packit 8fb625
  requires: [
Packit 8fb625
    'gio-2.0',
Packit 8fb625
    'gtk+-3.0'
Packit 8fb625
  ],
Packit 8fb625
  requires_private: 'libudev',
Packit 8fb625
  variables: 'exec_prefix=' + gnomebt_libexecdir,
Packit 8fb625
  install_dir: join_paths(get_option('libdir'), 'pkgconfig')
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
if enable_gir
Packit 8fb625
  gir_sources = sources + headers
Packit 8fb625
Packit 8fb625
  gir_incs = [
Packit 8fb625
    'GModule-2.0',
Packit 8fb625
    'GObject-2.0',
Packit 8fb625
    'Gtk-3.0'
Packit 8fb625
  ]
Packit 8fb625
Packit 8fb625
  gir_extra_args = '--warn-all'
Packit 8fb625
Packit 8fb625
  gir_dir = join_paths(gnomebt_datadir, 'gir-' + gnomebt_gir_version)
Packit 8fb625
  typelib_dir = join_paths(gnomebt_libdir, 'girepository-' + gnomebt_gir_version)
Packit 8fb625
Packit 8fb625
  gnome.generate_gir(
Packit 8fb625
    libgnome_bluetooth,
Packit 8fb625
    sources: gir_sources,
Packit 8fb625
    nsversion: gnomebt_api_version,
Packit 8fb625
    namespace: gnomebt_gir_ns,
Packit 8fb625
    symbol_prefix: 'bluetooth',
Packit 8fb625
    identifier_prefix: 'Bluetooth',
Packit 8fb625
    export_packages: gnomebt_api_name,
Packit 8fb625
    includes: gir_incs,
Packit 8fb625
    extra_args: gir_extra_args,
Packit 8fb625
    install: true,
Packit 8fb625
    install_dir_gir: gir_dir,
Packit 8fb625
    install_dir_typelib: typelib_dir,
Packit 8fb625
  )
Packit 8fb625
endif
Packit 8fb625
Packit 8fb625
test_names = [
Packit 8fb625
  'test-agent',
Packit 8fb625
  'test-class',
Packit 8fb625
  'test-client',
Packit 8fb625
  'test-deviceselection',
Packit 8fb625
  'test-pairing-dialog',
Packit 8fb625
  'test-pin',
Packit 8fb625
  'test-settings'
Packit 8fb625
]
Packit 8fb625
Packit 8fb625
foreach name: test_names
Packit 8fb625
  executable(
Packit 8fb625
    name,
Packit 8fb625
    [name + '.c'] + built_sources,
Packit 8fb625
    include_directories: top_inc,
Packit 8fb625
    dependencies: deps,
Packit 8fb625
    c_args: cflags,
Packit 8fb625
    link_with: libgnome_bluetooth
Packit 8fb625
  )
Packit 8fb625
endforeach
Packit 8fb625
Packit 8fb625
database = 'pin-code-database.xml'
Packit 8fb625
Packit 8fb625
install_data(
Packit 8fb625
  database,
Packit 8fb625
  install_dir: gnomebt_pkgdatadir
Packit 8fb625
)
Packit 8fb625
Packit 8fb625
custom_target(
Packit 8fb625
  database,
Packit 8fb625
  input: database,
Packit 8fb625
  output: database + '.valid',
Packit 8fb625
  command: [find_program('xmllint'), '--output', '@OUTPUT@', '--valid', '@INPUT']
Packit 8fb625
)