6 Commits
v1.1 ... v1.3

Author SHA1 Message Date
8e258a1933 build: Bump version to 1.3 2023-09-05 11:19:47 -04:00
0691ae20d8 meson: Fix generation of pkgconfig files
Too much information was specified manually. All this is deduced
automatically if you specify the library as the first positional
argument.

Only absl_base needs to be in Requires: because absl_optional's header
file is needed at build time.

Also add a check in the CI for the pc files being usable.
2023-09-05 01:50:51 +05:30
c9b0a675e4 build: Bump version to 1.2 2023-09-01 11:05:31 -04:00
315b2222a8 meson: Update minimum version based on what abseil wrap needs 2023-08-13 17:42:29 -04:00
bc401b3cbf build: Expose absl as a dependency of webrtc-audio-processing
This is needed because the audio processing header references
abseil's optional.h. Clean up the declared dependencies while we're at
it.

Fixes: https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/34
2023-08-13 17:42:29 -04:00
92a4765a7e meson: Update to latest wrap, install required absl headers 2023-06-01 17:46:28 +05:30
5 changed files with 113 additions and 47 deletions

View File

@ -83,8 +83,12 @@ build-container-aarch64:
extends: extends:
- .fdo.distribution-image@ubuntu - .fdo.distribution-image@ubuntu
script: script:
- meson setup --wrap-mode=nofallback builddir - meson setup --wrap-mode=nofallback --prefix=/usr --libdir=lib builddir
- ninja -C builddir - ninja -C builddir
- DESTDIR=$PWD/_install ninja install -C builddir
# Test that the pc files are usable
- PKG_CONFIG_PATH=$PWD/_install/usr/lib/pkgconfig pkg-config --cflags --libs webrtc-audio-processing-1
- PKG_CONFIG_PATH=$PWD/_install/usr/lib/pkgconfig pkg-config --cflags --libs webrtc-audio-coding-1
artifacts: artifacts:
expire_in: '5 days' expire_in: '5 days'
when: 'always' when: 'always'
@ -96,8 +100,12 @@ build-container-aarch64:
extends: extends:
- .fdo.distribution-image@ubuntu - .fdo.distribution-image@ubuntu
script: script:
- meson setup --force-fallback-for=abseil-cpp builddir - meson setup --force-fallback-for=abseil-cpp --prefix=/usr --libdir=lib builddir
- ninja -C builddir - ninja -C builddir
- DESTDIR=$PWD/_install ninja install -C builddir
# Test that the pc files are usable
- PKG_CONFIG_LIBDIR=$PWD/_install/usr/lib/pkgconfig pkg-config --cflags --libs webrtc-audio-processing-1
- PKG_CONFIG_LIBDIR=$PWD/_install/usr/lib/pkgconfig pkg-config --cflags --libs webrtc-audio-coding-1
artifacts: artifacts:
expire_in: '5 days' expire_in: '5 days'
when: 'always' when: 'always'

View File

@ -1,6 +1,6 @@
project('webrtc-audio-processing', 'c', 'cpp', project('webrtc-audio-processing', 'c', 'cpp',
version : '1.1', version : '1.3',
meson_version : '>= 0.55', meson_version : '>= 0.63',
default_options : [ 'warning_level=1', default_options : [ 'warning_level=1',
'buildtype=debugoptimized', 'buildtype=debugoptimized',
'c_std=c11', 'c_std=c11',
@ -19,12 +19,10 @@ minor_version = version_split[1]
apm_major_version = major_version apm_major_version = major_version
apm_minor_version = minor_version apm_minor_version = minor_version
apm_version = apm_major_version + '.' + apm_minor_version
apm_project_name = 'webrtc-audio-processing-' + apm_major_version apm_project_name = 'webrtc-audio-processing-' + apm_major_version
ac_major_version = major_version ac_major_version = major_version
ac_minor_version = minor_version ac_minor_version = minor_version
ac_version = ac_major_version + '.' + ac_minor_version
ac_project_name = 'webrtc-audio-coding-' + ac_major_version ac_project_name = 'webrtc-audio-coding-' + ac_major_version
include_subdir = apm_project_name include_subdir = apm_project_name
@ -59,14 +57,28 @@ absl_dep = [
dependency('absl_flags'), dependency('absl_flags'),
dependency('absl_strings'), dependency('absl_strings'),
dependency('absl_synchronization'), dependency('absl_synchronization'),
dependency('absl_bad_optional_access'),
] ]
if absl_dep[0].type_name() == 'internal'
absl_subproj = subproject('abseil-cpp')
headers = [
absl_subproj.get_variable('absl_base_headers'),
absl_subproj.get_variable('absl_flags_headers'),
absl_subproj.get_variable('absl_strings_headers'),
absl_subproj.get_variable('absl_synchronization_headers'),
absl_subproj.get_variable('absl_types_headers'),
]
install_headers(headers, preserve_path: true)
pc_requires = []
else
pc_requires = [absl_dep[0]]
endif
if ['darwin', 'ios'].contains(host_system) if ['darwin', 'ios'].contains(host_system)
os_cflags = ['-DWEBRTC_MAC'] os_cflags = ['-DWEBRTC_MAC']
if host_system == 'ios' if host_system == 'ios'
os_cflags += ['-DWEBRTC_IOS'] os_cflags += ['-DWEBRTC_IOS']
# For absl_bad_optional_access
absl_dep += [dependency('absl_types')]
endif endif
have_posix = true have_posix = true
elif host_system == 'android' elif host_system == 'android'
@ -165,35 +177,35 @@ subdir('webrtc')
pkgconfig = import('pkgconfig') pkgconfig = import('pkgconfig')
pkgconfig.generate( pkgconfig.generate(
name: apm_project_name, libwebrtc_audio_processing,
description: 'WebRTC Audio Processing library', description: 'WebRTC Audio Processing library',
version: apm_major_version + '.' + apm_minor_version, subdirs: include_subdir,
filebase: apm_project_name, requires: pc_requires,
subdirs: include_subdir, extra_cflags: [
extra_cflags: [ '-DWEBRTC_LIBRARY_IMPL',
'-DWEBRTC_LIBRARY_IMPL', ] + platform_cflags,
] + platform_cflags,
libraries: libwebrtc_audio_processing,
) )
audio_processing_dep = declare_dependency(link_with : libwebrtc_audio_processing, audio_processing_dep = declare_dependency(
include_directories : [webrtc_inc]) link_with: libwebrtc_audio_processing,
dependencies: [absl_dep],
include_directories: [webrtc_inc]
)
meson.override_dependency(apm_project_name, audio_processing_dep) meson.override_dependency(apm_project_name, audio_processing_dep)
pkgconfig.generate( pkgconfig.generate(
name: ac_project_name, libwebrtc_audio_coding,
description: 'WebRTC Audio Coding library', description: 'WebRTC Audio Coding library',
version: ac_major_version + '.' + ac_minor_version, subdirs: include_subdir,
filebase: ac_project_name, extra_cflags: [
subdirs: include_subdir, '-DWEBRTC_LIBRARY_IMPL',
extra_cflags: [ ] + platform_cflags,
'-DWEBRTC_LIBRARY_IMPL',
] + platform_cflags,
libraries: libwebrtc_audio_coding,
) )
audio_coding_dep = declare_dependency(link_with : libwebrtc_audio_coding, audio_coding_dep = declare_dependency(
include_directories : [webrtc_inc]) link_with: libwebrtc_audio_coding,
include_directories: [webrtc_inc]
)
meson.override_dependency(ac_project_name, audio_coding_dep) meson.override_dependency(ac_project_name, audio_coding_dep)

View File

@ -3,11 +3,11 @@ directory = abseil-cpp-20230125.1
source_url = https://github.com/abseil/abseil-cpp/archive/20230125.1.tar.gz source_url = https://github.com/abseil/abseil-cpp/archive/20230125.1.tar.gz
source_filename = abseil-cpp-20230125.1.tar.gz source_filename = abseil-cpp-20230125.1.tar.gz
source_hash = 81311c17599b3712069ded20cca09a62ab0bf2a89dfa16993786c8782b7ed145 source_hash = 81311c17599b3712069ded20cca09a62ab0bf2a89dfa16993786c8782b7ed145
patch_filename = abseil-cpp_20230125.1-1_patch.zip patch_filename = abseil-cpp_20230125.1-4_patch.zip
patch_url = https://wrapdb.mesonbuild.com/v2/abseil-cpp_20230125.1-1/get_patch patch_url = https://wrapdb.mesonbuild.com/v2/abseil-cpp_20230125.1-4/get_patch
patch_hash = a920ab28067e433d7ead2d564a4f511628f498f0723f7f94d19317877787ef39 patch_hash = 112ee72052049d930396c2778fc1c6e184137905dd75d60a97dcfc386426610d
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/abseil-cpp_20230125.1-1/abseil-cpp-20230125.1.tar.gz source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/abseil-cpp_20230125.1-4/abseil-cpp-20230125.1.tar.gz
wrapdb_version = 20230125.1-1 wrapdb_version = 20230125.1-4
[provide] [provide]
absl_base = absl_base_dep absl_base = absl_base_dep
@ -18,9 +18,67 @@ absl_flags = absl_flags_dep
absl_hash = absl_hash_dep absl_hash = absl_hash_dep
absl_crc = absl_crc_dep absl_crc = absl_crc_dep
absl_numeric = absl_numeric_dep absl_numeric = absl_numeric_dep
absl_profiling = absl_profiling_dep
absl_random = absl_random_dep absl_random = absl_random_dep
absl_status = absl_status_dep absl_status = absl_status_dep
absl_strings = absl_strings_dep absl_strings = absl_strings_dep
absl_synchronization = absl_synchronization_dep absl_synchronization = absl_synchronization_dep
absl_time = absl_time_dep absl_time = absl_time_dep
absl_types = absl_types_dep absl_types = absl_types_dep
absl_bad_any_cast_impl = absl_types_dep
absl_bad_optional_access = absl_types_dep
absl_bad_variant_access = absl_types_dep
absl_city = absl_hash_dep
absl_civil_time = absl_time_dep
absl_cord = absl_strings_dep
absl_cord_internal = absl_strings_dep
absl_cordz_functions = absl_strings_dep
absl_cordz_handle = absl_strings_dep
absl_cordz_info = absl_strings_dep
absl_cordz_sample_token = absl_strings_dep
absl_debugging_internal = absl_debugging_dep
absl_demangle_internal = absl_debugging_dep
absl_examine_stack = absl_debugging_dep
absl_exponential_biased = absl_profiling_dep
absl_failure_signal_handler = absl_debugging_dep
absl_flags_commandlineflag = absl_flags_dep
absl_flags_commandlineflag_internal = absl_flags_dep
absl_flags_config = absl_flags_dep
absl_flags_internal = absl_flags_dep
absl_flags_marshalling = absl_flags_dep
absl_flags_parse = absl_flags_dep
absl_flags_private_handle_accessor = absl_flags_dep
absl_flags_program_name = absl_flags_dep
absl_flags_reflection = absl_flags_dep
absl_flags_usage = absl_flags_dep
absl_flags_usage_internal = absl_flags_dep
absl_graphcycles_internal = absl_synchronization_dep
absl_hashtablez_sampler = absl_container_dep
absl_int128 = absl_numeric_dep
absl_leak_check = absl_debugging_dep
absl_log_severity = absl_base_dep
absl_low_level_hash = absl_hash_dep
absl_periodic_sampler = absl_profiling_dep
absl_random_distributions = absl_random_dep
absl_random_internal_distribution_test_util = absl_random_dep
absl_random_internal_platform = absl_random_dep
absl_random_internal_pool_urbg = absl_random_dep
absl_random_internal_randen = absl_random_dep
absl_random_internal_randen_hwaes = absl_random_dep
absl_random_internal_randen_hwaes_impl = absl_random_dep
absl_random_internal_randen_slow = absl_random_dep
absl_random_internal_seed_material = absl_random_dep
absl_random_seed_gen_exception = absl_random_dep
absl_random_seed_sequences = absl_random_dep
absl_raw_hash_set = absl_container_dep
absl_raw_logging_internal = absl_base_dep
absl_scoped_set_env = absl_base_dep
absl_spinlock_wait = absl_base_dep
absl_stacktrace = absl_debugging_dep
absl_statusor = absl_status_dep
absl_strerror = absl_base_dep
absl_str_format_internal = absl_strings_dep
absl_strings_internal = absl_strings_dep
absl_symbolize = absl_debugging_dep
absl_throw_delegate = absl_base_dep
absl_time_zone = absl_time_dep

View File

@ -45,12 +45,6 @@ libwebrtc_audio_coding = library(ac_project_name,
install: true install: true
) )
webrtc_audio_coding_dep = declare_dependency(
link_with: libwebrtc_audio_coding,
include_directories: webrtc_inc,
version: ac_version
)
install_headers(['codecs/isac/bandwidth_info.h'], install_headers(['codecs/isac/bandwidth_info.h'],
subdir: join_paths(include_subdir, 'modules', 'audio_coding', 'codecs', 'isac') subdir: join_paths(include_subdir, 'modules', 'audio_coding', 'codecs', 'isac')
) )

View File

@ -211,9 +211,3 @@ libwebrtc_audio_processing = library(apm_project_name,
soversion: apm_minor_version, soversion: apm_minor_version,
install: true install: true
) )
webrtc_audio_processing_dep = declare_dependency(
link_with: libwebrtc_audio_processing,
include_directories: webrtc_inc,
version: apm_version
)