Commit graph

11 commits

Author SHA1 Message Date
Ralf Habacker
216627825d cmake: Optionally create relocatable dbus-1.pc file
Relocatable pkgconfig files are necessary when using packages installed to
a location that does not match the location for which they were compiled.

However, using ${pcfiledir} is problematic for system installations
in standard locations, because it interferes with pkg-config's
ability to filter out -I, -L options that are redundant with compiler
defaults (which is important if you are trying to use a newer version
of a library than the system copy).

In practice operating system vendors installing dbus to standard
locations use Autotools, so we enable relocatable builds by default
when building with CMake.

For simplicity, we're also not relocatable if the library directory
is something more complicated than lib or lib64 (e.g. under Debian
multiarch); we don't want to have to compute how many ../ to add.
This is non-trivial to determine in an Autotools build, so for now
there is no support for relocation when built with Autotools,
even as an opt-in feature.

Going via the ${original_prefix} variable is because under Autotools,
both ${prefix} and ${exec_prefix} technically default to NONE, with
NONE replaced with their real defaults of /usr/local and '${prefix}'
(respectively) later on. If we tried to expand ${prefix} at the time
that we choose the value of ${pkgconfig_prefix}, that would cause
a broken value "prefix=NONE" to be hard-coded.

[smcv: no relocation on Autotools, make it optional in CMake,
expand commit message]

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=99721
Reviewed-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
Signed-off-by: Simon McVittie <smcv@collabora.com>
2017-03-20 14:14:42 +00:00
Руслан Ижбулатов
95fe17a96d Let pkg-config expand directory variables recursively
In particular this makes them more MinGW-friendly: pkg-config on Windows
has specific code to rewrite the ${prefix} when installed in a
different prefix.

[add @datarootdir@, expand commit message -smcv]

Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=75858
2014-10-13 13:41:36 +01:00
Simon McVittie
efddba53da When not producing a dynamic library, define DBUS_STATIC_BUILD
When targeting Windows, linking against the static library requires
special effort to turn off DLL import/export processing. We normally
link some things against the dynamic library, but if we're not building
that, we'll have to link everything statically.

Based on patches from 'william' on fd.o #46367.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33973
Tested-by: René Berber <Rene.Berber gmail com>
2012-06-15 14:25:48 +01:00
Simon McVittie
42d7a573cf Rename DBUS_CLIENT_LIBS to LIBDBUS_LIBS to more accurately reflect its meaning
This does still need to be in configure.ac, because it's common to
dbus/Makefile.am (linking the static/shared library) and dbus-1*.pc.in
(telling static library users which additional libraries they must link).
2011-07-29 11:09:02 +01:00
Simon McVittie
3f047a6dfd dbus-1.pc.in: move -lpthread, -lrt, Winsock to Libs.private
"Private libraries  are  libraries  which  are  not  exposed through your
library, but are needed in the case of static linking"  -- pkg-config(1)

Reviewed-by: Colin Walters <walters@verbum.org>
2011-04-26 19:16:01 +01:00
Lennart Poettering
bd074df3f0 pkg-config: add a couple of additional variables to .pc
We already export the session services dir in the .pc file, add the
system services dir too, as well as the interfaces dir, so that packages
can drop their files into the right place.

Eventually we need to move the system-services dir to a place that is
relocatable to /lib/dbus, and this change makes the location queriable
for other projects, as a first step towards that goal.
2010-06-23 03:14:27 +02:00
John (J5) Palmieri
90e35e17e5 * dbus-1.pc.in: add daemondir to pc file
patch from Brian Cameron
2007-05-10 15:33:57 +00:00
John (J5) Palmieri
82c9cd05cd * configure.in, dbus-1.pc.in: Check to see if thread methods
are in glibc or libpthread and add -lpthread to the link stage
  if it is the latter
2006-10-26 18:06:07 +00:00
John (J5) Palmieri
36e1d8bfc7 Patch from Milosz Derezynski <internalerror at gmail.com>
* configure.in:
  Output the service directory in the configure summary

* dbus-1.pc.in:
  Add session_bus_services_dir
2006-03-17 03:20:14 +00:00
John (J5) Palmieri
9ad0aafe37 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
- dbus/dbus-bus.c
(internal_bus_get): new method that take over the heavy lifting
of dbus_bus_get and adds the ability to get a private connection
to the bus
(dbus_bus_get): wrapper to internal_bus_get that provides the same
interface as in previous versions
(dbus_bus_get_private): new method that is a wrapper to
internal_bus_get to get a private connection to the bus

- dbus/dbus-bus.h
(dbus_bus_get_private): add as a public libdbus interface

- dbus-1.pc.in: output system_bus_default_address and
sysconfdir variables so apps can use them when compiling
2005-09-26 18:49:53 +00:00
Havoc Pennington
ae759bff51 2003-04-29 Havoc Pennington <hp@redhat.com>
* dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
	dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
	parallel install API version, not with the D-BUS package version.

	* HACKING: move some of README over here

	* README: updates, and document API/ABI policy

	* configure.in: reindentation
2003-04-29 21:56:37 +00:00
Renamed from dbus-1.0.pc.in (Browse further)