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 soversion = 0
libversion = '@0@.@1@.0'.format(soversion, pipewire_version_minor.to_int() * 100 + pipewire_version_micro.to_int()) 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') prefix = get_option('prefix')
pipewire_bindir = join_paths(prefix, get_option('bindir')) pipewire_bindir = join_paths(prefix, get_option('bindir'))
pipewire_datadir = join_paths(prefix, get_option('datadir')) 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_sysconfdir = join_paths(prefix, get_option('sysconfdir'))
pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire') pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
modules_install_dir = join_paths(pipewire_libdir, 'pipewire-@0@'.format(apiversion)) modules_install_dir = join_paths(pipewire_libdir, pipewire_name)
spa_plugindir = join_paths(pipewire_libdir, 'spa-@0@'.format(spaversion)) spa_plugindir = join_paths(pipewire_libdir, spa_name)
pipewire_headers_dir = join_paths(pipewire_name, 'pipewire')
gnome = import('gnome') gnome = import('gnome')
pkgconfig = import('pkgconfig') pkgconfig = import('pkgconfig')

View file

@ -6,7 +6,7 @@ spa_buffer_headers = [
] ]
install_headers(spa_buffer_headers, install_headers(spa_buffer_headers,
subdir : 'spa/buffer') subdir : join_paths(spa_name, 'spa', 'buffer'))
spa_control_headers = [ spa_control_headers = [
'control/control.h', 'control/control.h',
@ -14,7 +14,7 @@ spa_control_headers = [
] ]
install_headers(spa_control_headers, install_headers(spa_control_headers,
subdir : 'spa/control') subdir : join_paths(spa_name, 'spa', 'control'))
spa_debug_headers = [ spa_debug_headers = [
'debug/buffer.h', 'debug/buffer.h',
@ -26,14 +26,14 @@ spa_debug_headers = [
'debug/types.h', 'debug/types.h',
] ]
install_headers(spa_debug_headers, install_headers(spa_debug_headers,
subdir : 'spa/debug') subdir : join_paths(spa_name, 'spa', 'debug'))
spa_graph_headers = [ spa_graph_headers = [
'graph/graph.h', 'graph/graph.h',
] ]
install_headers(spa_graph_headers, install_headers(spa_graph_headers,
subdir : 'spa/graph') subdir : join_paths(spa_name, 'spa', 'graph'))
spa_monitor_headers = [ spa_monitor_headers = [
'monitor/device.h', 'monitor/device.h',
@ -41,7 +41,7 @@ spa_monitor_headers = [
] ]
install_headers(spa_monitor_headers, install_headers(spa_monitor_headers,
subdir : 'spa/monitor') subdir : join_paths(spa_name, 'spa', 'monitor'))
spa_node_headers = [ spa_node_headers = [
'node/command.h', 'node/command.h',
@ -54,7 +54,7 @@ spa_node_headers = [
] ]
install_headers(spa_node_headers, install_headers(spa_node_headers,
subdir : 'spa/node') subdir : join_paths(spa_name, 'spa', 'node'))
spa_param_headers = [ spa_param_headers = [
'param/format.h', 'param/format.h',
@ -66,7 +66,7 @@ spa_param_headers = [
] ]
install_headers(spa_param_headers, install_headers(spa_param_headers,
subdir : 'spa/param') subdir : join_paths(spa_name, 'spa', 'param'))
spa_pod_headers = [ spa_pod_headers = [
'pod/builder.h', 'pod/builder.h',
@ -80,7 +80,7 @@ spa_pod_headers = [
'pod/vararg.h', 'pod/vararg.h',
] ]
install_headers(spa_pod_headers, install_headers(spa_pod_headers,
subdir : 'spa/pod') subdir : join_paths(spa_name, 'spa', 'pod'))
spa_support_headers = [ spa_support_headers = [
'support/cpu.h', 'support/cpu.h',
@ -93,7 +93,7 @@ spa_support_headers = [
] ]
install_headers(spa_support_headers, install_headers(spa_support_headers,
subdir : 'spa/support') subdir : join_paths(spa_name, 'spa', 'support'))
spa_utils_headers = [ spa_utils_headers = [
'utils/defs.h', 'utils/defs.h',
@ -109,7 +109,7 @@ spa_utils_headers = [
] ]
install_headers(spa_utils_headers, install_headers(spa_utils_headers,
subdir : 'spa/utils') subdir : join_paths(spa_name, 'spa', 'utils'))
spa_audio_headers = [ spa_audio_headers = [
'param/audio/format.h', 'param/audio/format.h',
@ -120,7 +120,7 @@ spa_audio_headers = [
] ]
install_headers(spa_audio_headers, install_headers(spa_audio_headers,
subdir : 'spa/param/audio') subdir : join_paths(spa_name, 'spa', 'param', 'audio'))
spa_video_headers = [ spa_video_headers = [
'param/video/chroma.h', 'param/video/chroma.h',
@ -134,4 +134,4 @@ spa_video_headers = [
] ]
install_headers(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') subdir('examples')
endif endif
pkgconfig.generate(filebase : 'libspa-@0@'.format(spaversion), pkgconfig.generate(filebase : 'lib@0@'.format(spa_name),
name : 'libspa', name : 'libspa',
subdirs : spa_name,
description : 'Simple Plugin API', description : 'Simple Plugin API',
version : pipewire_version, version : spaversion,
extra_cflags : '-D_REENTRANT') extra_cflags : '-D_REENTRANT')

View file

@ -13,5 +13,8 @@ pipewire_ext_headers = [
'session-manager.h', 'session-manager.h',
] ]
install_headers(pipewire_ext_sm_headers, subdir : 'pipewire/extensions/session-manager') install_headers(pipewire_ext_sm_headers,
install_headers(pipewire_ext_headers, subdir : 'pipewire/extensions') 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', configure_file(input : 'version.h.in',
output : 'version.h', output : 'version.h',
install_dir : join_paths(get_option('includedir'), 'pipewire'), install_dir : join_paths(get_option('includedir'), pipewire_headers_dir),
configuration : cdata) configuration : cdata)
install_headers(pipewire_headers, subdir : 'pipewire')
install_headers(pipewire_headers, subdir : pipewire_headers_dir)
libpipewire_c_args = [ libpipewire_c_args = [
'-DHAVE_CONFIG_H', '-DHAVE_CONFIG_H',
@ -92,8 +93,7 @@ if build_machine.system() != 'freebsd'
] ]
endif endif
libpipewire_name = 'pipewire-@0@'.format(apiversion) libpipewire = shared_library(pipewire_name, pipewire_sources,
libpipewire = shared_library(libpipewire_name, pipewire_sources,
version : libversion, version : libversion,
soversion : soversion, soversion : soversion,
c_args : libpipewire_c_args, c_args : libpipewire_c_args,
@ -107,10 +107,11 @@ pipewire_dep = declare_dependency(link_with : libpipewire,
dependencies : [pthread_lib, ], dependencies : [pthread_lib, ],
) )
pkgconfig.generate(filebase : 'lib@0@'.format(libpipewire_name), pkgconfig.generate(filebase : 'lib@0@'.format(pipewire_name),
libraries : [libpipewire], libraries : [libpipewire],
name : 'libpipewire', name : 'libpipewire',
subdirs : pipewire_name,
description : 'PipeWire Interface', description : 'PipeWire Interface',
version : pipewire_version, version : pipewire_version,
extra_cflags : '-D_REENTRANT', extra_cflags : '-D_REENTRANT',
variables : ['moduledir=${libdir}/@0@'.format(libpipewire_name)]) variables : ['moduledir=${libdir}/@0@'.format(pipewire_name)])