aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/mpg123
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/mpg123')
-rw-r--r--vcpkg/ports/mpg123/fix-dllexport.diff16
-rw-r--r--vcpkg/ports/mpg123/have-fpu.diff13
-rw-r--r--vcpkg/ports/mpg123/pkgconfig.diff66
-rw-r--r--vcpkg/ports/mpg123/portfile.cmake43
-rw-r--r--vcpkg/ports/mpg123/vcpkg.json27
5 files changed, 165 insertions, 0 deletions
diff --git a/vcpkg/ports/mpg123/fix-dllexport.diff b/vcpkg/ports/mpg123/fix-dllexport.diff
new file mode 100644
index 0000000..efd15ce
--- /dev/null
+++ b/vcpkg/ports/mpg123/fix-dllexport.diff
@@ -0,0 +1,16 @@
+diff --git a/src/libmpg123/mpg123lib_intern.h b/src/libmpg123/mpg123lib_intern.h
+index b46c419..7cd5504 100644
+--- a/src/libmpg123/mpg123lib_intern.h
++++ b/src/libmpg123/mpg123lib_intern.h
+@@ -21,7 +21,10 @@
+
+ // Only portable API plays a role in the library itself, outside of lfs_wrap.c.
+ // Also, we need to ensure no suffix renaming for the primary implementations.
+-#define MPG123_PORTABLE_API
++// But: The _definition_ of non-portable API needs to be present for those
++// primary implementations being exported for DLL builds. Just the largefile
++// renaming needs to be skipped!
++#define MPG123_NO_LARGENAME
+ #define MPG123_ENUM_API
+ #include "mpg123.h"
+
diff --git a/vcpkg/ports/mpg123/have-fpu.diff b/vcpkg/ports/mpg123/have-fpu.diff
new file mode 100644
index 0000000..57eb3cd
--- /dev/null
+++ b/vcpkg/ports/mpg123/have-fpu.diff
@@ -0,0 +1,13 @@
+diff --git a/ports/cmake/src/CMakeLists.txt b/ports/cmake/src/CMakeLists.txt
+index 32bc03c..acd420f 100644
+--- a/ports/cmake/src/CMakeLists.txt
++++ b/ports/cmake/src/CMakeLists.txt
+@@ -188,6 +188,8 @@ check_cpu_arch_arm64(ARCH_IS_ARM64)
+
+ if(WIN32 OR (ARCH_IS_ARM64 AND APPLE))
+ set(HAVE_FPU 1)
++elseif(CMAKE_CROSSCOMPILING OR DEFINED HAVE_FPU)
++ set(HAVE_FPU 1 CACHE STRING "Override in triplet if needed")
+ else()
+ cmake_host_system_information(RESULT HAVE_FPU QUERY HAS_FPU)
+ endif()
diff --git a/vcpkg/ports/mpg123/pkgconfig.diff b/vcpkg/ports/mpg123/pkgconfig.diff
new file mode 100644
index 0000000..5e2119c
--- /dev/null
+++ b/vcpkg/ports/mpg123/pkgconfig.diff
@@ -0,0 +1,66 @@
+diff --git a/ports/cmake/src/CMakeLists.txt b/ports/cmake/src/CMakeLists.txt
+index 32bc03c..952141b 100644
+--- a/ports/cmake/src/CMakeLists.txt
++++ b/ports/cmake/src/CMakeLists.txt
+@@ -450,3 +450,7 @@ if(UNIX AND NOT PORTABLE_API)
+ endif()
+
+ configure_file(config.cmake.h.in config.h)
++
++set(LIBMPG123_LIBS "${LIBMPG123_LIBS}" PARENT_SCOPE)
++set(LIBOUT123_LIBS "${LIBOUT123_LIBS}" PARENT_SCOPE)
++set(LIBSYN123_LIBS "${LIBSYN123_LIBS}" PARENT_SCOPE)
+diff --git a/ports/cmake/src/libmpg123/CMakeLists.txt b/ports/cmake/src/libmpg123/CMakeLists.txt
+index 7cb08be..3e1c042 100644
+--- a/ports/cmake/src/libmpg123/CMakeLists.txt
++++ b/ports/cmake/src/libmpg123/CMakeLists.txt
+@@ -235,6 +235,13 @@ else()
+ target_sources(${TARGET} PRIVATE ${PLATFORM_SOURCES})
+ endif()
+
++if(HAVE_M)
++ string(APPEND LIBMPG123_LIBS " -lm")
++endif()
++if(WANT_WIN32_UNICODE)
++ string(APPEND LIBMPG123_LIBS " -lshlwapi")
++endif()
++set(LIBMPG123_LIBS "${LIBMPG123_LIBS}" PARENT_SCOPE)
+ target_link_libraries(${TARGET} PRIVATE
+ $<$<BOOL:${HAVE_M}>:m>
+ $<$<BOOL:${WANT_WIN32_UNICODE}>:shlwapi>)
+diff --git a/ports/cmake/src/libout123/CMakeLists.txt b/ports/cmake/src/libout123/CMakeLists.txt
+index d0fe358..cd800d8 100644
+--- a/ports/cmake/src/libout123/CMakeLists.txt
++++ b/ports/cmake/src/libout123/CMakeLists.txt
+@@ -18,6 +18,13 @@ add_library(${TARGET}
+
+ set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME out123)
+
++if(HAVE_UNIX_DL)
++ string(APPEND LIBOUT123_LIBS " -ldl")
++endif()
++if(WANT_WIN32_UNICODE)
++ string(APPEND LIBOUT123_LIBS " -lshlwapi")
++endif()
++set(LIBOUT123_LIBS "${LIBOUT123_LIBS}" PARENT_SCOPE)
+ target_link_libraries(${TARGET} PRIVATE
+ $<TARGET_NAME_IF_EXISTS:defaultmodule>
+ $<$<BOOL:${HAVE_UNIX_DL}>:dl>
+diff --git a/ports/cmake/src/libsyn123/CMakeLists.txt b/ports/cmake/src/libsyn123/CMakeLists.txt
+index 6edb5b7..0b660f5 100644
+--- a/ports/cmake/src/libsyn123/CMakeLists.txt
++++ b/ports/cmake/src/libsyn123/CMakeLists.txt
+@@ -19,6 +19,13 @@ target_include_directories(${TARGET} INTERFACE
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
+
++if(HAVE_M)
++ string(APPEND LIBSYN123_LIBS " -lm")
++endif()
++if(WANT_WIN32_UNICODE)
++ string(APPEND LIBSYN123_LIBS " -lshlwapi")
++endif()
++set(LIBSYN123_LIBS "${LIBSYN123_LIBS}" PARENT_SCOPE)
+ target_link_libraries(${TARGET} PRIVATE
+ $<$<BOOL:${HAVE_M}>:m>
+ $<$<BOOL:${WANT_WIN32_UNICODE}>:shlwapi>)
diff --git a/vcpkg/ports/mpg123/portfile.cmake b/vcpkg/ports/mpg123/portfile.cmake
new file mode 100644
index 0000000..8a92c99
--- /dev/null
+++ b/vcpkg/ports/mpg123/portfile.cmake
@@ -0,0 +1,43 @@
+vcpkg_from_sourceforge(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mpg123/mpg123
+ REF "${VERSION}"
+ FILENAME "mpg123-${VERSION}.tar.bz2"
+ SHA512 dccb640b0845061811cb41bf145587e7093556d686d49a748232b079659b46284b6cc40db42d14febceac11277c58edf2b69d1b4c46c223829a3d15478e2e26c
+ PATCHES
+ fix-dllexport.diff
+ have-fpu.diff
+ pkgconfig.diff
+)
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ yasm_tool_helper(APPEND_TO_PATH)
+endif()
+
+vcpkg_list(SET options)
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_list(APPEND options "-DLIBMPG123_LIBS=-lshlwapi")
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}/ports/cmake"
+ OPTIONS
+ -DUSE_MODULES=OFF
+ -DBUILD_PROGRAMS=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_ALSA=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON
+ ${options}
+ MAYBE_UNUSED_VARIABLES
+ BUILD_PROGRAMS
+ CMAKE_DISABLE_FIND_PACKAGE_ALSA
+ CMAKE_DISABLE_FIND_PACKAGE_PkgConfig
+)
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT})
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/mpg123/vcpkg.json b/vcpkg/ports/mpg123/vcpkg.json
new file mode 100644
index 0000000..b4f71a6
--- /dev/null
+++ b/vcpkg/ports/mpg123/vcpkg.json
@@ -0,0 +1,27 @@
+{
+ "name": "mpg123",
+ "version": "1.32.9",
+ "port-version": 1,
+ "description": "mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3).",
+ "homepage": "https://sourceforge.net/projects/mpg123/",
+ "license": "LGPL-2.1-or-later",
+ "supports": "!xbox",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ {
+ "name": "yasm",
+ "host": true,
+ "features": [
+ "tools"
+ ],
+ "platform": "windows & !mingw"
+ }
+ ]
+}