aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2020-11-27 13:46:27 +0000
committerMarc-André Lureau <marcandre.lureau@gmail.com>2020-11-27 13:46:27 +0000
commitd61b5d71fbb4259989f830692d15a6367ce94261 (patch)
tree91a5509419135111ee8da864d369ce9e339c623d
parent5146a4ff324397e5e7ad0b9712e476ee48a8eb86 (diff)
parent0b669b5fbe4d3c25a682a67f1059d8633c963b3d (diff)
downloadslirp-d61b5d71fbb4259989f830692d15a6367ce94261.zip
slirp-d61b5d71fbb4259989f830692d15a6367ce94261.tar.gz
slirp-d61b5d71fbb4259989f830692d15a6367ce94261.tar.bz2
Merge branch 'master' into 'master'
meson: support compiling as subproject See merge request slirp/libslirp!53
-rwxr-xr-xbuild-aux/meson-dist16
-rw-r--r--meson.build66
-rw-r--r--meson_options.txt2
3 files changed, 43 insertions, 41 deletions
diff --git a/build-aux/meson-dist b/build-aux/meson-dist
deleted file mode 100755
index 80d534f..0000000
--- a/build-aux/meson-dist
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o pipefail
-
-if test "$1" = ""; then
- echo "Version not provided" >&2
- exit 1
-fi
-if ! test -d "$2"; then
- echo "Source directory not provided" >&2
- exit 1
-fi
-
-# generate tarball version
-echo "$1" > "$MESON_DIST_ROOT/.tarball-version"
diff --git a/meson.build b/meson.build
index 2d67ae1..cb7fc47 100644
--- a/meson.build
+++ b/meson.build
@@ -1,12 +1,10 @@
project('libslirp', 'c',
- version : run_command('build-aux/git-version-gen', '@0@/.tarball-version'.format(meson.source_root()), check : true).stdout().strip(),
+ version : '4.3.1',
license : 'BSD-3-Clause',
default_options : ['warning_level=1', 'c_std=gnu99'],
- meson_version : '>= 0.49',
+ meson_version : '>= 0.50',
)
-meson.add_dist_script('build-aux/meson-dist', meson.project_version(), meson.source_root())
-
version = meson.project_version()
varr = version.split('.')
major_version = varr[0]
@@ -17,7 +15,17 @@ conf = configuration_data()
conf.set('SLIRP_MAJOR_VERSION', major_version)
conf.set('SLIRP_MINOR_VERSION', minor_version)
conf.set('SLIRP_MICRO_VERSION', micro_version)
-conf.set_quoted('SLIRP_VERSION_STRING', version)
+
+full_version = run_command('build-aux/git-version-gen',
+ '@0@/.tarball-version'.format(meson.current_source_dir()),
+ check : true).stdout().strip()
+if full_version.startswith('UNKNOWN')
+ full_version = meson.project_version()
+elif not full_version.startswith(meson.project_version())
+ error('meson.build project version @0@ does not match git-describe output @1@'
+ .format(meson.project_version(), full_version))
+endif
+conf.set_quoted('SLIRP_VERSION_STRING', full_version + get_option('version_suffix'))
# libtool versioning - this applies to libslirp
#
@@ -105,9 +113,12 @@ if cc.has_link_argument(vflag_test)
vflag += vflag_test
endif
+install_devel = not meson.is_subproject()
+
configure_file(
input : 'src/libslirp-version.h.in',
output : 'libslirp-version.h',
+ install : install_devel,
install_dir : join_paths(get_option('includedir'), 'slirp'),
configuration : conf
)
@@ -118,25 +129,30 @@ lib = library('slirp', sources,
link_args : vflag,
link_depends : mapfile,
dependencies : [glib_dep, platform_deps],
- install : true
+ install : install_devel or get_option('default_library') == 'shared',
)
-libslirp_dep = declare_dependency(
- include_directories: include_directories('.', 'src'),
- link_with: lib)
-
-install_headers(['src/libslirp.h'], subdir : 'slirp')
-
-pkg = import('pkgconfig')
-
-pkg.generate(
- version : version,
- libraries : lib,
- requires : [
- 'glib-2.0',
- ],
- name : 'slirp',
- description : 'User-space network stack',
- filebase : 'slirp',
- subdirs : 'slirp',
-)
+if install_devel
+ install_headers(['src/libslirp.h'], subdir : 'slirp')
+
+ pkg = import('pkgconfig')
+
+ pkg.generate(
+ version : version,
+ libraries : lib,
+ requires : [
+ 'glib-2.0',
+ ],
+ name : 'slirp',
+ description : 'User-space network stack',
+ filebase : 'slirp',
+ subdirs : 'slirp',
+ )
+else
+ if get_option('default_library') == 'both'
+ lib = lib.get_static_lib()
+ endif
+ libslirp_dep = declare_dependency(
+ include_directories: include_directories('.', 'src'),
+ link_with: lib)
+endif
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..27e7c80
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,2 @@
+option('version_suffix', type: 'string', value: '',
+ description: 'Suffix to append to SLIRP_VERSION_STRING')