This commit is contained in:
tildearrow 2025-10-23 15:24:00 -05:00
parent 39184751d7
commit eb0372edc5
24 changed files with 338 additions and 439 deletions

View file

@ -310,10 +310,12 @@ endif()
if (WITH_MPEG)
list(APPEND DEPENDENCIES_DEFINES HAVE_MP3_EXPORT)
# why do I have to provide an absolute path?
set(MP3LAME_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extern/lame/include CACHE STRING "LAME include dir" FORCE)
set(MP3LAME_INCLUDE_DIR extern/lame/include CACHE STRING "LAME include dir" FORCE)
set(MP3LAME_LIBRARY mp3lame CACHE STRING "LAME library" FORCE)
add_subdirectory(extern/lame EXCLUDE_FROM_ALL)
add_subdirectory(extern/mpg123/ports/cmake EXCLUDE_FROM_ALL)
add_subdirectory(extern/mpg123 EXCLUDE_FROM_ALL)
set(mpg123_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extern/mpg123/src/include CACHE STRING "mpg123 include dir" FORCE)
set(mpg123_LIBRARY mpg123 CACHE STRING "mpg123 library" FORCE)
endif()
if (USE_SNDFILE)

View file

@ -52,6 +52,6 @@ include/lame/lame.h
)
target_compile_definitions(mp3lame PRIVATE ${LAME_DEFINES})
target_include_directories(mp3lame PRIVATE config_ta include)
target_include_directories(mp3lame PUBLIC include PRIVATE config_ta)
add_library(mp3lame::mp3lame ALIAS mp3lame)

View file

@ -21,7 +21,7 @@ endif()
# tildearrow: disabled for vendored libogg.
option(INSTALL_DOCS "Install documentation" OFF)
option(INSTALL_PKG_CONFIG_MODULE "Install ogg.pc file" OFF)
option(INSTALL_CMAKE_PACKAGE_MODULE "Install CMake package configuration module" OFF)
option(INSTALL_CMAKE_PACKAGE_MODULE "Install CMake package configuration module" ON)
# Extract library version from configure.ac
string(REGEX MATCH "LIB_CURRENT=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})

View file

@ -98,6 +98,7 @@ if (ENABLE_EXTERNAL_LIBS AND NOT (Vorbis_FOUND OR FLAC_FOUND OR OPUS_FOUND))
set (ENABLE_EXTERNAL_LIBS OFF)
endif()
if(ENABLE_MPEG AND (NOT HAVE_MPEG_LIBS))
message(FATAL_ERROR "NO MPEG FOR YOU")
set (ENABLE_MPEG OFF)
endif()
if (BUILD_REGTEST AND (NOT SQLITE3_FOUND))
@ -396,7 +397,8 @@ target_link_libraries (sndfile
$<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:FLAC::FLAC>
$<$<AND:$<BOOL:${ENABLE_EXPERIMENTAL}>,$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>,$<BOOL:${HAVE_SPEEX}>>:Speex::Speex>
$<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Opus::opus>
$<$<BOOL:${HAVE_MPEG}>:MPG123::libmpg123>
# tildearrow: oh my freaking
$<$<BOOL:${HAVE_MPEG}>:MPG123::mpg123>
$<$<BOOL:${HAVE_MPEG}>:mp3lame::mp3lame>
)
set_target_properties (sndfile PROPERTIES

View file

@ -9,7 +9,7 @@ Imported Targets
This module provides the following imported targets, if found:
``MPG123::libmpg123``
``MPG123::mpg123``
The mpg123 library
Result Variables
@ -40,7 +40,7 @@ if (mpg123_INCLUDE_DIR)
endif ()
find_package (PkgConfig QUIET)
pkg_check_modules(PC_MPG123 QUIET libmpg123>=1.25.10)
pkg_check_modules(PC_MPG123 QUIET mpg123>=1.25.10)
find_path (mpg123_INCLUDE_DIR mpg123.h
HINTS
@ -83,9 +83,9 @@ find_package_handle_standard_args (mpg123
mpg123_VERSION
)
if (mpg123_FOUND AND NOT TARGET MPG123::libmpg123)
add_library (MPG123::libmpg123 UNKNOWN IMPORTED)
set_target_properties (MPG123::libmpg123
if (mpg123_FOUND AND NOT TARGET MPG123::mpg123)
add_library (MPG123::mpg123 UNKNOWN IMPORTED)
set_target_properties (MPG123::mpg123
PROPERTIES
IMPORTED_LOCATION "${mpg123_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${mpg123_INCLUDE_DIR}"

View file

@ -51,7 +51,8 @@ endif ()
find_package (mp3lame)
find_package (mpg123 1.25.10)
if (TARGET mp3lame::mp3lame AND (TARGET MPG123::libmpg123))
# tildearrow: modified for fucking passing the build
if (TARGET mp3lame::mp3lame AND (TARGET MPG123::mpg123))
set (HAVE_MPEG_LIBS 1)
else ()
set (HAVE_MPEG_LIBS 0)

View file

@ -1 +1,44 @@
# tildearrow: CMake port of Autotools build scripts.
cmake_minimum_required(VERSION 3.0...3.19)
include(cmake/read_api_version.cmake)
read_api_version(MPG123_VERSION)
project(mpg123 VERSION ${MPG123_VERSION} LANGUAGES C ASM)
#set(CMAKE_C_STANDARD 99)
# tildearrow: disable for vendored build.
include(cmake/search_libs.cmake)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
set(PACKAGE_VERSION ${PROJECT_VERSION})
add_subdirectory("src")
install(
EXPORT targets
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
NAMESPACE MPG123::)
configure_package_config_file(
mpg123-config.cmake.in mpg123-config.cmake
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
write_basic_package_version_file(
mpg123-config-version.cmake COMPATIBILITY AnyNewerVersion)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/mpg123-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/mpg123-config-version.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libmpg123.pc.in" libmpg123.pc @ONLY)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/libmpg123.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")

View file

@ -1,6 +1,6 @@
function(read_api_version project_version)
file( READ "${CMAKE_CURRENT_SOURCE_DIR}/../../src/version.h" version_h )
file( READ "${CMAKE_CURRENT_SOURCE_DIR}/src/version.h" version_h )
string( REGEX MATCH "#define +MPG123_MAJOR +([0-9]+)" result ${version_h} )
set( major_version ${CMAKE_MATCH_1})

View file

@ -1,60 +0,0 @@
cmake_minimum_required(VERSION 3.12)
include(cmake/read_api_version.cmake)
read_api_version(MPG123_VERSION)
project(mpg123 VERSION ${MPG123_VERSION} LANGUAGES C ASM)
set(CMAKE_C_STANDARD 99)
option(BUILD_LIBOUT123 "build libout123 (prerequisite for included programs)" ON)
if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
message(WARNING "Output module is not implemented for '${CMAKE_SYSTEM_NAME}' platform.")
message(WARNING "To prevent build errors 'BUILD_LIBOUT123' option is set to OFF.")
set(BUILD_LIBOUT123 OFF)
endif()
include(cmake/search_libs.cmake)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
set(PACKAGE_VERSION ${PROJECT_VERSION})
add_subdirectory("src")
#install(
# EXPORT targets
# DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
# NAMESPACE MPG123::)
configure_package_config_file(
mpg123-config.cmake.in mpg123-config.cmake
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
write_basic_package_version_file(
mpg123-config-version.cmake COMPATIBILITY AnyNewerVersion)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/mpg123-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/mpg123-config-version.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../libmpg123.pc.in" libmpg123.pc @ONLY)
if(BUILD_LIBOUT123)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../libout123.pc.in" libout123.pc @ONLY)
endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../libsyn123.pc.in" libsyn123.pc @ONLY)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/libmpg123.pc"
"${CMAKE_CURRENT_BINARY_DIR}/libsyn123.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
if(BUILD_LIBOUT123)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/libout123.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endif()

6
extern/mpg123/ports/cmake/README.md vendored Normal file
View file

@ -0,0 +1,6 @@
# MODIFIED
this directory's contents have been moved out of here, to the top of this project.
CMake refuses to find the libmpg123 target.
- tildearrow

View file

@ -1,260 +0,0 @@
cmake_minimum_required(VERSION 3.12)
option(NO_FEATURE_REPORT "Disable feature report function" OFF)
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
option(WITH_SSE "x86: build with SSE support if detected. Turn OFF for older devices where autodetection is misleading." ON)
endif()
include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/")
if(HAVE_STDLIB_H)
set(INCLUDE_STDLIB_H "#include <stdlib.h>")
else()
set(INCLUDE_STDLIB_H "/* #include <stdlib.h> is not available on this system */")
endif()
if(HAVE_SYS_TYPES_H)
set(INCLUDE_SYS_TYPE_H "#include <sys/types.h>")
else()
set(INCLUDE_SYS_TYPE_H "/* #include <sys/types.h> is not available on this system */")
endif()
# PPC with AltiVec is missing. But probably obsolete enough for CMake users.
if(ARCH_IS_X64)
set(MACHINE amd64)
elseif(ARCH_IS_X86)
set(MACHINE x86)
elseif(ARCH_IS_ARM64)
set(MACHINE arm64)
elseif(ARCH_IS_ARM32)
set(MACHINE arm32)
else()
message(WARNING "Unknown processor. Using generic optimizations.")
set(MACHINE generic)
endif()
message(STATUS "Detected machine: ${MACHINE}")
set(TARGET lib${PROJECT_NAME})
add_library(${TARGET}
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/parse.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/frame.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/format.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/equalizer.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/id3.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/optimize.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/readers.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/tabinit.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/libmpg123.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/index.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_ICY}>>:icy.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_ICY}>>:icy2utf8.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_LAYER1}>>:layer1.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<OR:$<BOOL:${NO_LAYER1}>,$<BOOL:${NO_LAYER2}>>>:layer2.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_LAYER3}>>:layer3.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_NTOM}>>:ntom.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_8BIT}>>:synth_8bit.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_16BIT}>>:synth.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<AND:$<BOOL:${HAVE_FPU}>,$<NOT:$<BOOL:${NO_32BIT}>>>:synth_s32.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<AND:$<BOOL:${HAVE_FPU}>,$<NOT:$<BOOL:${NO_REAL}>>>:synth_real.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_STRING}>>:stringbuf.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${NO_FEATURE_REPORT}>>:feature.c>"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/$<$<NOT:$<BOOL:${PORTABLE_API}>>:lfs_wrap.c>"
$<TARGET_OBJECTS:compat>)
if(MSVC)
if(MACHINE MATCHES "x86|amd64")
find_program(YASM_ASSEMBLER yasm)
if(NOT YASM_ASSEMBLER)
message(WARNING "Couldn't find yasm assembler for optimizded decoders. Please set YASM_ASSEMBLER variable")
set(MACHINE generic)
endif()
else()
message(WARNING "Need work to support non-x86 assembly optimizations with MSVC.")
set(MACHINE generic)
endif()
endif()
if(MACHINE STREQUAL "amd64")
if(HAVE_FPU)
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_X86_64 OPT_AVX OPT_GENERIC OPT_GENERIC_DITHER)
set(PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct36_x86_64.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_x86_64_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_x86_64_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_x86_64_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_x86_64_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_x86_64_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct36_avx.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_avx_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_avx_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_avx_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/getcpuflags_x86_64.S")
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dither.c")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_x86_64_accurate.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_x86_64_accurate.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_avx_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_x86_64.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_x86_64.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_x86_64.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_avx.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_avx.S")
endif()
else()
set(PLATFORM_DEFINITIONS OPT_GENERIC)
endif()
elseif(MACHINE STREQUAL "x86")
if(TRUE)
set(PLATFORM_DEFINITIONS OPT_I386)
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_i386.c")
endif()
cmake_host_system_information(RESULT HAVE_SSE QUERY HAS_SSE)
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
set(HAVE_SSE ${WITH_SSE})
endif()
if(HAVE_SSE)
set(PLATFORM_DEFINITIONS OPT_SSE)
set(PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/tabinit_mmx.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct36_sse.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_sse_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_sse_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_sse_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_sse_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_sse_s32.S")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_sse_accurate.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_sse_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_sse.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_sse.S")
endif()
endif()
elseif(MACHINE STREQUAL "arm64")
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_GENERIC OPT_GENERIC_DITHER OPT_NEON64)
set(PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct36_neon64.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_neon64_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon64_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon64_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon64_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon64_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/check_neon.S")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon64_accurate.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon64_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon64.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon64.S")
endif()
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dither.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/getcpuflags_arm.c")
elseif(MACHINE STREQUAL "arm32")
if(HAVE_FPU)
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_GENERIC OPT_GENERIC_DITHER OPT_NEON)
set(PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct36_neon.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_neon_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon_float.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon_s32.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/check_neon.S")
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/getcpuflags_arm.c")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon_accurate.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_neon.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_neon.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_stereo_neon.S")
endif()
target_sources(${TARGET} PRIVATE ${PLATFORM_SOURCES})
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dither.c")
else()
set(PLATFORM_DEFINITIONS OPT_ARM)
if(ACCURATE_ROUNDING)
set(PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_arm_accurate.S")
else()
set(PLATFORM_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_arm.S")
endif()
target_sources(${TARGET} PRIVATE ${PLATFORM_SOURCES})
endif()
elseif(MACHINE STREQUAL "generic")
set(PLATFORM_DEFINITIONS OPT_GENERIC)
endif()
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME mpg123)
target_compile_definitions(${TARGET} PRIVATE
$<$<BOOL:$<TARGET_PROPERTY:POSITION_INDEPENDENT_CODE>>:PIC>)
target_compile_definitions(${TARGET} PRIVATE
${PLATFORM_DEFINITIONS}
$<$<BOOL:${HAVE_FPU}>:REAL_IS_FLOAT>
$<$<NOT:$<BOOL:${HAVE_FPU}>>:REAL_IS_FIXED>)
if(MSVC AND MACHINE MATCHES "x86|amd64" AND YASM_ASSEMBLER)
list(TRANSFORM PLATFORM_DEFINITIONS PREPEND /D)
foreach(FILE ${PLATFORM_SOURCES})
get_filename_component(FILENAME ${FILE} NAME)
add_custom_command(
OUTPUT ${FILENAME}.asm
COMMAND ${CMAKE_C_COMPILER} /DASMALIGN_BALIGN ${PLATFORM_DEFINITIONS}
/I"${PROJECT_SOURCE_DIR}/../../src" /I"${PROJECT_BINARY_DIR}/src" /P /Fi${FILENAME}.asm /Tc "${FILE}"
DEPENDS ${FILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
add_custom_command(
OUTPUT ${FILENAME}.obj
COMMAND ${YASM_ASSEMBLER} -a x86 -m ${MACHINE} -p gas -r raw -f win32 -g null -o ${FILENAME}.obj ${FILENAME}.asm
DEPENDS ${FILENAME}.asm
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
target_sources(${TARGET} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.obj")
endforeach()
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>)
target_include_directories(${TARGET} INTERFACE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
install(TARGETS ${TARGET} EXPORT targets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/include/mpg123.h"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/include/fmt123.h"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.0...3.19)
include(CheckCSourceCompiles)
include(CheckFunctionExists)
@ -350,14 +350,14 @@ option(NO_REAL "no real (floating point) output" OFF)
option(NO_STRING "no string API (this will disable ID3v2; main mpg123 won't build anymore)" OFF)
cmake_dependent_option(NO_ID3V2 "no ID3v2 parsing" OFF "NOT NO_STRING" ON)
option(SYN123_NO_CASES "include special cases for likely parameter values (channel count, encoding sizes in libsyn123 routines) in the hope of better optimization at the expense of some code bloat (default enabled)" OFF)
cmake_dependent_option(USE_MODULES "dynamically loadable output modules" ON "BUILD_SHARED_LIBS;HAVE_WIN_DL OR HAVE_UNIX_DL" OFF)
cmake_dependent_option(USE_MODULES "dynamically loadable output modules" OFF "BUILD_SHARED_LIBS;HAVE_WIN_DL OR HAVE_UNIX_DL" OFF)
option(USE_NEW_HUFFTABLE "use new huffman decoding scheme by Taihei (faster on modern CPUs at least, so on by default)" ON)
# what a hack
include_directories(
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/"
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/include")
"include")
# "${CMAKE_CURRENT_SOURCE_DIR}"
add_compile_definitions(
$<$<BOOL:${WIN32}>:_CRT_SECURE_NO_WARNINGS>
@ -369,105 +369,10 @@ add_compile_options(
add_subdirectory("compat")
add_subdirectory("libmpg123")
if(BUILD_LIBOUT123)
add_subdirectory("libout123")
endif()
add_subdirectory("libsyn123")
if(UNIX AND NOT PORTABLE_API)
option(BUILD_PROGRAMS "Build programs (mpg123 executable and others)" ON)
if(BUILD_PROGRAMS)
if(HAVE_FORK AND HAVE_EXECVP AND NETWORK)
set(NET123 ON)
set(NET123_EXEC ON)
endif()
if(HAVE_TERMIOS)
set(TERM_POSIX ON)
else()
set(TERM_NONE ON)
endif()
add_subdirectory("tests")
if(BUILD_LIBOUT123)
add_executable(${PROJECT_NAME}
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/audio.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/common.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/sysutil.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/control_generic.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/equalizer.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/getlopt.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/httpget.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/resolver.c"
$<$<BOOL:${NET123_EXEC}>:${CMAKE_CURRENT_SOURCE_DIR}/../../../src/net123_exec.c>
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/genre.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/mpg123.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/metaprint.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/local.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/playlist.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/streamdump.c"
$<$<BOOL:${TERM_POSIX}>:${CMAKE_CURRENT_SOURCE_DIR}/../../../src/term_posix.c>
$<$<BOOL:${TERM_NONE}>:${CMAKE_CURRENT_SOURCE_DIR}/../../../src/term_none.c>
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/term.c")
target_link_libraries(${PROJECT_NAME} PRIVATE
compat
lib${PROJECT_NAME}
libout123
libsyn123
${GETHOSTBYNAME_LIB}
${SOCKET_LIB}
$<$<BOOL:${HAVE_M}>:m>)
add_executable(out123
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/sysutil.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/getlopt.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/filters.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/local.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/out123.c")
target_link_libraries(out123 PRIVATE
lib${PROJECT_NAME}
libout123
libsyn123)
install(TARGETS ${PROJECT_NAME} out123
EXPORT targets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
endif()
add_executable(${PROJECT_NAME}-id3dump
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/mpg123-id3dump.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/getlopt.c")
target_link_libraries(${PROJECT_NAME}-id3dump PRIVATE
lib${PROJECT_NAME})
add_executable(${PROJECT_NAME}-strip
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/mpg123-strip.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/getlopt.c")
target_link_libraries(${PROJECT_NAME}-strip PRIVATE
lib${PROJECT_NAME}
libsyn123)
install(TARGETS ${PROJECT_NAME}-id3dump ${PROJECT_NAME}-strip
EXPORT targets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../man1/mpg123.1"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../man1/out123.1"
DESTINATION "${CMAKE_INSTALL_MANDIR}")
endif()
endif()
#add_subdirectory("libsyn123")
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)
#set(LIBSYN123_LIBS "${LIBSYN123_LIBS}" PARENT_SCOPE)

View file

@ -1,19 +1,19 @@
set(TARGET compat)
add_library(${TARGET} OBJECT
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat.c"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_str.c")
"compat.c"
"compat_str.c")
if(BUILD_SHARED_LIBS)
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif()
add_library(${TARGET}_dl OBJECT
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_dl.c")
"compat_dl.c")
if(BUILD_SHARED_LIBS)
set_target_properties(${TARGET}_dl PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif()
add_library(${TARGET}_str OBJECT
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_str.c")
"compat_str.c")
if(BUILD_SHARED_LIBS)
set_target_properties(${TARGET}_str PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif()

View file

@ -0,0 +1,260 @@
cmake_minimum_required(VERSION 3.0...3.19)
option(NO_FEATURE_REPORT "Disable feature report function" OFF)
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
option(WITH_SSE "x86: build with SSE support if detected. Turn OFF for older devices where autodetection is misleading." ON)
endif()
if(HAVE_STDLIB_H)
set(INCLUDE_STDLIB_H "#include <stdlib.h>")
else()
set(INCLUDE_STDLIB_H "/* #include <stdlib.h> is not available on this system */")
endif()
if(HAVE_SYS_TYPES_H)
set(INCLUDE_SYS_TYPE_H "#include <sys/types.h>")
else()
set(INCLUDE_SYS_TYPE_H "/* #include <sys/types.h> is not available on this system */")
endif()
# PPC with AltiVec is missing. But probably obsolete enough for CMake users.
if(ARCH_IS_X64)
set(MACHINE amd64)
elseif(ARCH_IS_X86)
set(MACHINE x86)
elseif(ARCH_IS_ARM64)
set(MACHINE arm64)
elseif(ARCH_IS_ARM32)
set(MACHINE arm32)
else()
message(WARNING "Unknown processor. Using generic optimizations.")
set(MACHINE generic)
endif()
message(STATUS "Detected machine: ${MACHINE}")
set(TARGET mpg123)
add_library(${TARGET}
"parse.c"
"frame.c"
"format.c"
"dct64.c"
"equalizer.c"
"id3.c"
"optimize.c"
"readers.c"
"tabinit.c"
"libmpg123.c"
"index.c"
"$<$<NOT:$<BOOL:${NO_ICY}>>:icy.c>"
"$<$<NOT:$<BOOL:${NO_ICY}>>:icy2utf8.c>"
"$<$<NOT:$<BOOL:${NO_LAYER1}>>:layer1.c>"
"$<$<NOT:$<OR:$<BOOL:${NO_LAYER1}>,$<BOOL:${NO_LAYER2}>>>:layer2.c>"
"$<$<NOT:$<BOOL:${NO_LAYER3}>>:layer3.c>"
"$<$<NOT:$<BOOL:${NO_NTOM}>>:ntom.c>"
"$<$<NOT:$<BOOL:${NO_8BIT}>>:synth_8bit.c>"
"$<$<NOT:$<BOOL:${NO_16BIT}>>:synth.c>"
"$<$<AND:$<BOOL:${HAVE_FPU}>,$<NOT:$<BOOL:${NO_32BIT}>>>:synth_s32.c>"
"$<$<AND:$<BOOL:${HAVE_FPU}>,$<NOT:$<BOOL:${NO_REAL}>>>:synth_real.c>"
"$<$<NOT:$<BOOL:${NO_STRING}>>:stringbuf.c>"
"$<$<NOT:$<BOOL:${NO_FEATURE_REPORT}>>:feature.c>"
"$<$<NOT:$<BOOL:${PORTABLE_API}>>:lfs_wrap.c>"
$<TARGET_OBJECTS:compat>)
if(MSVC)
if(MACHINE MATCHES "x86|amd64")
find_program(YASM_ASSEMBLER yasm)
if(NOT YASM_ASSEMBLER)
message(WARNING "Couldn't find yasm assembler for optimizded decoders. Please set YASM_ASSEMBLER variable")
set(MACHINE generic)
endif()
else()
message(WARNING "Need work to support non-x86 assembly optimizations with MSVC.")
set(MACHINE generic)
endif()
endif()
if(MACHINE STREQUAL "amd64")
if(HAVE_FPU)
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_X86_64 OPT_AVX OPT_GENERIC OPT_GENERIC_DITHER)
set(PLATFORM_SOURCES
"dct36_x86_64.S"
"dct64_x86_64_float.S"
"synth_x86_64_float.S"
"synth_x86_64_s32.S"
"synth_stereo_x86_64_float.S"
"synth_stereo_x86_64_s32.S"
"dct36_avx.S"
"dct64_avx_float.S"
"synth_stereo_avx_float.S"
"synth_stereo_avx_s32.S"
"getcpuflags_x86_64.S")
target_sources(${TARGET} PRIVATE
"dither.c")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"synth_x86_64_accurate.S"
"synth_stereo_x86_64_accurate.S"
"synth_stereo_avx_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"dct64_x86_64.S"
"synth_x86_64.S"
"synth_stereo_x86_64.S"
"synth_stereo_avx.S"
"dct64_avx.S")
endif()
else()
set(PLATFORM_DEFINITIONS OPT_GENERIC)
endif()
elseif(MACHINE STREQUAL "x86")
if(TRUE)
set(PLATFORM_DEFINITIONS OPT_I386)
target_sources(${TARGET} PRIVATE
"dct64_i386.c")
endif()
cmake_host_system_information(RESULT HAVE_SSE QUERY HAS_SSE)
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
set(HAVE_SSE ${WITH_SSE})
endif()
if(HAVE_SSE)
set(PLATFORM_DEFINITIONS OPT_SSE)
set(PLATFORM_SOURCES
"tabinit_mmx.S"
"dct36_sse.S"
"dct64_sse_float.S"
"synth_sse_float.S"
"synth_stereo_sse_float.S"
"synth_sse_s32.S"
"synth_stereo_sse_s32.S")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"synth_sse_accurate.S"
"synth_stereo_sse_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"dct64_sse.S"
"synth_sse.S")
endif()
endif()
elseif(MACHINE STREQUAL "arm64")
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_GENERIC OPT_GENERIC_DITHER OPT_NEON64)
set(PLATFORM_SOURCES
"dct36_neon64.S"
"dct64_neon64_float.S"
"synth_neon64_float.S"
"synth_neon64_s32.S"
"synth_stereo_neon64_float.S"
"synth_stereo_neon64_s32.S"
"check_neon.S")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"synth_neon64_accurate.S"
"synth_stereo_neon64_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"synth_neon64.S"
"synth_stereo_neon64.S")
endif()
target_sources(${TARGET} PRIVATE
"dither.c"
"getcpuflags_arm.c")
elseif(MACHINE STREQUAL "arm32")
if(HAVE_FPU)
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_GENERIC OPT_GENERIC_DITHER OPT_NEON)
set(PLATFORM_SOURCES
"dct36_neon.S"
"dct64_neon_float.S"
"synth_neon_float.S"
"synth_neon_s32.S"
"synth_stereo_neon_float.S"
"synth_stereo_neon_s32.S"
"check_neon.S")
target_sources(${TARGET} PRIVATE
"getcpuflags_arm.c")
if(ACCURATE_ROUNDING)
list(APPEND PLATFORM_SOURCES
"synth_neon_accurate.S"
"synth_stereo_neon_accurate.S")
else()
list(APPEND PLATFORM_SOURCES
"dct64_neon.S"
"synth_neon.S"
"synth_stereo_neon.S")
endif()
target_sources(${TARGET} PRIVATE ${PLATFORM_SOURCES})
target_sources(${TARGET} PRIVATE
"dither.c")
else()
set(PLATFORM_DEFINITIONS OPT_ARM)
if(ACCURATE_ROUNDING)
set(PLATFORM_SOURCES
"synth_arm_accurate.S")
else()
set(PLATFORM_SOURCES
"synth_arm.S")
endif()
target_sources(${TARGET} PRIVATE ${PLATFORM_SOURCES})
endif()
elseif(MACHINE STREQUAL "generic")
set(PLATFORM_DEFINITIONS OPT_GENERIC)
endif()
#set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME mpg123)
target_compile_definitions(${TARGET} PRIVATE
$<$<BOOL:$<TARGET_PROPERTY:POSITION_INDEPENDENT_CODE>>:PIC>)
target_compile_definitions(${TARGET} PRIVATE
${PLATFORM_DEFINITIONS}
$<$<BOOL:${HAVE_FPU}>:REAL_IS_FLOAT>
$<$<NOT:$<BOOL:${HAVE_FPU}>>:REAL_IS_FIXED>)
if(MSVC AND MACHINE MATCHES "x86|amd64" AND YASM_ASSEMBLER)
list(TRANSFORM PLATFORM_DEFINITIONS PREPEND /D)
foreach(FILE ${PLATFORM_SOURCES})
get_filename_component(FILENAME ${FILE} NAME)
add_custom_command(
OUTPUT ${FILENAME}.asm
COMMAND ${CMAKE_C_COMPILER} /DASMALIGN_BALIGN ${PLATFORM_DEFINITIONS}
/I"${PROJECT_SOURCE_DIR}/src" /I"${PROJECT_BINARY_DIR}/src" /P /Fi${FILENAME}.asm /Tc "${FILE}"
DEPENDS ${FILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
add_custom_command(
OUTPUT ${FILENAME}.obj
COMMAND ${YASM_ASSEMBLER} -a x86 -m ${MACHINE} -p gas -r raw -f win32 -g null -o ${FILENAME}.obj ${FILENAME}.asm
DEPENDS ${FILENAME}.asm
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
target_sources(${TARGET} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/${FILENAME}.obj")
endforeach()
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>)
target_include_directories(${TARGET} INTERFACE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
install(TARGETS ${TARGET} EXPORT targets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../src/include/mpg123.h"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../src/include/fmt123.h"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
# tildearrow: necessary
export(EXPORT targets NAMESPACE MPG123:: FILE mpg123Targets.cmake)