[openal-soft] Revise dependencies, cleanup (#45356)

This commit is contained in:
Kai Pastor 2025-05-07 19:18:51 +02:00 committed by GitHub
parent ad84d8b0ed
commit 8762709954
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 135 additions and 55 deletions

View File

@ -0,0 +1,45 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d2a69d4..14fc9b8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -159,7 +159,8 @@ if(MSVC)
endif()
endif()
-add_subdirectory(fmt-11.1.1 EXCLUDE_FROM_ALL)
+find_package(fmt CONFIG REQUIRED)
+add_library(alsoft::fmt ALIAS fmt::fmt)
set(CPP_DEFS ) # C pre-processor, not C++
@@ -1440,7 +1441,7 @@ if(LIBTYPE STREQUAL "STATIC")
add_library(${IMPL_TARGET} STATIC ${COMMON_OBJS} ${OPENAL_OBJS} ${ALC_OBJS} ${CORE_OBJS})
target_compile_definitions(${IMPL_TARGET} PUBLIC AL_LIBTYPE_STATIC)
target_link_libraries(${IMPL_TARGET} PRIVATE ${LINKER_FLAGS} ${EXTRA_LIBS} ${MATH_LIB}
- $<BUILD_LOCAL_INTERFACE:alsoft::fmt>)
+ alsoft::fmt)
if(WIN32)
# This option is for static linking OpenAL Soft into another project
diff --git a/OpenALConfig.cmake.in b/OpenALConfig.cmake.in
index 9704d3c..ddabb81 100644
--- a/OpenALConfig.cmake.in
+++ b/OpenALConfig.cmake.in
@@ -1,3 +1,5 @@
+include(CMakeFindDependencyMacro)
+find_dependency(fmt CONFIG)
cmake_minimum_required(VERSION 3.1...3.18)
include("${CMAKE_CURRENT_LIST_DIR}/OpenALTargets.cmake")
diff --git a/openal.pc.in b/openal.pc.in
index dfa6f57..e04e807 100644
--- a/openal.pc.in
+++ b/openal.pc.in
@@ -6,6 +6,7 @@ includedir=@includedir@
Name: OpenAL
Description: OpenAL is a cross-platform 3D audio API
Requires: @PKG_CONFIG_REQUIRES@
+Requires.private: fmt
Version: @PACKAGE_VERSION@
Libs: -L${libdir} -l@LIBNAME@ @PKG_CONFIG_LIBS@
Libs.private:@PKG_CONFIG_PRIVATE_LIBS@

View File

@ -0,0 +1,20 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 060a740..d2a69d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1379,6 +1379,15 @@ if(LIBTYPE STREQUAL "STATIC")
set(PKG_CONFIG_PRIVATE_LIBS "${PKG_CONFIG_PRIVATE_LIBS} -l${FLAG}")
endif()
endforeach()
+ foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES)
+ if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES)
+ continue()
+ elseif(EXISTS "${lib}")
+ string(APPEND PKG_CONFIG_PRIVATE_LIBS " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}")
+ else()
+ string(APPEND PKG_CONFIG_PRIVATE_LIBS " ${CMAKE_LINK_LIBRARY_FLAG}${lib}")
+ endif()
+ endforeach()
endif()
# End configuration

View File

@ -4,11 +4,17 @@ vcpkg_from_github(
REF ${VERSION}
SHA512 3eebd18de4984691136738e8fe5851ac5dbdc8f17916cc9dcc599bd3bafc400c9dad9dc88844a9b77b1e8e372a041af342421bdf23746dffe4760f8385bd1e53
HEAD_REF master
PATCHES
pkgconfig-cxx.diff
devendor-fmt.diff
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
pipewire ALSOFT_BACKEND_PIPEWIRE
pipewire ALSOFT_BACKEND_PIPEWIRE
pipewire ALSOFT_REQUIRE_PIPEWIRE
pulseaudio ALSOFT_BACKEND_PULSEAUDIO
pulseaudio ALSOFT_REQUIRE_PULSEAUDIO
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
@ -19,6 +25,7 @@ endif()
set(ALSOFT_REQUIRE_LINUX OFF)
set(ALSOFT_REQUIRE_WINDOWS OFF)
set(ALSOFT_REQUIRE_WINDOWS_NOT_UWP OFF)
set(ALSOFT_REQUIRE_APPLE OFF)
set(ALSOFT_CPUEXT_NEON OFF)
@ -27,6 +34,9 @@ if(VCPKG_TARGET_IS_LINUX)
endif()
if(VCPKG_TARGET_IS_WINDOWS)
set(ALSOFT_REQUIRE_WINDOWS ON)
if(NOT VCPKG_TARGET_IS_UWP)
set(ALSOFT_REQUIRE_WINDOWS_NOT_UWP ON)
endif()
endif()
if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
set(ALSOFT_REQUIRE_APPLE ON)
@ -35,74 +45,71 @@ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(ALSOFT_CPUEXT_NEON ON)
endif()
vcpkg_find_acquire_program(PKGCONFIG)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS ${FEATURE_OPTIONS}
-DLIBTYPE=${OPENAL_LIBTYPE}
-DALSOFT_UTILS=OFF
-DALSOFT_NO_CONFIG_UTIL=ON
OPTIONS
${FEATURE_OPTIONS}
-DALSOFT_CPUEXT_NEON=${ALSOFT_CPUEXT_NEON}
-DALSOFT_EXAMPLES=OFF
-DALSOFT_INSTALL_AMBDEC_PRESETS=OFF
-DALSOFT_INSTALL_CONFIG=OFF
-DALSOFT_INSTALL_HRTF_DATA=OFF
-DALSOFT_INSTALL_AMBDEC_PRESETS=OFF
-DALSOFT_NO_CONFIG_UTIL=ON
-DALSOFT_UPDATE_BUILD_VERSION=OFF
-DALSOFT_UTILS=OFF
-DLIBTYPE=${OPENAL_LIBTYPE}
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
# order by CMakeLists.txt
-DALSOFT_BACKEND_ALSA=${ALSOFT_REQUIRE_LINUX}
-DALSOFT_REQUIRE_ALSA=${ALSOFT_REQUIRE_LINUX}
-DALSOFT_BACKEND_OSS=OFF
-DALSOFT_BACKEND_SOLARIS=OFF
-DALSOFT_BACKEND_SNDIO=OFF
-DALSOFT_BACKEND_PORTAUDIO=OFF
-DALSOFT_BACKEND_PULSEAUDIO=${ALSOFT_REQUIRE_LINUX}
-DALSOFT_BACKEND_COREAUDIO=${ALSOFT_REQUIRE_APPLE}
-DALSOFT_BACKEND_JACK=OFF
-DALSOFT_BACKEND_OPENSL=${VCPKG_TARGET_IS_ANDROID}
-DALSOFT_BACKEND_WAVE=ON
-DALSOFT_BACKEND_WINMM=OFF
-DALSOFT_BACKEND_DSOUND=${ALSOFT_REQUIRE_WINDOWS}
-DALSOFT_BACKEND_DSOUND=${ALSOFT_REQUIRE_WINDOWS_NOT_UWP}
-DALSOFT_REQUIRE_DSOUND=${ALSOFT_REQUIRE_WINDOWS_NOT_UWP}
-DALSOFT_BACKEND_WASAPI=${ALSOFT_REQUIRE_WINDOWS}
-DALSOFT_REQUIRE_WASAPI=${ALSOFT_REQUIRE_WINDOWS}
-DALSOFT_CPUEXT_NEON=${ALSOFT_CPUEXT_NEON}
-DCMAKE_DISABLE_FIND_PACKAGE_WindowsSDK=ON
-DCMAKE_POLICY_DEFAULT_CMP0057=NEW
-DALSOFT_BACKEND_JACK=OFF
-DALSOFT_BACKEND_COREAUDIO=${ALSOFT_REQUIRE_APPLE}
-DALSOFT_REQUIRE_COREAUDIO=${ALSOFT_REQUIRE_APPLE}
-DALSOFT_BACKEND_OBOE=OFF
-DALSOFT_BACKEND_OPENSL=${VCPKG_TARGET_IS_ANDROID}
-DALSOFT_REQUIRE_OPENSL=${VCPKG_TARGET_IS_ANDROID}
-DALSOFT_BACKEND_PORTAUDIO=OFF
-DALSOFT_BACKEND_WAVE=ON
MAYBE_UNUSED_VARIABLES
ALSOFT_INSTALL_AMBDEC_PRESETS
# NOT WIN32
ALSOFT_BACKEND_ALSA
ALSOFT_BACKEND_COREAUDIO
ALSOFT_BACKEND_JACK
ALSOFT_BACKEND_OPENSL
ALSOFT_REQUIRE_ALSA
ALSOFT_BACKEND_OSS
ALSOFT_BACKEND_PORTAUDIO
ALSOFT_BACKEND_PIPEWIRE
ALSOFT_BACKEND_PULSEAUDIO
ALSOFT_BACKEND_SNDIO
ALSOFT_BACKEND_SOLARIS
ALSOFT_INSTALL_CONFIG
ALSOFT_CPUEXT_NEON
ALSOFT_INSTALL_HRTF_DATA
ALSOFT_BACKEND_SNDIO
# WIN32
ALSOFT_BACKEND_WINMM
ALSOFT_BACKEND_DSOUND
CMAKE_DISABLE_FIND_PACKAGE_WindowsSDK
CMAKE_POLICY_DEFAULT_CMP0057
ALSOFT_REQUIRE_DSOUND
ALSOFT_BACKEND_WASAPI
ALSOFT_REQUIRE_WASAPI
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/OpenAL")
foreach(HEADER al.h alc.h)
file(READ "${CURRENT_PACKAGES_DIR}/include/AL/${HEADER}" AL_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(REPLACE "defined(AL_LIBTYPE_STATIC)" "1" AL_H "${AL_H}")
else()
# Normally we would say:
# string(REPLACE "defined(AL_LIBTYPE_STATIC)" "0" AL_H "${AL_H}")
# but we are leaving these undefined macros alone in support of
# https://github.com/microsoft/vcpkg/issues/18098
endif()
file(WRITE "${CURRENT_PACKAGES_DIR}/include/AL/${HEADER}" "${AL_H}")
endforeach()
vcpkg_fixup_pkgconfig()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
foreach(HEADER IN ITEMS al.h alc.h)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/AL/${HEADER}" "defined(AL_LIBTYPE_STATIC)" "1")
endforeach()
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_copy_pdbs()
file(READ "${SOURCE_PATH}/common/pffft.cpp" pffft_license)
string(REGEX REPLACE "[*]/.*" "*/\n" pffft_license "${pffft_license}")
file(WRITE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/pffft Notice" "${pffft_license}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/pffft Notice")

View File

@ -1,4 +0,0 @@
The package openal-soft provides CMake targets:
find_package(OpenAL CONFIG REQUIRED)
target_link_libraries(main PRIVATE OpenAL::OpenAL)

View File

@ -1,6 +1,7 @@
{
"name": "openal-soft",
"version": "1.24.3",
"port-version": 1,
"description": "OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API.",
"homepage": "https://github.com/kcat/openal-soft",
"license": "LGPL-2.0-or-later",
@ -14,6 +15,7 @@
"name": "cppwinrt",
"platform": "uwp"
},
"fmt",
{
"name": "vcpkg-cmake",
"host": true
@ -25,11 +27,16 @@
],
"features": {
"pipewire": {
"description": "Native support for Pipewire",
"supports": "linux",
"description": "Enable PipeWire backend",
"dependencies": [
"pipewire"
]
},
"pulseaudio": {
"description": "Enable PulseAudio backend",
"dependencies": [
"pulseaudio"
]
}
}
}

View File

@ -372,8 +372,6 @@ ode:x64-uwp=fail
offscale-libetcd-cpp:arm-uwp=fail
offscale-libetcd-cpp:x64-uwp=fail
open62541:x64-windows-static-md=fail
openal-soft:arm-uwp=fail
openal-soft:x64-uwp=fail
opencc:arm64-windows=fail # opencc/deps/rapidjson-1.1.0/rapidjson.h: Unknown machine endianess detected
opencc(uwp)=fail # opencc/deps/marisa-0.2.5/lib/marisa/grimoire/io/mapper.cc currently doesn't support UWP.
opencl:arm-uwp=fail
@ -1557,6 +1555,8 @@ onnx-optimizer[pybind11]:x64-windows-static-md = cascade
onnx-optimizer[pybind11]:x86-windows = cascade
open62541[mbedtls]:arm64-uwp = cascade
open62541[mbedtls]:x64-uwp = cascade
openal-soft[pipewire](!linux) = cascade
openal-soft[pulseaudio](!linux) = cascade
opencascade:x86-windows = cascade
opencascade[samples,tbb]:x64-linux = cascade
opencascade[tbb]:x64-windows = cascade

View File

@ -6822,7 +6822,7 @@
},
"openal-soft": {
"baseline": "1.24.3",
"port-version": 0
"port-version": 1
},
"openblas": {
"baseline": "0.3.29",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e6c23049e3c80b2f0a031b0531fc92be404754a4",
"version": "1.24.3",
"port-version": 1
},
{
"git-tree": "f783908f96ce29c1b94aa4fb26ea8660168f6ac6",
"version": "1.24.3",