mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-23 02:57:09 +01:00
[sdl2-mixer] Fix dynamic loading when building static library (#9332)
* [sdl2-mixer] Fix dynamic loading when building static library * [sdl2-mixer] Set dynamic load as a feature * [sdl2-mixer] Disable feature dynamic-load when building static
This commit is contained in:
parent
ebda0b9fc2
commit
53f1ae86d0
@ -16,9 +16,11 @@ if(SDL_MIXER_ENABLE_MP3)
|
|||||||
find_library(MPG123_LIBRARY NAMES libmpg123 mpg123)
|
find_library(MPG123_LIBRARY NAMES libmpg123 mpg123)
|
||||||
list(APPEND SDL_MIXER_INCLUDES ${MPG123_INCLUDE_DIR})
|
list(APPEND SDL_MIXER_INCLUDES ${MPG123_INCLUDE_DIR})
|
||||||
list(APPEND SDL_MIXER_DEFINES MUSIC_MP3_MPG123)
|
list(APPEND SDL_MIXER_DEFINES MUSIC_MP3_MPG123)
|
||||||
|
if (SDL_DYNAMIC_LOAD)
|
||||||
get_filename_component(MPG123_LIBRARY_NAME "${MPG123_LIBRARY}" NAME_WE)
|
get_filename_component(MPG123_LIBRARY_NAME "${MPG123_LIBRARY}" NAME_WE)
|
||||||
list(APPEND SDL_MIXER_LOAD_DEFINES -DMPG123_DYNAMIC="${MPG123_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
list(APPEND SDL_MIXER_LOAD_DEFINES -DMPG123_DYNAMIC="${MPG123_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# FLAC support
|
# FLAC support
|
||||||
if(SDL_MIXER_ENABLE_FLAC)
|
if(SDL_MIXER_ENABLE_FLAC)
|
||||||
@ -26,9 +28,11 @@ if(SDL_MIXER_ENABLE_FLAC)
|
|||||||
find_library(FLAC_LIBRARY FLAC)
|
find_library(FLAC_LIBRARY FLAC)
|
||||||
list(APPEND SDL_MIXER_INCLUDES ${FLAC_INCLUDE_DIR})
|
list(APPEND SDL_MIXER_INCLUDES ${FLAC_INCLUDE_DIR})
|
||||||
list(APPEND SDL_MIXER_DEFINES MUSIC_FLAC)
|
list(APPEND SDL_MIXER_DEFINES MUSIC_FLAC)
|
||||||
|
if (SDL_DYNAMIC_LOAD)
|
||||||
get_filename_component(FLAC_LIBRARY_NAME "${FLAC_LIBRARY}" NAME_WE)
|
get_filename_component(FLAC_LIBRARY_NAME "${FLAC_LIBRARY}" NAME_WE)
|
||||||
list(APPEND SDL_MIXER_LOAD_DEFINES -DFLAC_DYNAMIC="${FLAC_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
list(APPEND SDL_MIXER_LOAD_DEFINES -DFLAC_DYNAMIC="${FLAC_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# MOD support
|
# MOD support
|
||||||
if(SDL_MIXER_ENABLE_MOD)
|
if(SDL_MIXER_ENABLE_MOD)
|
||||||
@ -36,9 +40,11 @@ if(SDL_MIXER_ENABLE_MOD)
|
|||||||
find_library(MODPLUG_LIBRARY modplug)
|
find_library(MODPLUG_LIBRARY modplug)
|
||||||
list(APPEND SDL_MIXER_INCLUDES ${MODPLUG_INCLUDE_DIR})
|
list(APPEND SDL_MIXER_INCLUDES ${MODPLUG_INCLUDE_DIR})
|
||||||
list(APPEND SDL_MIXER_DEFINES MUSIC_MOD_MODPLUG)
|
list(APPEND SDL_MIXER_DEFINES MUSIC_MOD_MODPLUG)
|
||||||
|
if (SDL_DYNAMIC_LOAD)
|
||||||
get_filename_component(MODPLUG_LIBRARY_NAME "${MODPLUG_LIBRARY}" NAME_WE)
|
get_filename_component(MODPLUG_LIBRARY_NAME "${MODPLUG_LIBRARY}" NAME_WE)
|
||||||
list(APPEND SDL_MIXER_LOAD_DEFINES -DMODPLUG_DYNAMIC="${MODPLUG_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
list(APPEND SDL_MIXER_LOAD_DEFINES -DMODPLUG_DYNAMIC="${MODPLUG_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Ogg-Vorbis support
|
# Ogg-Vorbis support
|
||||||
if(SDL_MIXER_ENABLE_OGGVORBIS)
|
if(SDL_MIXER_ENABLE_OGGVORBIS)
|
||||||
@ -46,9 +52,11 @@ if(SDL_MIXER_ENABLE_OGGVORBIS)
|
|||||||
find_library(VORBISFILE_LIBRARY vorbisfile)
|
find_library(VORBISFILE_LIBRARY vorbisfile)
|
||||||
list(APPEND SDL_MIXER_INCLUDES ${VORBIS_INCLUDE_DIR})
|
list(APPEND SDL_MIXER_INCLUDES ${VORBIS_INCLUDE_DIR})
|
||||||
list(APPEND SDL_MIXER_DEFINES MUSIC_OGG)
|
list(APPEND SDL_MIXER_DEFINES MUSIC_OGG)
|
||||||
|
if (SDL_DYNAMIC_LOAD)
|
||||||
get_filename_component(VORBISFILE_LIBRARY_NAME "${VORBISFILE_LIBRARY}" NAME_WE)
|
get_filename_component(VORBISFILE_LIBRARY_NAME "${VORBISFILE_LIBRARY}" NAME_WE)
|
||||||
list(APPEND SDL_MIXER_LOAD_DEFINES -DOGG_DYNAMIC="${VORBISFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
list(APPEND SDL_MIXER_LOAD_DEFINES -DOGG_DYNAMIC="${VORBISFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Opus support
|
# Opus support
|
||||||
if(SDL_MIXER_ENABLE_OPUS)
|
if(SDL_MIXER_ENABLE_OPUS)
|
||||||
@ -56,9 +64,11 @@ if(SDL_MIXER_ENABLE_OPUS)
|
|||||||
find_library(OPUSFILE_LIBRARY opusfile)
|
find_library(OPUSFILE_LIBRARY opusfile)
|
||||||
list(APPEND SDL_MIXER_INCLUDES ${OPUS_INCLUDE_DIR})
|
list(APPEND SDL_MIXER_INCLUDES ${OPUS_INCLUDE_DIR})
|
||||||
list(APPEND SDL_MIXER_DEFINES MUSIC_OPUS)
|
list(APPEND SDL_MIXER_DEFINES MUSIC_OPUS)
|
||||||
|
if (SDL_DYNAMIC_LOAD)
|
||||||
get_filename_component(OPUSFILE_LIBRARY_NAME "${OPUSFILE_LIBRARY}" NAME_WE)
|
get_filename_component(OPUSFILE_LIBRARY_NAME "${OPUSFILE_LIBRARY}" NAME_WE)
|
||||||
list(APPEND SDL_MIXER_LOAD_DEFINES -DOPUS_DYNAMIC="${OPUSFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
list(APPEND SDL_MIXER_LOAD_DEFINES -DOPUS_DYNAMIC="${OPUSFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
add_library(SDL2_mixer
|
add_library(SDL2_mixer
|
||||||
effect_position.c
|
effect_position.c
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
Source: sdl2-mixer
|
Source: sdl2-mixer
|
||||||
Version: 2.0.4-7
|
Version: 2.0.4-8
|
||||||
Homepage: https://www.libsdl.org/projects/SDL_mixer
|
Homepage: https://www.libsdl.org/projects/SDL_mixer
|
||||||
Description: Multi-channel audio mixer library for SDL.
|
Description: Multi-channel audio mixer library for SDL.
|
||||||
Build-Depends: sdl2
|
Build-Depends: sdl2
|
||||||
|
|
||||||
|
Feature: dynamic-load
|
||||||
|
Description: Load plugins with dynamic call
|
||||||
|
|
||||||
Feature: libflac
|
Feature: libflac
|
||||||
Description: Support for FLAC audio format.
|
Description: Support for FLAC audio format.
|
||||||
Build-Depends: libflac
|
Build-Depends: libflac
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
include(vcpkg_common_functions)
|
|
||||||
set(SDL2_MIXER_VERSION 2.0.4)
|
set(SDL2_MIXER_VERSION 2.0.4)
|
||||||
|
|
||||||
vcpkg_download_distfile(ARCHIVE
|
vcpkg_download_distfile(ARCHIVE
|
||||||
URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${SDL2_MIXER_VERSION}.zip"
|
URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${SDL2_MIXER_VERSION}.zip"
|
||||||
FILENAME "SDL2_mixer-${SDL2_MIXER_VERSION}.zip"
|
FILENAME "SDL2_mixer-${SDL2_MIXER_VERSION}.zip"
|
||||||
@ -11,15 +11,24 @@ vcpkg_extract_source_archive_ex(
|
|||||||
ARCHIVE ${ARCHIVE}
|
ARCHIVE ${ARCHIVE}
|
||||||
REF ${SDL2_MIXER_VERSION}
|
REF ${SDL2_MIXER_VERSION}
|
||||||
)
|
)
|
||||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
|
||||||
|
|
||||||
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
if ("dynamic-load" IN_LIST FEATURES)
|
||||||
set(LIBRARY_SUFFIX ${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX})
|
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||||
else()
|
message("Building static library, disable dynamic loading")
|
||||||
set(LIBRARY_SUFFIX ${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX})
|
elseif (NOT "mpg123" IN_LIST FEATURES
|
||||||
|
AND NOT "libflac" IN_LIST FEATURES
|
||||||
|
AND NOT "libmodplug" IN_LIST FEATURES
|
||||||
|
AND NOT "libvorbis" IN_LIST FEATURES
|
||||||
|
AND NOT "opusfile" IN_LIST FEATURES
|
||||||
|
)
|
||||||
|
message("No features selected, dynamic loading will not be enabled")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||||
|
|
||||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||||
|
dynamic-load SDL_DYNAMIC_LOAD
|
||||||
mpg123 SDL_MIXER_ENABLE_MP3
|
mpg123 SDL_MIXER_ENABLE_MP3
|
||||||
libflac SDL_MIXER_ENABLE_FLAC
|
libflac SDL_MIXER_ENABLE_FLAC
|
||||||
libmodplug SDL_MIXER_ENABLE_MOD
|
libmodplug SDL_MIXER_ENABLE_MOD
|
||||||
@ -32,7 +41,7 @@ vcpkg_configure_cmake(
|
|||||||
PREFER_NINJA
|
PREFER_NINJA
|
||||||
OPTIONS
|
OPTIONS
|
||||||
${FEATURE_OPTIONS}
|
${FEATURE_OPTIONS}
|
||||||
-DLIBRARY_SUFFIX=${LIBRARY_SUFFIX}
|
-DLIBRARY_SUFFIX=${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX} # It should always be dynamic suffix
|
||||||
OPTIONS_DEBUG
|
OPTIONS_DEBUG
|
||||||
-DSDL_MIXER_SKIP_HEADERS=ON
|
-DSDL_MIXER_SKIP_HEADERS=ON
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user