diff options
author | Iñigo Martínez <inigomartinez@gmail.com> | 2017-09-25 12:27:58 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-10-12 12:15:47 +0200 |
commit | 1c1168d4c7a9ed600ea880ed953b9d05b8f04582 (patch) | |
tree | fd4a0a391da169452e214161231498369c834a7a /src/libnm-gtk/meson.build | |
parent | d1b7b6a82a17a2f40dcadfafb1c2ea746d869aae (diff) | |
download | network-manager-applet-1c1168d4c7a9ed600ea880ed953b9d05b8f04582.tar.gz |
build: Port to meson build system
meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=788146
Diffstat (limited to 'src/libnm-gtk/meson.build')
-rw-r--r-- | src/libnm-gtk/meson.build | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/src/libnm-gtk/meson.build b/src/libnm-gtk/meson.build new file mode 100644 index 00000000..9aaf2194 --- /dev/null +++ b/src/libnm-gtk/meson.build @@ -0,0 +1,151 @@ +lib_name = 'libnm-gtk' + +gir_headers = files( + 'nm-cert-chooser.h', + 'nm-mobile-providers.h', + 'nm-mobile-wizard.h', + 'nm-ui-utils.h', + 'nm-vpn-password-dialog.h', + 'nm-wifi-dialog.h' +) + +headers = gir_headers + files('nm-wireless-dialog.h') + +install_headers( + headers, + subdir: lib_name +) + +gir_sources = cert_chooser_sources + files( + 'init.c', + 'nm-mobile-providers.c', + 'nm-mobile-wizard.c', + 'nm-ui-utils.c', + 'nm-vpn-password-dialog.c', + 'nm-wifi-dialog.c' +) + +sources = [version_header] + gir_sources + files('nm-wireless-dialog.c') + +resource_data = files('wifi.ui') + +sources += gnome.compile_resources( + 'nm-resources', + 'nm.gresource.xml', + dependencies: resource_data +) + +incs = [ + top_inc, + shared_inc, + src_inc, + libnma_inc +] + +deps = [ + gtk_dep, + gudev_dep, + libnm_glib_dep, + libutils_libnm_glib_dep, + libwireless_security_libnm_glib_dep +] + +cflags = [ + '-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY', + '-DBINDIR="@0@"'.format(nma_bindir), + '-DDATADIR="@0@"'.format(nma_datadir), + '-DLIBEXECDIR="@0@"'.format(nma_libexecdir), + '-DNMALOCALEDIR="@0@"'.format(nma_localedir), + '-DSYSCONFDIR="@0@"'.format(nma_sysconfdir), + '-DAUTOSTARTDIR="@0@"'.format(nma_autostartdir), + '-DICONDIR="@0@"'.format(nma_icondir) +] + +symbol_map = join_paths(meson.current_source_dir(), 'libnm-gtk.ver') + +ldflags = [] +if have_version_script + ldflags += '-Wl,--version-script,' + symbol_map +endif + +libnm_gtk = shared_library( + 'nm-gtk', + sources: sources, + version: libversion, + include_directories: incs, + dependencies: deps, + c_args: cflags, + link_args: ldflags, + link_depends: symbol_map, + install: true, + install_dir: nma_libdir +) + +pkg.generate( + libraries: libnm_gtk, + version: nma_version, + name: lib_name, + description: 'NetworkManager UI utilities (libnm-glib version)', + filebase: lib_name, + subdirs: lib_name, + requires: [ + 'NetworkManager ' + nm_req_version, + 'libnm-util ' + nm_req_version, + 'linm-glib ' + nm_req_version, + 'gtk+-3.0 ' + gtk_req_version + ], + variables: 'exec_prefix=' + nma_prefix, + install_dir: join_paths(nma_libdir, 'pkgconfig') +) + +if enable_introspection + gir_incs = [ + 'Gtk-3.0', + 'NetworkManager-1.0', + 'NMClient-1.0' + ] + + gir_dir = join_paths(nma_datadir, 'gir-' + nma_gir_version) + typelib_dir = join_paths(nma_libdir, 'girepository-' + nma_gir_version) + + # FIXME: the generated gir file is slightly different + gnome.generate_gir( + libnm_gtk, + sources: gir_sources + gir_headers, + nsversion: nma_gir_version, + namespace: nma_gtk_gir_ns, + includes: gir_incs, + identifier_prefix: nma_gir_prefix, + symbol_prefix: nma_gir_prefix.to_lower(), + export_packages: lib_name, + install: true, + install_dir_gir: gir_dir, + install_dir_typelib: typelib_dir + ) +endif + +test_unit = 'test-mobile-providers' + +deps = [ + gtk_dep, + libnm_glib_dep +] + +cflags = '-DTEST_DATA_DIR="@0@"'.format(join_paths(meson.current_source_dir(), 'tests')) + +exe = executable( + test_unit, + 'tests/' + test_unit + '.c', + include_directories: incs, + dependencies: deps, + c_args: cflags, + link_with: libnm_gtk +) + +test(test_unit, exe) + +run_target( + 'check-local-exports-libnm-gtk', + command: [find_program('check-exports.sh'), libnm_gtk.full_path(), symbol_map], + depends: libnm_gtk +) |