From 95ecbacfe052ff758135e4c35d27ee391c0d8222 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 5 Feb 2020 16:28:22 +0100 Subject: [PATCH] meson: install headers in versioned paths Make sure all headers and plugins are installed in versioned paths so that we can parallel install versions if we want. --- meson.build | 9 +++++++-- spa/include/spa/meson.build | 24 ++++++++++++------------ spa/meson.build | 5 +++-- src/extensions/meson.build | 7 +++++-- src/pipewire/meson.build | 13 +++++++------ 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/meson.build b/meson.build index 5ecc46c8f..146edef7b 100644 --- a/meson.build +++ b/meson.build @@ -23,6 +23,9 @@ apiversion = '0.3' soversion = 0 libversion = '@0@.@1@.0'.format(soversion, pipewire_version_minor.to_int() * 100 + pipewire_version_micro.to_int()) +pipewire_name = 'pipewire-@0@'.format(apiversion) +spa_name = 'spa-@0@'.format(spaversion) + prefix = get_option('prefix') pipewire_bindir = join_paths(prefix, get_option('bindir')) pipewire_datadir = join_paths(prefix, get_option('datadir')) @@ -31,8 +34,10 @@ pipewire_localedir = join_paths(prefix, get_option('localedir')) pipewire_sysconfdir = join_paths(prefix, get_option('sysconfdir')) pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire') -modules_install_dir = join_paths(pipewire_libdir, 'pipewire-@0@'.format(apiversion)) -spa_plugindir = join_paths(pipewire_libdir, 'spa-@0@'.format(spaversion)) +modules_install_dir = join_paths(pipewire_libdir, pipewire_name) +spa_plugindir = join_paths(pipewire_libdir, spa_name) + +pipewire_headers_dir = join_paths(pipewire_name, 'pipewire') gnome = import('gnome') pkgconfig = import('pkgconfig') diff --git a/spa/include/spa/meson.build b/spa/include/spa/meson.build index 6d4a64ba7..e16e20869 100644 --- a/spa/include/spa/meson.build +++ b/spa/include/spa/meson.build @@ -6,7 +6,7 @@ spa_buffer_headers = [ ] install_headers(spa_buffer_headers, - subdir : 'spa/buffer') + subdir : join_paths(spa_name, 'spa', 'buffer')) spa_control_headers = [ 'control/control.h', @@ -14,7 +14,7 @@ spa_control_headers = [ ] install_headers(spa_control_headers, - subdir : 'spa/control') + subdir : join_paths(spa_name, 'spa', 'control')) spa_debug_headers = [ 'debug/buffer.h', @@ -26,14 +26,14 @@ spa_debug_headers = [ 'debug/types.h', ] install_headers(spa_debug_headers, - subdir : 'spa/debug') + subdir : join_paths(spa_name, 'spa', 'debug')) spa_graph_headers = [ 'graph/graph.h', ] install_headers(spa_graph_headers, - subdir : 'spa/graph') + subdir : join_paths(spa_name, 'spa', 'graph')) spa_monitor_headers = [ 'monitor/device.h', @@ -41,7 +41,7 @@ spa_monitor_headers = [ ] install_headers(spa_monitor_headers, - subdir : 'spa/monitor') + subdir : join_paths(spa_name, 'spa', 'monitor')) spa_node_headers = [ 'node/command.h', @@ -54,7 +54,7 @@ spa_node_headers = [ ] install_headers(spa_node_headers, - subdir : 'spa/node') + subdir : join_paths(spa_name, 'spa', 'node')) spa_param_headers = [ 'param/format.h', @@ -66,7 +66,7 @@ spa_param_headers = [ ] install_headers(spa_param_headers, - subdir : 'spa/param') + subdir : join_paths(spa_name, 'spa', 'param')) spa_pod_headers = [ 'pod/builder.h', @@ -80,7 +80,7 @@ spa_pod_headers = [ 'pod/vararg.h', ] install_headers(spa_pod_headers, - subdir : 'spa/pod') + subdir : join_paths(spa_name, 'spa', 'pod')) spa_support_headers = [ 'support/cpu.h', @@ -93,7 +93,7 @@ spa_support_headers = [ ] install_headers(spa_support_headers, - subdir : 'spa/support') + subdir : join_paths(spa_name, 'spa', 'support')) spa_utils_headers = [ 'utils/defs.h', @@ -109,7 +109,7 @@ spa_utils_headers = [ ] install_headers(spa_utils_headers, - subdir : 'spa/utils') + subdir : join_paths(spa_name, 'spa', 'utils')) spa_audio_headers = [ 'param/audio/format.h', @@ -120,7 +120,7 @@ spa_audio_headers = [ ] install_headers(spa_audio_headers, - subdir : 'spa/param/audio') + subdir : join_paths(spa_name, 'spa', 'param', 'audio')) spa_video_headers = [ 'param/video/chroma.h', @@ -134,4 +134,4 @@ spa_video_headers = [ ] install_headers(spa_video_headers, - subdir : 'spa/param/video') + subdir : join_paths(spa_name, 'spa', 'param', 'video')) diff --git a/spa/meson.build b/spa/meson.build index 37c034a4a..0b561a1d8 100644 --- a/spa/meson.build +++ b/spa/meson.build @@ -43,8 +43,9 @@ if get_option('examples') subdir('examples') endif -pkgconfig.generate(filebase : 'libspa-@0@'.format(spaversion), +pkgconfig.generate(filebase : 'lib@0@'.format(spa_name), name : 'libspa', + subdirs : spa_name, description : 'Simple Plugin API', - version : pipewire_version, + version : spaversion, extra_cflags : '-D_REENTRANT') diff --git a/src/extensions/meson.build b/src/extensions/meson.build index e92ef5228..9d45327fa 100644 --- a/src/extensions/meson.build +++ b/src/extensions/meson.build @@ -13,5 +13,8 @@ pipewire_ext_headers = [ 'session-manager.h', ] -install_headers(pipewire_ext_sm_headers, subdir : 'pipewire/extensions/session-manager') -install_headers(pipewire_ext_headers, subdir : 'pipewire/extensions') +install_headers(pipewire_ext_sm_headers, + subdir : join_paths(pipewire_headers_dir, 'extensions', 'session-manager')) + +install_headers(pipewire_ext_headers, + subdir : join_paths(pipewire_headers_dir, 'extensions')) diff --git a/src/pipewire/meson.build b/src/pipewire/meson.build index df144404d..030705168 100644 --- a/src/pipewire/meson.build +++ b/src/pipewire/meson.build @@ -76,10 +76,11 @@ pipewire_sources = [ configure_file(input : 'version.h.in', output : 'version.h', - install_dir : join_paths(get_option('includedir'), 'pipewire'), + install_dir : join_paths(get_option('includedir'), pipewire_headers_dir), configuration : cdata) -install_headers(pipewire_headers, subdir : 'pipewire') + +install_headers(pipewire_headers, subdir : pipewire_headers_dir) libpipewire_c_args = [ '-DHAVE_CONFIG_H', @@ -92,8 +93,7 @@ if build_machine.system() != 'freebsd' ] endif -libpipewire_name = 'pipewire-@0@'.format(apiversion) -libpipewire = shared_library(libpipewire_name, pipewire_sources, +libpipewire = shared_library(pipewire_name, pipewire_sources, version : libversion, soversion : soversion, c_args : libpipewire_c_args, @@ -107,10 +107,11 @@ pipewire_dep = declare_dependency(link_with : libpipewire, dependencies : [pthread_lib, ], ) -pkgconfig.generate(filebase : 'lib@0@'.format(libpipewire_name), +pkgconfig.generate(filebase : 'lib@0@'.format(pipewire_name), libraries : [libpipewire], name : 'libpipewire', + subdirs : pipewire_name, description : 'PipeWire Interface', version : pipewire_version, extra_cflags : '-D_REENTRANT', - variables : ['moduledir=${libdir}/@0@'.format(libpipewire_name)]) + variables : ['moduledir=${libdir}/@0@'.format(pipewire_name)])