aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-07-13 15:51:25 -0400
committerDavid Robillard <d@drobilla.net>2022-07-13 16:18:59 -0400
commit47adc7d3dec1e1d2454750612d48353944fcf836 (patch)
tree4ce5621fe794e4aeee61ed8de9180bc49f46e1d0
parent2465c3f2779617658cf85d3cbc0ca7b786a4ddca (diff)
downloadserd-47adc7d3dec1e1d2454750612d48353944fcf836.tar.gz
serd-47adc7d3dec1e1d2454750612d48353944fcf836.tar.bz2
serd-47adc7d3dec1e1d2454750612d48353944fcf836.zip
Simplify linking against static libraries
This adds -DSERD_STATIC to the Cflags in the pkg-config file if serd is built as a static library, to simplify linking against a static serd library with pkg-config. Note that this only works for default_library=static. For linking against libraries built with default_library=both, dependant projects must still specify SERD_STATIC for static builds. Resolving that requires meson adding support for writing Cflags.local, and the world migrating to pkgconf (or improving pkg-config) so it is supported.
-rw-r--r--meson.build10
1 files changed, 7 insertions, 3 deletions
diff --git a/meson.build b/meson.build
index 2b9c1d3a..217d1772 100644
--- a/meson.build
+++ b/meson.build
@@ -60,16 +60,17 @@ sources = files(
)
# Set appropriate arguments for building against the library type
+extra_c_args = []
subdir('meson/library')
if get_option('default_library') == 'static'
- add_project_arguments(['-DSERD_STATIC'], language: ['c'])
+ extra_c_args = ['-DSERD_STATIC']
endif
# Build shared and/or static library
libserd = library(
meson.project_name() + library_suffix,
sources,
- c_args: c_suppressions + [
+ c_args: c_suppressions + extra_c_args + [
'-DSERD_INTERNAL',
'-DSERD_VERSION="@0@"'.format(meson.project_version()),
],
@@ -77,10 +78,12 @@ libserd = library(
gnu_symbol_visibility: 'hidden',
include_directories: include_dirs,
install: true,
- version: meson.project_version())
+ version: meson.project_version(),
+)
# Declare dependency for internal meson dependants
serd_dep = declare_dependency(
+ compile_args: extra_c_args,
include_directories: include_dirs,
link_with: libserd,
)
@@ -89,6 +92,7 @@ serd_dep = declare_dependency(
pkg.generate(
libserd,
description: 'A lightweight library for working with RDF',
+ extra_cflags: extra_c_args,
filebase: versioned_name,
name: get_option('title'),
subdirs: [versioned_name],