Version pkgconfig, headers, and library for parallel installation

Since wlroots almost always significantly breaks API each minor release,
allowing parallel installation of wlroots helps packagers deal with
programs that require conflicting versions of wlroots.

Closes: #3786
This commit is contained in:
Violet Purcell 2024-03-17 13:24:35 -04:00 committed by Simon Ser
parent 08c64c166f
commit 4b4f76cc13
3 changed files with 6 additions and 6 deletions

View File

@ -28,7 +28,7 @@ if not features.get('session')
endif
install_subdir('wlr',
install_dir: get_option('includedir'),
install_dir: get_option('includedir') / versioned_name,
exclude_files: exclude_files,
)

View File

@ -22,4 +22,4 @@ ver_h = configure_file(
configuration: version_data,
)
install_headers(conf_h, ver_h, subdir: 'wlr')
install_headers(conf_h, ver_h, subdir: versioned_name / 'wlr')

View File

@ -14,8 +14,7 @@ project(
version = meson.project_version().split('-')[0]
version_major = version.split('.')[0]
version_minor = version.split('.')[1]
assert(version_major == '0')
soversion = version_minor.to_int() - 5
versioned_name = '@0@-@1@.@2@'.format(meson.project_name(), version_major, version_minor)
little_endian = target_machine.endian() == 'little'
big_endian = target_machine.endian() == 'big'
@ -175,8 +174,7 @@ wlr_inc = include_directories('include')
symbols_file = 'wlroots.syms'
symbols_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), symbols_file)
lib_wlr = library(
meson.project_name(), wlr_files,
soversion: soversion.to_string(),
versioned_name, wlr_files,
dependencies: wlr_deps,
include_directories: [wlr_inc],
install: true,
@ -208,7 +206,9 @@ endif
pkgconfig = import('pkgconfig')
pkgconfig.generate(
lib_wlr,
name: versioned_name,
description: 'Wayland compositor library',
subdirs: versioned_name,
url: 'https://gitlab.freedesktop.org/wlroots/wlroots',
variables: wlr_vars,
)