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.
This commit is contained in:
Wim Taymans 2020-02-05 16:28:22 +01:00
parent d0f69e44cd
commit 95ecbacfe0
5 changed files with 34 additions and 24 deletions

View file

@ -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')

View file

@ -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'))

View file

@ -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')

View file

@ -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'))

View file

@ -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)])