summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeeshan Ali <zeenix@collabora.co.uk>2018-07-10 13:17:52 +0200
committerZeeshan Ali <zeenix@collabora.co.uk>2018-07-10 13:17:52 +0200
commit00c4b8e4707a3a15a2e5589e1c72e8759923ce33 (patch)
tree095e9e1beaa429cac836dc882623dd4644bfa9ef
parent7d3fa8450958e7c536e84f150b690e454fc3f95c (diff)
downloadgeoclue-00c4b8e4707a3a15a2e5589e1c72e8759923ce33.tar.gz
build: Declare build-time deps on generated headers
This should fix the issue with parallel build on mega-multi-core machiens we are seeing.
-rw-r--r--demo/meson.build6
-rw-r--r--libgeoclue/meson.build6
-rw-r--r--public-api/meson.build15
-rw-r--r--src/agent/meson.build13
4 files changed, 23 insertions, 17 deletions
diff --git a/demo/meson.build b/demo/meson.build
index b66d697..d631f23 100644
--- a/demo/meson.build
+++ b/demo/meson.build
@@ -15,8 +15,7 @@ if get_option('libgeoclue')
'where-am-i.c',
include_directories: include_dirs,
c_args: c_args,
- link_with: [ libgeoclue ],
- dependencies: base_deps,
+ dependencies: [base_deps, libgeoclue_dep],
install: true,
install_dir: demo_dir)
desktop_in = configure_file(output: 'geoclue-where-am-i.desktop.in',
@@ -38,7 +37,8 @@ if get_option('demo-agent')
c_args = [ '-Werror' ]
sources = [ 'gclue-service-agent.h',
'gclue-service-agent.c',
- 'agent.c' ]
+ 'agent.c',
+ libgeoclue_agent_sources[1] ]
deps = base_deps + [ dependency('libnotify') ]
executable('agent',
sources,
diff --git a/libgeoclue/meson.build b/libgeoclue/meson.build
index b05890e..66f5049 100644
--- a/libgeoclue/meson.build
+++ b/libgeoclue/meson.build
@@ -53,6 +53,10 @@ libgeoclue = library('geoclue-2',
version: '0.0.0',
install: true)
+libgeoclue_dep = declare_dependency(
+ link_with: libgeoclue,
+ sources: libgeoclue_public_api_gen_sources[1])
+
gir = find_program('g-ir-scanner', required: false)
vapigen = find_program('vapigen', required: false)
cross_build = meson.is_cross_build()
@@ -60,7 +64,7 @@ enable_gir = get_option('introspection')
pkg_requirements = ['glib-2.0', 'gio-2.0', 'gio-unix-2.0']
gir_sources = [ libgeoclue_sources,
libgeoclue_headers,
- '../public-api/gclue-enums.h' ]
+ libgeoclue_public_api_gen_sources[1] ]
if gir.found() and not cross_build and enable_gir
geo_gir = gnome.generate_gir(libgeoclue,
diff --git a/public-api/meson.build b/public-api/meson.build
index b12a04e..3b78cf8 100644
--- a/public-api/meson.build
+++ b/public-api/meson.build
@@ -3,15 +3,16 @@ headers = [ 'gclue-enums.h' ]
header_dir = 'libgeoclue-' + gclue_api_version
install_headers(headers, subdir: header_dir)
-gen_sources = gnome.mkenums_simple('gclue-enum-types',
- sources: headers,
- header_prefix: '#include <gclue-enums.h>',
- decorator : 'GCLUE_ENUMS_H',
- install_header: true,
- install_dir: 'include/' + header_dir)
+libgeoclue_public_api_gen_sources = gnome.mkenums_simple(
+ 'gclue-enum-types',
+ sources: headers,
+ header_prefix: '#include <gclue-enums.h>',
+ decorator : 'GCLUE_ENUMS_H',
+ install_header: true,
+ install_dir: 'include/' + header_dir)
libgeoclue_public_api_inc = include_directories('.')
libgeoclue_public_api = static_library('geoclue-public-api',
- gen_sources,
+ libgeoclue_public_api_gen_sources,
dependencies: base_deps,
install: false)
diff --git a/src/agent/meson.build b/src/agent/meson.build
index 054eac7..781fefe 100644
--- a/src/agent/meson.build
+++ b/src/agent/meson.build
@@ -1,12 +1,13 @@
-sources = gnome.gdbus_codegen('geoclue-agent-interface',
- 'org.freedesktop.GeoClue2.Agent.xml',
- interface_prefix: 'org.freedesktop.GeoClue2.',
- namespace: 'GClue',
- docbook: 'docs')
+libgeoclue_agent_sources = gnome.gdbus_codegen(
+ 'geoclue-agent-interface',
+ 'org.freedesktop.GeoClue2.Agent.xml',
+ interface_prefix: 'org.freedesktop.GeoClue2.',
+ namespace: 'GClue',
+ docbook: 'docs')
libgeoclue_agent_inc = include_directories('.', '../..')
libgeoclue_agent = static_library('geoclue-agent',
- sources,
+ libgeoclue_agent_sources,
dependencies: base_deps,
include_directories: libgeoclue_agent_inc,
install: false)