Codebase list libcloudproviders / 57deca8
build: Various cleanup - Correctly use absolute paths when needed - Add more/better cflags - Reduce duplication - Follow Meson standard formatting - TODO: The run_command() mess should be fixed in docs Patrick Griffis 6 years ago
3 changed file(s) with 92 addition(s) and 54 deletion(s). Raw diff Collapse all Expand all
00 project ('libcloudproviders', 'c',
1 version: '0.1.1',
2 meson_version: '>=0.40.0',
3 license: 'LGPL3+')
1 version: '0.1.1',
2 meson_version: '>=0.40.0',
3 license: 'LGPL3+',
4 default_options: [
5 'c_std=gnu99',
6 'warning_level=2',
7 ]
8 )
49
5 add_global_arguments ('-Wno-deprecated-declarations', language:'c')
10 cc = meson.get_compiler('c')
611
7 glib_ver = '>=2.51.2'
12 test_cflags = [
13 '-Wno-unused-parameter',
14 '-Wno-missing-field-initializers',
15 '-Wstrict-prototypes',
16 '-Wmissing-prototypes',
17 '-Werror=implicit-function-declaration',
18 '-Werror=pointer-arith',
19 '-Werror=init-self',
20 ['-Werror=format-security','-Werror=format=1'],
21 '-Werror=date-time',
22 ]
23 global_cflags = []
24 foreach cflag : test_cflags
25 if cc.has_multi_arguments(cflag)
26 global_cflags += cflag
27 endif
28 endforeach
29 add_project_arguments(global_cflags, language: 'c')
30
31 glib_ver = '>= 2.51.2'
832 glib = dependency ('glib-2.0', version: glib_ver)
933 gio = dependency ('gio-2.0', version: glib_ver)
1034 gio_unix = dependency ('gio-unix-2.0', version: glib_ver)
1135
36 add_project_arguments(
37 '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_52',
38 '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_52',
39 language: 'c'
40 )
41
1242 prefix = get_option ('prefix')
1343 libdir = get_option ('libdir')
44 libexecdir = get_option ('libexecdir')
1445 bindir = get_option ('bindir')
1546 datadir = get_option ('datadir')
1647 servicedir = join_paths (datadir, 'dbus-1', 'services')
1748
1849 gnome = import('gnome')
1950
20 conf = configuration_data ()
21 conf.set_quoted ('VERSION', meson.project_version ())
22 conf.set_quoted ('PACKAGE_VERSION', meson.project_version ())
23 conf.set_quoted ('GETTEXT_PACKAGE', 'cloudproviders')
24
2551 subdir ('src')
2652 subdir ('test')
2753 if get_option ('enable-gtk-doc')
1919 libcloudproviders_deps = [glib, gio, gio_unix]
2020
2121 generated_sources = []
22 generated_sources += gnome.gdbus_codegen ('cloudprovider-generated',
23 join_paths (meson.source_root (), 'data', 'cloudprovider-dbus.xml'),
24 interface_prefix: 'org.freedesktop.CloudProvider',
25 namespace: 'CloudProvider',
26 object_manager: true)
27 generated_sources += gnome.gdbus_codegen ('cloudprovidermanager-generated',
28 join_paths (meson.source_root (), 'data', 'cloudprovidermanager-dbus.xml'),
29 interface_prefix: 'org.freedesktop.CloudProvider',
30 namespace: 'CloudProvider')
22 generated_sources += gnome.gdbus_codegen(
23 'cloudprovider-generated', '../data/cloudprovider-dbus.xml',
24 interface_prefix: 'org.freedesktop.CloudProvider',
25 namespace: 'CloudProvider',
26 object_manager: true
27 )
28
29 generated_sources += gnome.gdbus_codegen(
30 'cloudprovidermanager-generated', '../data/cloudprovidermanager-dbus.xml',
31 interface_prefix: 'org.freedesktop.CloudProvider',
32 namespace: 'CloudProvider'
33 )
3134
3235 libcloudproviders_sources += generated_sources
3336
3437 libcloudproviders = shared_library ('cloudproviders',
35 libcloudproviders_sources,
36 dependencies: libcloudproviders_deps,
37 version: meson.project_version (),
38 install: true)
38 libcloudproviders_sources,
39 dependencies: libcloudproviders_deps,
40 version: meson.project_version(),
41 install: true
42 )
3943
4044 install_headers (libcloudproviders_headers, subdir: 'cloudproviders')
4145
4246 pkg = import('pkgconfig')
43 pkg.generate(libraries : libcloudproviders,
44 subdirs : 'cloudproviders',
45 version : meson.project_version(),
46 name : 'libcloudproviders',
47 filebase: 'cloudproviders',
48 description : 'Cloud providers DBus API library.')
47 pkg.generate(
48 libraries : libcloudproviders,
49 subdirs : 'cloudproviders',
50 version : meson.project_version(),
51 name : 'libcloudproviders',
52 filebase: 'cloudproviders',
53 description : 'Cloud providers DBus API library.'
54 )
4955
50 libdir = join_paths(get_option('prefix'),get_option('libdir'))
51 libdir = get_option('libdir')
52 libexecdir = get_option ('libexecdir')
53 unitdir = 'lib/systemd/user'
56 unitdir = join_paths(libdir, 'systemd/user')
5457 service_conf = configuration_data()
55 service_conf.set('libexecdir', libexecdir)
56 configure_file(input: 'libcloudproviders.service.in',
57 output: 'libcloudproviders.service',
58 configuration: service_conf,
59 install_dir: unitdir)
58 service_conf.set('libexecdir', join_paths(prefix, libexecdir))
59 configure_file(
60 input: 'libcloudproviders.service.in',
61 output: 'libcloudproviders.service',
62 configuration: service_conf,
63 install_dir: unitdir
64 )
6065
6166
62 cloudprovidersd_deps = declare_dependency (link_with: libcloudproviders,
63 dependencies: libcloudproviders_deps)
67 libcloudproviders_dep = declare_dependency (
68 link_with: libcloudproviders,
69 dependencies: libcloudproviders_deps,
70 include_directories: include_directories('.')
71 )
6472
65 executable('cloudprovidersd', cloudprovidersd_sources,
66 dependencies: cloudprovidersd_deps,
67 install: true,
68 install_dir: libexecdir)
73 executable('cloudprovidersd',
74 cloudprovidersd_sources,
75 dependencies: libcloudproviders_dep,
76 install: true,
77 install_dir: libexecdir
78 )
0 cloudprovidertest_deps = [glib, gio, gio_unix]
1 dep = declare_dependency (link_with: libcloudproviders,
2 include_directories: include_directories('../src/'),
3 dependencies: cloudprovidertest_deps)
40
5 executable('testcloudproviderserver', 'testcloudproviderserver.c', dependencies: dep, install: false)
6 executable('testcloudproviderclient', 'testcloudproviderclient.c', dependencies: dep, install: false)
1 executable('testcloudproviderserver', 'testcloudproviderserver.c',
2 dependencies: libcloudproviders_dep,
3 )
4 executable('testcloudproviderclient', 'testcloudproviderclient.c',
5 dependencies: libcloudproviders_dep,
6 )
77
88 service_conf = configuration_data ()
99 service_conf.set ('bindir', join_paths (prefix, bindir))
10 configure_file(input: 'org.freedesktop.CloudProviderServerExample.service.in',
11 output: 'org.freedesktop.CloudProviderServerExample.service',
12 configuration: service_conf,
13 install_dir: servicedir)
10 configure_file(
11 input: 'org.freedesktop.CloudProviderServerExample.service.in',
12 output: 'org.freedesktop.CloudProviderServerExample.service',
13 configuration: service_conf,
14 install_dir: servicedir
15 )
1416
1517 cloudprovidersdata = join_paths (datadir, 'cloud-providers')
1618 install_data('org.freedesktop.CloudProviderServerExample.ini', install_dir : cloudprovidersdata)