Initial commit of mpg123-1.29.3
This commit is contained in:
25
ports/README
Normal file
25
ports/README
Normal file
@@ -0,0 +1,25 @@
|
||||
DISCLAIMER: The contents of the ports directory are included for convenience,
|
||||
but they usually contain files contributed by various people, not the core
|
||||
mpg123 team. The stuff is not tested by us. In some cases, it's even
|
||||
impossible to tell what is really inside. Use at your own risk (well, like
|
||||
all Free Software, actually;-).
|
||||
|
||||
This directory contains some (contributed) works covering usage and/or building
|
||||
of mpg123/libmpg123 from different programming environments. Note that those
|
||||
may be a bit outdated (especially when a file is added/removed in libmpg123
|
||||
sources); as the team lacks resource to test everything. But in any case,
|
||||
the ports can provide a good starting point on the respective platform, to get
|
||||
it to work with minimal fuzz.
|
||||
|
||||
- cmake: CMake build to get started on non-Unix-like platforms
|
||||
- Delphi: mpg123_.pas
|
||||
Unit for linking against libmpg123 (Win32, DLL).
|
||||
...by Arthur Pires <arthurprs@gmail.com>
|
||||
- Sony PSP: Sony_PSP/; building libmpg123 for the PSP (used for the MODO player).
|
||||
...by Bastian Pflieger <wb@illogical.de>
|
||||
- Xcode contains the project file for building and using libmpg123 with
|
||||
Xcode for Mac and iOS (arm and simulator builds). Please add the
|
||||
ports/Xcode folder to the header search path of your project so that
|
||||
Xcode can find the right mpg123.h and config.h. Then drag the mpg123
|
||||
Xcode project into your own project. Finally in your build target, build
|
||||
phases, add mpg123-ios or mpg123-mac to the libraries to link.
|
||||
38
ports/Sony_PSP/Makefile.psp
Normal file
38
ports/Sony_PSP/Makefile.psp
Normal file
@@ -0,0 +1,38 @@
|
||||
PSPSDK = $(shell psp-config --pspsdk-path)
|
||||
PSPDIR = $(shell psp-config --psp-prefix)
|
||||
|
||||
#DEFINES := PSP OPT_GENERIC REAL_IS_FIXED HAVE_CONFIG_H
|
||||
DEFINES := PSP OPT_GENERIC REAL_IS_FLOAT HAVE_CONFIG_H
|
||||
#DEFINES := PSP OPT_GENERIC FLOATOUT REAL_IS_FLOAT HAVE_CONFIG_H
|
||||
DEFINEFLAGS := $(addprefix -D,$(DEFINES))
|
||||
INCDIR := ../.
|
||||
CFLAGS = -g -O2 -Wall -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math $(DEFINEFLAGS)
|
||||
|
||||
MPG123_OBJS = compat.o parse.o frame.o format.o index.o synth.o synth_8bit.o \
|
||||
ntom.o icy2utf8.o synth_real.o synth_s32.o\
|
||||
equalizer.o icy.o id3.o layer1.o layer2.o layer3.o optimize.o readers.o tabinit.o stringbuf.o libmpg123.o dct64.o
|
||||
|
||||
MPG123_LIB_FILE = ./libmpg123.a
|
||||
|
||||
OBJS = $(MPG123_OBJS)
|
||||
TARGET_LIB = $(MPG123_LIB_FILE)
|
||||
|
||||
include $(PSPSDK)/lib/build.mak
|
||||
|
||||
|
||||
|
||||
####################
|
||||
## Makefile rules ##
|
||||
####################
|
||||
|
||||
install: $(MPG123_LIB_FILE)
|
||||
@echo ""
|
||||
@echo "**********************************************************************"
|
||||
@echo "Installing libstsound into $(PSPDIR)"
|
||||
@mkdir -p $(PSPDIR)/include $(PSPDIR)/lib
|
||||
@cp -v mpg123.h $(PSPDIR)/include
|
||||
@cp -v libmpg123.a $(PSPDIR)/lib
|
||||
@echo "Done"
|
||||
@echo "**********************************************************************"
|
||||
@echo ""
|
||||
|
||||
11
ports/Sony_PSP/README
Normal file
11
ports/Sony_PSP/README
Normal file
@@ -0,0 +1,11 @@
|
||||
Hi
|
||||
|
||||
* Place Makefile.psp in the directory src/libmpg123.
|
||||
* Patch readers.c (present in src/libmpg123) using readers.c.patch
|
||||
* Place Config.h in directory src/
|
||||
* cd to src/libmpg123 and do "make -f Makefile.psp install"
|
||||
|
||||
Tested on mpg123 1.4.x and psptoolchain rev. 2398
|
||||
|
||||
Regards
|
||||
Bastian
|
||||
368
ports/Sony_PSP/config.h
Normal file
368
ports/Sony_PSP/config.h
Normal file
@@ -0,0 +1,368 @@
|
||||
/* src/config.h. Generated from config.h.in by configure. */
|
||||
/* src/config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if your architecture wants/needs/can use attribute_align_arg and
|
||||
alignment checks. It's for 32bit x86... */
|
||||
#define ABI_ALIGN_FUN 1
|
||||
|
||||
/* Define to use proper rounding. */
|
||||
/* #undef ACCURATE_ROUNDING */
|
||||
|
||||
/* Define if .align takes 3 for alignment of 2^3=8 bytes instead of 8. */
|
||||
/* #undef ASMALIGN_EXP */
|
||||
|
||||
/* Define if __attribute__((aligned(16))) shall be used */
|
||||
/* #undef CCALIGN */
|
||||
|
||||
/* Define if checking of stack alignment is wanted. */
|
||||
#define CHECK_ALIGN 1
|
||||
|
||||
/* Define if debugging is enabled. */
|
||||
/* #undef DEBUG */
|
||||
|
||||
/* The default audio output module(s) to use */
|
||||
#define DEFAULT_OUTPUT_MODULE "alsa,oss,esd,sdl,nas,arts"
|
||||
|
||||
/* Define if building with dynamcally linked libmpg123 */
|
||||
#define DYNAMIC_BUILD 1
|
||||
|
||||
/* Define if FIFO support is enabled. */
|
||||
#define FIFO 1
|
||||
|
||||
/* Define if frame index should be used. */
|
||||
#define FRAME_INDEX 1
|
||||
|
||||
/* Define if gapless is enabled. */
|
||||
#define GAPLESS 1
|
||||
|
||||
/* Define to 1 if you have the <Alib.h> header file. */
|
||||
/* #undef HAVE_ALIB_H */
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#define HAVE_ARPA_INET_H 1
|
||||
|
||||
/* Define to 1 if you have the <asm/audioio.h> header file. */
|
||||
/* #undef HAVE_ASM_AUDIOIO_H */
|
||||
|
||||
/* Define to 1 if you have the `atoll' function. */
|
||||
#define HAVE_ATOLL 1
|
||||
|
||||
/* Define to 1 if you have the <audios.h> header file. */
|
||||
/* #undef HAVE_AUDIOS_H */
|
||||
|
||||
/* Define to 1 if you have the <AudioToolbox/AudioToolbox.h> header file. */
|
||||
/* #undef HAVE_AUDIOTOOLBOX_AUDIOTOOLBOX_H */
|
||||
|
||||
/* Define to 1 if you have the <AudioUnit/AudioUnit.h> header file. */
|
||||
/* #undef HAVE_AUDIOUNIT_AUDIOUNIT_H */
|
||||
|
||||
/* Define to 1 if you have the <CoreServices/CoreServices.h> header file. */
|
||||
/* #undef HAVE_CORESERVICES_CORESERVICES_H */
|
||||
|
||||
/* Define to 1 if you have the <CUlib.h> header file. */
|
||||
/* #undef HAVE_CULIB_H */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define HAVE_DLFCN_H 1
|
||||
|
||||
/* Define to 1 if you have the `getaddrinfo' function. */
|
||||
#define HAVE_GETADDRINFO 1
|
||||
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#define HAVE_GETPAGESIZE 1
|
||||
|
||||
/* Define to 1 if you have the `getuid' function. */
|
||||
#define HAVE_GETUID 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
||||
#define HAVE_LANGINFO_H 1
|
||||
|
||||
/* Define to 1 if you have the `m' library (-lm). */
|
||||
#define HAVE_LIBM 1
|
||||
|
||||
/* Define to 1 if you have the `mx' library (-lmx). */
|
||||
/* #undef HAVE_LIBMX */
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define to 1 if you have the <linux/soundcard.h> header file. */
|
||||
#define HAVE_LINUX_SOUNDCARD_H 1
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define if libltdl is available */
|
||||
#define HAVE_LTDL 1
|
||||
|
||||
/* Define to 1 if you have the <machine/soundcard.h> header file. */
|
||||
/* #undef HAVE_MACHINE_SOUNDCARD_H */
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mkfifo' function. */
|
||||
#define HAVE_MKFIFO 1
|
||||
|
||||
/* Define to 1 if you have a working `mmap' system call. */
|
||||
#define HAVE_MMAP 1
|
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */
|
||||
#define HAVE_NETDB_H 1
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#define HAVE_NETINET_IN_H 1
|
||||
|
||||
/* Define to 1 if you have the <netinet/tcp.h> header file. */
|
||||
/* #undef HAVE_NETINET_TCP_H */
|
||||
|
||||
/* Define to 1 if you have the `nl_langinfo' function. */
|
||||
#define HAVE_NL_LANGINFO 1
|
||||
|
||||
/* Define to 1 if you have the <os2me.h> header file. */
|
||||
/* #undef HAVE_OS2ME_H */
|
||||
|
||||
/* Define to 1 if you have the <os2.h> header file. */
|
||||
/* #undef HAVE_OS2_H */
|
||||
|
||||
/* Define to 1 if you have the `random' function. */
|
||||
#define HAVE_RANDOM 1
|
||||
|
||||
/* Define to 1 if you have the <sched.h> header file. */
|
||||
#define HAVE_SCHED_H 1
|
||||
|
||||
/* Define to 1 if you have the `sched_setscheduler' function. */
|
||||
#define HAVE_SCHED_SETSCHEDULER 1
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#define HAVE_SETLOCALE 1
|
||||
|
||||
/* Define to 1 if you have the `setpriority' function. */
|
||||
#define HAVE_SETPRIORITY 1
|
||||
|
||||
/* Define to 1 if you have the `setuid' function. */
|
||||
#define HAVE_SETUID 1
|
||||
|
||||
/* Define to 1 if you have the <signal.h> header file. */
|
||||
#define HAVE_SIGNAL_H 1
|
||||
|
||||
/* Define to 1 if you have the <sndio.h> header file. */
|
||||
/* #undef HAVE_SNDIO_H */
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#define HAVE_STDIO_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#define HAVE_STRDUP 1
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the <sun/audioio.h> header file. */
|
||||
/* #undef HAVE_SUN_AUDIOIO_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/audioio.h> header file. */
|
||||
/* #undef HAVE_SYS_AUDIOIO_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/audio.h> header file. */
|
||||
/* #undef HAVE_SYS_AUDIO_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#define HAVE_SYS_IOCTL_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define HAVE_SYS_PARAM_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||
#define HAVE_SYS_RESOURCE_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/signal.h> header file. */
|
||||
#define HAVE_SYS_SIGNAL_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#define HAVE_SYS_SOCKET_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/soundcard.h> header file. */
|
||||
#define HAVE_SYS_SOUNDCARD_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/wait.h> header file. */
|
||||
#define HAVE_SYS_WAIT_H 1
|
||||
|
||||
/* Define this if you have the POSIX termios library */
|
||||
#define HAVE_TERMIOS 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the <windows.h> header file. */
|
||||
/* #undef HAVE_WINDOWS_H */
|
||||
|
||||
/* Define to indicate that float storage follows IEEE754. */
|
||||
#define IEEE_FLOAT 1
|
||||
|
||||
/* size of the frame index seek table */
|
||||
#define INDEX_SIZE 1000
|
||||
|
||||
/* Define if IPV6 support is enabled. */
|
||||
#define IPV6 1
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
|
||||
/* Define if network support is enabled. */
|
||||
/* #define NETWORK 1 */
|
||||
|
||||
/* Define to disable 16 bit integer output. */
|
||||
/* #undef NO_16BIT */
|
||||
|
||||
/* Define to disable 32 bit integer output. */
|
||||
/* define NO_32BIT 1 */
|
||||
|
||||
/* Define to disable 8 bit integer output. */
|
||||
/* #undef NO_8BIT */
|
||||
|
||||
/* Define to disable downsampled decoding. */
|
||||
/* #undef NO_DOWNSAMPLE */
|
||||
|
||||
/* Define to disable error messages in combination with a return value (the
|
||||
return is left intact). */
|
||||
/* #undef NO_ERETURN */
|
||||
|
||||
/* Define to disable error messages. */
|
||||
/* #undef NO_ERRORMSG */
|
||||
|
||||
/* Define to disable feeder and buffered readers. */
|
||||
/* #undef NO_FEEDER */
|
||||
|
||||
/* Define to disable ICY handling. */
|
||||
/* #undef NO_ICY */
|
||||
|
||||
/* Define to disable ID3v2 parsing. */
|
||||
/* #undef NO_ID3V2 */
|
||||
|
||||
/* Define to disable layer I. */
|
||||
/* #undef NO_LAYER1 */
|
||||
|
||||
/* Define to disable layer II. */
|
||||
/* #undef NO_LAYER2 */
|
||||
|
||||
/* Define to disable layer III. */
|
||||
/* #undef NO_LAYER3 */
|
||||
|
||||
/* Define to disable ntom resampling. */
|
||||
/* #undef NO_NTOM */
|
||||
|
||||
/* Define to disable real output. */
|
||||
/* define NO_REAL 1 */
|
||||
|
||||
/* Define to disable string functions. */
|
||||
/* #undef NO_STRING */
|
||||
|
||||
/* Define to disable warning messages. */
|
||||
/* #undef NO_WARNING */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "mpg123"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "mpg123-devel@lists.sourceforge.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "mpg123"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "mpg123 1.8rc5"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "mpg123"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.8rc5"
|
||||
|
||||
/* Define if portaudio v18 API is wanted. */
|
||||
/* #undef PORTAUDIO18 */
|
||||
|
||||
/* The size of `int32_t', as computed by sizeof. */
|
||||
#define SIZEOF_INT32_T 4
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
/* The size of `off_t', as computed by sizeof. */
|
||||
#define SIZEOF_OFF_T 4
|
||||
|
||||
/* The size of `size_t', as computed by sizeof. */
|
||||
#define SIZEOF_SIZE_T 4
|
||||
|
||||
/* The size of `ssize_t', as computed by sizeof. */
|
||||
#define SIZEOF_SSIZE_T 4
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define if modules are enabled */
|
||||
#define USE_MODULES 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.8rc5"
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
/* #undef _LARGE_FILES */
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `short' if <sys/types.h> does not define. */
|
||||
/* #undef int16_t */
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
/* #undef int32_t */
|
||||
|
||||
/* Define to `long int' if <sys/types.h> does not define. */
|
||||
/* #undef off_t */
|
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define to `long' if <sys/types.h> does not define. */
|
||||
/* #undef ssize_t */
|
||||
|
||||
/* Define to `unsigned short' if <sys/types.h> does not define. */
|
||||
/* #undef uint16_t */
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef uint32_t */
|
||||
2
ports/Sony_PSP/readers.c.patch
Normal file
2
ports/Sony_PSP/readers.c.patch
Normal file
@@ -0,0 +1,2 @@
|
||||
14a15
|
||||
> #include <sys/fd_set.h>
|
||||
69
ports/cmake/CMakeLists.txt
Normal file
69
ports/cmake/CMakeLists.txt
Normal file
@@ -0,0 +1,69 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
include(cmake/read_api_version.cmake)
|
||||
read_api_version(MPG123_VERSION API_VERSION OUTAPI_VERSION SYNAPI_VERSION)
|
||||
|
||||
project(mpg123 VERSION ${MPG123_VERSION} LANGUAGES C ASM)
|
||||
|
||||
option(BUILD_LIBOUT123 "build libout123" 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_SOURCE_DIR}/../../man1/mpg123.1"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../man1/out123.1"
|
||||
DESTINATION "${CMAKE_INSTALL_MANDIR}")
|
||||
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/libout123.pc"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../man1/out123.1"
|
||||
DESTINATION "${CMAKE_INSTALL_MANDIR}")
|
||||
endif()
|
||||
7
ports/cmake/cmake/CheckCPUArch.c.in
Normal file
7
ports/cmake/cmake/CheckCPUArch.c.in
Normal file
@@ -0,0 +1,7 @@
|
||||
int main(void) {
|
||||
#if @CHECK_CPU_ARCH_DEFINES@
|
||||
return 0;
|
||||
#else
|
||||
fail
|
||||
#endif
|
||||
}
|
||||
31
ports/cmake/cmake/CheckCPUArch.cmake
Normal file
31
ports/cmake/cmake/CheckCPUArch.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
macro(_CHECK_CPU_ARCH ARCH ARCH_DEFINES VARIABLE)
|
||||
if(NOT DEFINED HAVE_${VARIABLE})
|
||||
message(STATUS "Check CPU architecture is ${ARCH}")
|
||||
set(CHECK_CPU_ARCH_DEFINES ${ARCH_DEFINES})
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/CheckCPUArch.c.in ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c @ONLY)
|
||||
try_compile(HAVE_${VARIABLE} "${PROJECT_BINARY_DIR}"
|
||||
"${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c")
|
||||
if(HAVE_${VARIABLE})
|
||||
message(STATUS "Check CPU architecture is ${ARCH} - yes")
|
||||
set(${VARIABLE} 1 CACHE INTERNAL "Result of CHECK_CPU_ARCH_X64" FORCE)
|
||||
else ()
|
||||
message(STATUS "Check CPU architecture is ${ARCH} - no")
|
||||
endif()
|
||||
endif ()
|
||||
endmacro(_CHECK_CPU_ARCH)
|
||||
|
||||
macro(CHECK_CPU_ARCH_X64 VARIABLE)
|
||||
_CHECK_CPU_ARCH(x64 "defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" ${VARIABLE})
|
||||
endmacro()
|
||||
|
||||
macro(CHECK_CPU_ARCH_X86 VARIABLE)
|
||||
_CHECK_CPU_ARCH(x86 "defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" ${VARIABLE})
|
||||
endmacro()
|
||||
|
||||
macro(CHECK_CPU_ARCH_ARM32 VARIABLE)
|
||||
_CHECK_CPU_ARCH(arm32 "defined(__arm__) || defined(_M_ARM)" ${VARIABLE} )
|
||||
endmacro()
|
||||
|
||||
macro(CHECK_CPU_ARCH_ARM64 VARIABLE)
|
||||
_CHECK_CPU_ARCH(arm64 "defined(__aarch64__) || defined(_M_ARM64)" ${VARIABLE} )
|
||||
endmacro()
|
||||
17
ports/cmake/cmake/read_api_version.cmake
Normal file
17
ports/cmake/cmake/read_api_version.cmake
Normal file
@@ -0,0 +1,17 @@
|
||||
function(read_api_version project_version api_version outapi_version synapi_version )
|
||||
|
||||
file( READ "${CMAKE_SOURCE_DIR}/../../configure.ac" configure_ac )
|
||||
|
||||
string( REGEX MATCH "AC_INIT\\(\\[mpg123\\], \\[([0-9\\.]+)" result ${configure_ac} )
|
||||
set( ${project_version} ${CMAKE_MATCH_1} PARENT_SCOPE )
|
||||
|
||||
string( REGEX MATCH "API_VERSION=([0-9]+)" result ${configure_ac} )
|
||||
set( ${api_version} ${CMAKE_MATCH_1} PARENT_SCOPE )
|
||||
|
||||
string( REGEX MATCH "OUTAPI_VERSION=([0-9]+)" result ${configure_ac} )
|
||||
set( ${outapi_version} ${CMAKE_MATCH_1} PARENT_SCOPE )
|
||||
|
||||
string( REGEX MATCH "SYNAPI_VERSION=([0-9]+)" result ${configure_ac} )
|
||||
set( ${synapi_version} ${CMAKE_MATCH_1} PARENT_SCOPE )
|
||||
|
||||
endfunction()
|
||||
14
ports/cmake/cmake/search_libs.cmake
Normal file
14
ports/cmake/cmake/search_libs.cmake
Normal file
@@ -0,0 +1,14 @@
|
||||
function(search_libs function output_var)
|
||||
if(${output_var})
|
||||
return()
|
||||
endif()
|
||||
set(LIBS "" ${ARGN})
|
||||
foreach(CMAKE_REQUIRED_LIBRARIES IN LISTS ${LIBS})
|
||||
message(STATUS "######## ${CMAKE_REQUIRED_LIBRARIES} ${HAVE_${function}}")
|
||||
check_function_exists(${function} HAVE_${function})
|
||||
if(HAVE_${function})
|
||||
set(${output_var} ${CMAKE_REQUIRED_LIBRARIES} CACHE INTERNAL "")
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
3
ports/cmake/mpg123-config.cmake.in
Normal file
3
ports/cmake/mpg123-config.cmake.in
Normal file
@@ -0,0 +1,3 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/targets.cmake")
|
||||
443
ports/cmake/src/CMakeLists.txt
Normal file
443
ports/cmake/src/CMakeLists.txt
Normal file
@@ -0,0 +1,443 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckSymbolExists)
|
||||
include(CMakeDependentOption)
|
||||
include(TestBigEndian)
|
||||
|
||||
check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
|
||||
check_include_file("dirent.h" HAVE_DIRENT_H)
|
||||
check_include_file("dlfcn.h" HAVE_DLFCN_H)
|
||||
check_include_file("inttypes.h" HAVE_INTTYPES_H)
|
||||
check_include_file("langinfo.h" HAVE_LANGINFO_H)
|
||||
check_include_file("limits.h" HAVE_LIMITS_H)
|
||||
check_include_file("locale.h" HAVE_LOCALE_H)
|
||||
check_include_file("netdb.h" HAVE_NETDB_H)
|
||||
check_include_file("netinet/in.h" HAVE_NETINET_IN_H)
|
||||
check_include_file("sched.h" HAVE_SCHED_H)
|
||||
check_include_file("signal.h" HAVE_SIGNAL_H)
|
||||
check_include_file("stdio.h" HAVE_STDIO_H)
|
||||
check_include_file("stdint.h" HAVE_STDINT_H)
|
||||
check_include_file("stdlib.h" HAVE_STDLIB_H)
|
||||
check_include_file("string.h" HAVE_STRING_H)
|
||||
check_include_file("sys/ioctl.h" HAVE_SYS_IOCTL_H)
|
||||
check_include_file("sys/ipc.h" HAVE_SYS_IPC_H)
|
||||
check_include_file("sys/param.h" HAVE_SYS_PARAM_H)
|
||||
check_include_file("sys/resource.h" HAVE_SYS_RESOURCE_H)
|
||||
check_include_file("sys/select.h" HAVE_SYS_SELECT_H)
|
||||
check_include_file("sys/shm.h" HAVE_SYS_SHM_H)
|
||||
check_include_file("sys/signal.h" HAVE_SYS_SIGNAL_H)
|
||||
check_include_file("sys/socket.h" HAVE_SYS_SOCKET_H)
|
||||
check_include_file("sys/stat.h" HAVE_SYS_STAT_H)
|
||||
check_include_file("sys/time.h" HAVE_SYS_TIME_H)
|
||||
check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
|
||||
check_include_file("sys/wait.h" HAVE_SYS_WAIT_H)
|
||||
check_include_file("termios.h" HAVE_TERMIOS)
|
||||
check_include_file("unistd.h" HAVE_UNISTD_H)
|
||||
check_include_file("windows.h" HAVE_WINDOWS_H)
|
||||
|
||||
function(check_m)
|
||||
set(CMAKE_REQUIRED_LIBRARIES m)
|
||||
check_function_exists(sin HAVE_M)
|
||||
endfunction(check_m)
|
||||
check_m()
|
||||
|
||||
check_function_exists(atoll HAVE_ATOLL)
|
||||
check_function_exists(getaddrinfo HAVE_IPV6)
|
||||
check_function_exists(mkfifo HAVE_MKFIFO)
|
||||
check_function_exists(mmap HAVE_MMAP)
|
||||
check_function_exists(nl_langinfo HAVE_NL_LANGINFO)
|
||||
check_function_exists(random HAVE_RANDOM)
|
||||
check_function_exists(setlocale HAVE_SETLOCALE)
|
||||
check_function_exists(setpriority HAVE_SETPRIORITY)
|
||||
check_function_exists(shmget HAVE_SHMGET)
|
||||
check_function_exists(shmat HAVE_SHMAT)
|
||||
check_function_exists(shmdt HAVE_SHMDT)
|
||||
check_function_exists(shmctl HAVE_SHMCTL)
|
||||
check_function_exists(strerror HAVE_STRERROR)
|
||||
|
||||
search_libs(gethostbyname GETHOSTBYNAME_LIB nsl socket network)
|
||||
search_libs(socket SOCKET_LIB socket)
|
||||
|
||||
test_big_endian(WORDS_BIGENDIAN)
|
||||
|
||||
check_c_source_compiles(
|
||||
"int main() { __asm__(\".balign 4\"); return 0; }"
|
||||
ASMALIGN_BALIGN)
|
||||
check_c_source_compiles(
|
||||
"int main() { __asm__(\".align 3\"); return 0; }"
|
||||
ASMALIGN_EXP)
|
||||
if(NOT ASMALIGN_EXP)
|
||||
set(ASMALIGN_BYTE ON)
|
||||
endif()
|
||||
|
||||
check_c_source_compiles(
|
||||
"int main() { __attribute__((aligned(16))) float var; return 0; }"
|
||||
CCALIGN)
|
||||
|
||||
if(MSVC)
|
||||
# Here, off_t is always 32 bit, the whole machinery doesn't work without explicit
|
||||
# API for 64 bit file access.
|
||||
unset(_FILE_OFFSET_BITS)
|
||||
set(LFS_SENSITIVE OFF)
|
||||
set(LFS_INSENSITIVE ON)
|
||||
set(MPG123_LARGE_FILE_SUPPORT OFF)
|
||||
# We disable all the dynamic naming with MSVC to avoid confusing consumers.
|
||||
# Maybe it would be more proper to conditionit on LFS_INSENSTIIVE.
|
||||
set(BUILD_NO_LARGENAME 1)
|
||||
else()
|
||||
option(MPG123_LARGE_FILE_SUPPORT "Support large files (define _FILE_OFFSET_BITS)" ON)
|
||||
if(MPG123_LARGE_FILE_SUPPORT)
|
||||
set(_FILE_OFFSET_BITS 64)
|
||||
else()
|
||||
unset(_FILE_OFFSET_BITS)
|
||||
endif()
|
||||
set(BUILD_NO_LARGENAME 0)
|
||||
endif()
|
||||
|
||||
if(NOT LFS_INSENSITIVE)
|
||||
check_c_source_compiles("
|
||||
#include <sys/types.h>
|
||||
/* Check that off_t can represent 2**63 - 1 correctly.
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[
|
||||
(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];
|
||||
int main() { return 0; }"
|
||||
LFS_INSENSITIVE)
|
||||
endif()
|
||||
if(NOT LFS_INSENSITIVE)
|
||||
check_c_source_compiles("
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#include <sys/types.h>
|
||||
/* Check that off_t can represent 2**63 - 1 correctly.
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[
|
||||
(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1];
|
||||
int main() { return 0; }"
|
||||
LFS_SENSITIVE)
|
||||
endif()
|
||||
check_type_size(long SIZEOF_LONG)
|
||||
check_type_size(off_t SIZEOF_OFF_T)
|
||||
if(LFS_SENSITIVE)
|
||||
set(LFS_ALIAS_TYPE long)
|
||||
math(EXPR LFS_ALIAS_BITS "${SIZEOF_LONG} * 8")
|
||||
elseif(CMAKE_ANDROID_ARCH_ABI)
|
||||
check_type_size(off64_t SIZEOF_OFF64_T)
|
||||
set(LFS_ALIAS_TYPE off64_t)
|
||||
math(EXPR LFS_ALIAS_BITS "${SIZEOF_OFF64_T} * 8")
|
||||
else()
|
||||
set(LFS_ALIAS_TYPE off_t)
|
||||
math(EXPR LFS_ALIAS_BITS "${SIZEOF_OFF_T} * 8")
|
||||
endif()
|
||||
|
||||
if(WIN32 AND HAVE_WINDOWS_H)
|
||||
check_c_source_compiles("
|
||||
#include <windows.h>
|
||||
|
||||
int main() {
|
||||
LoadLibraryW(0);
|
||||
GetProcAddress(0, 0);
|
||||
FreeLibrary(0);
|
||||
}"
|
||||
HAVE_WIN_DL)
|
||||
else()
|
||||
function(check_dl)
|
||||
set(CMAKE_REQUIRED_LIBRARIES dl)
|
||||
check_symbol_exists(dlopen "dlfcn.h" HAVE_UNIX_DL)
|
||||
endfunction(check_dl)
|
||||
check_dl()
|
||||
endif()
|
||||
|
||||
set(DYNAMIC_BUILD ${BUILD_SHARED_LIBS})
|
||||
if(MSVC)
|
||||
set(STDERR_FILENO "(_fileno(stderr))")
|
||||
set(STDIN_FILENO "(_fileno(stdin))")
|
||||
set(STDOUT_FILENO "(_fileno(stdout))")
|
||||
endif()
|
||||
set(HAVE_WIN32_FIFO ${WIN32})
|
||||
set(WANT_WIN32_UNICODE ${WIN32})
|
||||
set(WITH_SEEKTABLE 1000)
|
||||
|
||||
if(NOT WITH_SEEKTABLE EQUAL 0)
|
||||
set(FRAME_INDEX 1)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(HAVE_MKFIFO ON)
|
||||
endif()
|
||||
|
||||
if(HAVE_NETDB_H AND HAVE_SYS_PARAM_H AND HAVE_SYS_SOCKET_H AND HAVE_NETINET_IN_H AND HAVE_ARPA_INET_H)
|
||||
set(HAVE_NETWORK ON)
|
||||
endif()
|
||||
|
||||
if(NO_MESSAGES)
|
||||
set(NO_WARNING ON)
|
||||
set(NO_ERRORMSG ON)
|
||||
set(NO_ERETURN ON)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(HAVE_FPU 1)
|
||||
else()
|
||||
cmake_host_system_information(RESULT HAVE_FPU QUERY HAS_FPU)
|
||||
endif()
|
||||
|
||||
if(NOT HAVE_FPU)
|
||||
set(NO_SYNTH32 ON)
|
||||
endif()
|
||||
|
||||
# Modules
|
||||
|
||||
if(BUILD_LIBOUT123)
|
||||
if(CHECK_MODULES)
|
||||
list(FIND CHECK_MODULES alsa ALSA_REQUIRED)
|
||||
list(FIND CHECK_MODULES coreaudio COREAUDIO_REQUIRED)
|
||||
list(FIND CHECK_MODULES pulse PULSE_REQUIRED)
|
||||
list(FIND CHECK_MODULES jack JACK_REQUIRED)
|
||||
list(FIND CHECK_MODULES tinyalsa TINYALSA_REQUIRED)
|
||||
list(FIND CHECK_MODULES win32 WIN32_REQUIRED)
|
||||
list(FIND CHECK_MODULES win32_wasapi WIN32_WASAPI_REQUIRED)
|
||||
set(MODULE_NOT_FOUND_MESSAGE "module required but couldn't be found")
|
||||
endif()
|
||||
|
||||
if(NOT CHECK_MODULES OR NOT ALSA_REQUIRED EQUAL -1)
|
||||
find_package(ALSA)
|
||||
if(TARGET ALSA::ALSA)
|
||||
list(APPEND OUTPUT_MODULES alsa)
|
||||
elseif(CHECK_MODULES AND NOT ALSA_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "alsa ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CHECK_MODULES OR NOT COREAUDIO_REQUIRED EQUAL -1)
|
||||
if(APPLE)
|
||||
find_library(AUDIO_TOOLBOX AudioToolbox)
|
||||
list(APPEND OUTPUT_MODULES coreaudio)
|
||||
elseif(CHECK_MODULES AND NOT COREAUDIO_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "coreaudio ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
if(NOT CHECK_MODULES OR NOT PULSE_REQUIRED EQUAL -1)
|
||||
pkg_search_module(PULSE libpulse-simple)
|
||||
if(PULSE_FOUND)
|
||||
list(APPEND OUTPUT_MODULES pulse)
|
||||
elseif(CHECK_MODULES AND NOT PULSE_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "pulse ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CHECK_MODULES OR NOT JACK_REQUIRED EQUAL -1)
|
||||
pkg_search_module(JACK jack)
|
||||
if(JACK_FOUND)
|
||||
list(APPEND OUTPUT_MODULES jack)
|
||||
elseif(CHECK_MODULES AND NOT JACK_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "jack ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CHECK_MODULES OR NOT TINYALSA_REQUIRED EQUAL -1)
|
||||
pkg_search_module(TINYALSA tinyalsa)
|
||||
if(TINYALSA_FOUND)
|
||||
list(APPEND OUTPUT_MODULES tinyalsa)
|
||||
elseif(CHECK_MODULES AND NOT TINYALSA_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "tinyalsa ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CHECK_MODULES OR NOT WIN32_REQUIRED EQUAL -1)
|
||||
if(HAVE_WINDOWS_H)
|
||||
set(WIN32_LIBRARIES winmm)
|
||||
list(APPEND OUTPUT_MODULES win32)
|
||||
elseif(CHECK_MODULES AND NOT WIN32_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "win32 ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CHECK_MODULES OR NOT WIN32_WASAPI_REQUIRED EQUAL -1)
|
||||
set(WASAPI_INCLUDES "initguid.h" "audioclient.h" "mmdeviceapi.h" "avrt.h")
|
||||
check_include_files("${WASAPI_INCLUDES}" HAVE_WASAPI)
|
||||
if(HAVE_WASAPI)
|
||||
set(WIN32_WASAPI_LIBRARIES ole32 avrt)
|
||||
list(APPEND OUTPUT_MODULES win32_wasapi)
|
||||
elseif(CHECK_MODULES AND NOT WIN32_WASAPI_REQUIRED EQUAL -1)
|
||||
message(FATAL_ERROR "win32_wasapi ${MODULE_NOT_FOUND_MESSAGE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CHECK_MODULES)
|
||||
list(REMOVE_AT CHECK_MODULES
|
||||
${ALSA_REQUIRED}
|
||||
${COREAUDIO_REQUIRED}
|
||||
${PULSE_REQUIRED}
|
||||
${JACK_REQUIRED}
|
||||
${TINYALSA_REQUIRED}
|
||||
${WIN32_REQUIRED}
|
||||
${WIN32_WASAPI_REQUIRED})
|
||||
list(LENGTH CHECK_MODULES CHECK_MODULES_LENGTH)
|
||||
if(NOT CHECK_MODULES_LENGTH EQUAL 0)
|
||||
message(FATAL_ERROR "Dunno how to find modules: ${CHECK_MODULES}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT OUTPUT_MODULES)
|
||||
set(DEFAULT_OUTPUT_MODULE dummy)
|
||||
set(DEFAULT_OUTPUT_MODULES ${DEFAULT_OUTPUT_MODULE})
|
||||
else()
|
||||
list(GET OUTPUT_MODULES 0 _DEFAULT_OUTPUT_MODULE)
|
||||
set(DEFAULT_OUTPUT_MODULE ${_DEFAULT_OUTPUT_MODULE} CACHE STRING "Default output module")
|
||||
if(BUILD_SHARED_LIBS)
|
||||
string(REPLACE ";" "," DEFAULT_OUTPUT_MODULES "${OUTPUT_MODULES}")
|
||||
else()
|
||||
set(DEFAULT_OUTPUT_MODULES ${DEFAULT_OUTPUT_MODULE})
|
||||
endif()
|
||||
set_property(CACHE DEFAULT_OUTPUT_MODULE PROPERTY STRINGS ${OUTPUT_MODULES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(ACCURATE_ROUNDING "use rounding instead of fast truncation for integer output, where possible" ON)
|
||||
cmake_dependent_option(FIFO "FIFO support for control interface" ON "HAVE_MKFIFO" OFF)
|
||||
option(GAPLESS "enable gapless" ON)
|
||||
option(IEEE_FLOAT "use special hackery relying on IEEE 754 floating point storage format (to accurately round to 16 bit integer at bit more efficiently in generic decoder, enabled by default, disable in case you have a very special computer)" ON)
|
||||
cmake_dependent_option(IPV6 "IPv6 support (actually any protocol your libc does with getaddrinfo)" ON "HAVE_IPV6" OFF)
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
|
||||
option(NAGGING "turn on GCC's pedantic nagging with error on warnings" OFF)
|
||||
if(NAGGING)
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -pedantic")
|
||||
endif()
|
||||
endif()
|
||||
cmake_dependent_option(NETWORK "network support (http streams / webradio)" ON "HAVE_NETWORK" OFF)
|
||||
option(NEWOLD_WRITE_SAMPLE "enable new/old WRITE_SAMPLE macro for non-accurate 16 bit output, faster on certain CPUs (default on on x86-32)" OFF)
|
||||
cmake_dependent_option(NO_BUFFER "enable audio buffer code (default uses system whitelist... proper checks later)" OFF "HAVE_MMAP OR HAVE_SYS_IPC_H AND HAVE_SYS_SHM_H AND HAVE_SHMGET AND HAVE_SHMAT AND HAVE_SHMDT AND HAVE_SHMCTL" ON)
|
||||
option(NO_DOWNSAMPLE "no downsampled decoding" OFF)
|
||||
option(NO_EQUALIZER "no equalizer support" OFF)
|
||||
option(NO_FEEDER "no feeder decoding, no buffered readers" OFF)
|
||||
if(CYGWIN)
|
||||
option(NO_LFS_ALIAS "disable alias wrappers for largefile bitness (mpg123_seek_32 or mpg123_seek_64 in addition to mpg123_seek, or the other way around; It is a mess, do not play with this!)" ON)
|
||||
elseif(MSVC)
|
||||
set(NO_LFS_ALIAS ON)
|
||||
else()
|
||||
option(NO_LFS_ALIAS "disable alias wrappers for largefile bitness (mpg123_seek_32 or mpg123_seek_64 in addition to mpg123_seek, or the other way around; It is a mess, do not play with this!)" OFF)
|
||||
endif()
|
||||
option(NO_ICY "ICY metainfo parsing/conversion" OFF)
|
||||
option(NO_LAYER1 "no layer I decoding" OFF)
|
||||
option(NO_LAYER2 "no layer II decoding" OFF)
|
||||
option(NO_LAYER3 "no layer III decoding" OFF)
|
||||
option(NO_MESSAGES "no error/warning messages on the console" OFF)
|
||||
option(NO_MOREINFO "no extra information for frame analyzers" OFF)
|
||||
option(NO_NTOM "no flexible resampling" OFF)
|
||||
option(NO_16BIT "no 16 bit integer output" OFF)
|
||||
option(NO_32BIT "no 32 bit integer output (also 24 bit)" OFF)
|
||||
cmake_dependent_option(NO_8BIT "no 8 bit integer output" OFF "NOT NO_16BIT" ON)
|
||||
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)
|
||||
option(USE_NEW_HUFFTABLE "use new huffman decoding scheme by Taihei (faster on modern CPUs at least, so on by default)" ON)
|
||||
|
||||
configure_file(config.cmake.h.in config.h)
|
||||
|
||||
include_directories(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/compat"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/libmpg123")
|
||||
|
||||
add_compile_definitions(
|
||||
$<$<BOOL:${WIN32}>:_CRT_SECURE_NO_WARNINGS>
|
||||
$<$<BOOL:${NO_BUFFER}>:NOXFERMEM>
|
||||
$<$<BOOL:${NEWOLD_WRITE_SAMPLE}>:NEWOLD_WRITE_SAMPLE>)
|
||||
|
||||
add_compile_options(
|
||||
$<$<BOOL:${MSVC}>:/wd4996>)
|
||||
|
||||
add_subdirectory("compat")
|
||||
add_subdirectory("libmpg123")
|
||||
if(BUILD_LIBOUT123)
|
||||
add_subdirectory("libout123")
|
||||
endif()
|
||||
add_subdirectory("libsyn123")
|
||||
|
||||
if(UNIX)
|
||||
option(BUILD_PROGRAMS "Build programs" ON)
|
||||
|
||||
if(BUILD_PROGRAMS)
|
||||
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"
|
||||
"${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"
|
||||
"${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}/")
|
||||
endif()
|
||||
endif()
|
||||
13
ports/cmake/src/compat/CMakeLists.txt
Normal file
13
ports/cmake/src/compat/CMakeLists.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
set(TARGET compat)
|
||||
add_library(${TARGET} OBJECT
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_str.c")
|
||||
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
add_library(${TARGET}_dl OBJECT
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_dl.c")
|
||||
set_target_properties(${TARGET}_dl PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
add_library(${TARGET}_str OBJECT
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_str.c")
|
||||
set_target_properties(${TARGET}_dl PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
169
ports/cmake/src/config.cmake.h.in
Normal file
169
ports/cmake/src/config.cmake.h.in
Normal file
@@ -0,0 +1,169 @@
|
||||
// Define to use proper rounding.
|
||||
#cmakedefine ACCURATE_ROUNDING 1
|
||||
|
||||
// Define if .balign is present.
|
||||
#cmakedefine ASMALIGN_BALIGN 1
|
||||
|
||||
// Define if .align takes 3 for alignment of 2^3=8 bytes instead of 8.
|
||||
#cmakedefine ASMALIGN_EXP 1
|
||||
|
||||
// Define if .align just takes byte count.
|
||||
#cmakedefine ASMALIGN_BYTE 1
|
||||
|
||||
// Define if __attribute__((aligned(16))) shall be used
|
||||
#cmakedefine CCALIGN 1
|
||||
|
||||
#define DEFAULT_OUTPUT_MODULE "@DEFAULT_OUTPUT_MODULES@"
|
||||
|
||||
#cmakedefine DEBUG 1
|
||||
#cmakedefine DYNAMIC_BUILD 1
|
||||
|
||||
// Define if FIFO support is enabled.
|
||||
#cmakedefine FIFO 1
|
||||
|
||||
// Define if frame index should be used.
|
||||
#cmakedefine FRAME_INDEX 1
|
||||
|
||||
#cmakedefine GAPLESS 1
|
||||
#cmakedefine HAVE_ATOLL 1
|
||||
#cmakedefine HAVE_DIRENT_H 1
|
||||
#cmakedefine HAVE_DLFCN_H 1
|
||||
#cmakedefine HAVE_INTTYPES_H 1
|
||||
#cmakedefine HAVE_LANGINFO_H 1
|
||||
#cmakedefine HAVE_LIMITS_H 1
|
||||
#cmakedefine HAVE_LOCALE_H 1
|
||||
#cmakedefine HAVE_NL_LANGINFO 1
|
||||
#cmakedefine HAVE_RANDOM 1
|
||||
#cmakedefine HAVE_SCHED_H 1
|
||||
#cmakedefine HAVE_SETLOCALE 1
|
||||
#cmakedefine HAVE_SETPRIORITY 1
|
||||
#cmakedefine HAVE_SIGNAL_H 1
|
||||
#cmakedefine HAVE_STDIO_H 1
|
||||
#cmakedefine HAVE_STDINT_H 1
|
||||
#cmakedefine HAVE_STDLIB_H 1
|
||||
#cmakedefine HAVE_STRERROR 1
|
||||
#cmakedefine HAVE_STRING_H 1
|
||||
#cmakedefine HAVE_SYS_IOCTL_H 1
|
||||
#cmakedefine HAVE_SYS_RESOURCE_H 1
|
||||
#cmakedefine HAVE_SYS_SELECT_H 1
|
||||
#cmakedefine HAVE_SYS_SIGNAL_H 1
|
||||
#cmakedefine HAVE_SYS_STAT_H 1
|
||||
#cmakedefine HAVE_SYS_TIME_H 1
|
||||
#cmakedefine HAVE_SYS_TYPES_H 1
|
||||
#cmakedefine HAVE_SYS_WAIT_H 1
|
||||
|
||||
// Define this if you have the POSIX termios library
|
||||
#cmakedefine HAVE_TERMIOS 1
|
||||
|
||||
#cmakedefine HAVE_UNISTD_H 1
|
||||
#cmakedefine HAVE_WINDOWS_H 1
|
||||
|
||||
// Define to indicate that float storage follows IEEE754.
|
||||
#cmakedefine IEEE_FLOAT 1
|
||||
|
||||
#define INDEX_SIZE @WITH_SEEKTABLE@
|
||||
|
||||
// Define if IPV6 support is enabled.
|
||||
#cmakedefine IPV6 1
|
||||
|
||||
#define LFS_ALIAS_BITS @LFS_ALIAS_BITS@
|
||||
#define LT_MODULE_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
|
||||
|
||||
// Define if network support is enabled.
|
||||
#cmakedefine NETWORK 1
|
||||
|
||||
// Define to disable downsampled decoding.
|
||||
#cmakedefine NO_DOWNSAMPLE 1
|
||||
|
||||
// Define to disable equalizer.
|
||||
#cmakedefine NO_EQUALIZER 1
|
||||
|
||||
// Define to disable error messages in combination with a return value (the return is left intact).
|
||||
#cmakedefine NO_ERETURN 1
|
||||
|
||||
// Define to disable error messages.
|
||||
#cmakedefine NO_ERRORMSG 1
|
||||
|
||||
// no feeder decoding, no buffered readers
|
||||
#cmakedefine NO_FEEDER 1
|
||||
|
||||
// Define to disable ICY handling.
|
||||
#cmakedefine NO_ICY 1
|
||||
|
||||
// Define to disable ID3v2 parsing.
|
||||
#cmakedefine NO_ID3V2 1
|
||||
|
||||
// Define to disable layer I.
|
||||
#cmakedefine NO_LAYER1 1
|
||||
|
||||
// Define to disable layer II.
|
||||
#cmakedefine NO_LAYER2 1
|
||||
|
||||
// Define to disable layer III.
|
||||
#cmakedefine NO_LAYER3 1
|
||||
|
||||
// Define to disable analyzer info.
|
||||
#cmakedefine NO_MOREINFO 1
|
||||
|
||||
// Define to disable ntom resampling.
|
||||
#cmakedefine NO_NTOM 1
|
||||
|
||||
// Define to disable 8 bit integer output.
|
||||
#cmakedefine NO_8BIT 1
|
||||
|
||||
// Define to disable 16 bit integer output.
|
||||
#cmakedefine NO_16BIT 1
|
||||
|
||||
// Define to disable 32 bit and 24 bit integer output.
|
||||
#cmakedefine NO_32BIT 1
|
||||
|
||||
// Define to disable real output.
|
||||
#cmakedefine NO_REAL 1
|
||||
|
||||
// Define to disable string functions.
|
||||
#cmakedefine NO_STRING 1
|
||||
|
||||
// Define for post-processed 32 bit formats.
|
||||
#cmakedefine NO_SYNTH32 1
|
||||
|
||||
// Define to disable warning messages.
|
||||
#cmakedefine NO_WARNING 1
|
||||
|
||||
#define PACKAGE_NAME "@PROJECT_NAME@"
|
||||
#define PACKAGE_VERSION "@PROJECT_VERSION@"
|
||||
|
||||
#define PKGLIBDIR "@CMAKE_INSTALL_LIBDIR@/@PROJECT_NAME@"
|
||||
|
||||
#define SIZEOF_LONG @SIZEOF_LONG@
|
||||
#define SIZEOF_OFF_T @SIZEOF_OFF_T@
|
||||
|
||||
#cmakedefine STDERR_FILENO @STDERR_FILENO@
|
||||
#cmakedefine STDIN_FILENO @STDIN_FILENO@
|
||||
#cmakedefine STDOUT_FILENO @STDOUT_FILENO@
|
||||
|
||||
// Define to not duplicate some code for likely cases in libsyn123.
|
||||
#cmakedefine SYN123_NO_CASES 1
|
||||
|
||||
#cmakedefine USE_MODULES 1
|
||||
|
||||
// Define for new Huffman decoding scheme.
|
||||
#cmakedefine USE_NEW_HUFFTABLE 1
|
||||
|
||||
// Define to use Unicode for Windows
|
||||
#cmakedefine WANT_WIN32_UNICODE 1
|
||||
|
||||
#if WANT_WIN32_UNICODE == 1
|
||||
# define strcasecmp _stricmp
|
||||
# define strncasecmp _strnicmp
|
||||
#endif
|
||||
|
||||
// Define to use Win32 named pipes
|
||||
#cmakedefine WANT_WIN32_FIFO 1
|
||||
|
||||
#cmakedefine WORDS_BIGENDIAN 1
|
||||
|
||||
// Number of bits in a file offset, on hosts where this is settable.
|
||||
#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
|
||||
|
||||
// Define to the native offset type (long or actually off_t).
|
||||
#define lfs_alias_t @LFS_ALIAS_TYPE@
|
||||
262
ports/cmake/src/libmpg123/CMakeLists.txt
Normal file
262
ports/cmake/src/libmpg123/CMakeLists.txt
Normal file
@@ -0,0 +1,262 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
option(NO_FEATURE_REPORT "Disable feature report function" OFF)
|
||||
option(NO_LFS_ALIAS "disable alias wrappers for largefile bitness (mpg123_seek_32 or mpg123_seek_64 in addition to mpg123_seek, or the other way around; It is a mess, do not play with this!)" OFF)
|
||||
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/")
|
||||
|
||||
include(../../cmake/CheckCPUArch.cmake)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
check_cpu_arch_x86(ARCH_IS_X86)
|
||||
check_cpu_arch_x64(ARCH_IS_X64)
|
||||
check_cpu_arch_arm32(ARCH_IS_ARM32)
|
||||
check_cpu_arch_arm64(ARCH_IS_ARM64)
|
||||
|
||||
# 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}")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/mpg123.h.in" mpg123.h)
|
||||
|
||||
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_LFS_ALIAS}>>:lfs_alias.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/$<$<BOOL:${LFS_SENSITIVE}>:lfs_wrap.c>"
|
||||
$<TARGET_OBJECTS:compat>)
|
||||
|
||||
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(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()
|
||||
target_sources(${TARGET} PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_i386.c")
|
||||
endif()
|
||||
elseif(MACHINE STREQUAL "arm64")
|
||||
if(MSVC)
|
||||
set(PLATFORM_DEFINITIONS OPT_GENERIC)
|
||||
message(WARNING "Cannot use platform-specific assembly sources on MSVC")
|
||||
else()
|
||||
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")
|
||||
endif()
|
||||
elseif(MACHINE STREQUAL "arm32")
|
||||
if(HAVE_FPU)
|
||||
if(MSVC)
|
||||
set(PLATFORM_DEFINITIONS OPT_GENERIC)
|
||||
message(WARNING "Cannot use platform-specific assembly sources on MSVC")
|
||||
else()
|
||||
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")
|
||||
endif()
|
||||
else()
|
||||
if(MSVC)
|
||||
set(PLATFORM_DEFINITIONS OPT_GENERIC)
|
||||
message(WARNING "Cannot use platform-specific assembly sources on MSVC")
|
||||
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()
|
||||
endif()
|
||||
elseif(MACHINE STREQUAL "generic")
|
||||
set(PLATFORM_DEFINITIONS OPT_GENERIC)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME mpg123)
|
||||
|
||||
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")
|
||||
find_program(YASM_ASSEMBLER yasm)
|
||||
if(NOT YASM_ASSEMBLER)
|
||||
message(FATAL_ERROR "Couldn't find yasm assembler. Please set YASM_ASSEMBLER variable")
|
||||
endif()
|
||||
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()
|
||||
|
||||
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_BINARY_DIR}/mpg123.h"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/fmt123.h"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
|
||||
37
ports/cmake/src/libout123/CMakeLists.txt
Normal file
37
ports/cmake/src/libout123/CMakeLists.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/out123.h.in" out123.h)
|
||||
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/")
|
||||
add_subdirectory("modules")
|
||||
|
||||
set(TARGET libout123)
|
||||
add_library(${TARGET}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/libout123.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/stringlists.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/wav.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/hextxt.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/$<$<NOT:$<BOOL:${NO_BUFFER}>>:buffer.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/$<$<NOT:$<BOOL:${NO_BUFFER}>>:xfermem.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/$<$<BOOL:${USE_MODULES}>:module.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libout123/$<$<NOT:$<BOOL:${USE_MODULES}>>:legacy_module.c>"
|
||||
$<TARGET_OBJECTS:compat>
|
||||
$<$<BOOL:${USE_MODULES}>:$<TARGET_OBJECTS:compat_dl>>)
|
||||
|
||||
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME out123)
|
||||
|
||||
target_link_libraries(${TARGET} PRIVATE
|
||||
$<TARGET_NAME_IF_EXISTS:defaultmodule>
|
||||
$<$<BOOL:${HAVE_UNIX_DL}>:dl>
|
||||
$<$<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_BINARY_DIR}/out123.h"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
99
ports/cmake/src/libout123/modules/CMakeLists.txt
Normal file
99
ports/cmake/src/libout123/modules/CMakeLists.txt
Normal file
@@ -0,0 +1,99 @@
|
||||
if(NOT USE_MODULES)
|
||||
add_library(defaultmodule STATIC
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},dummy>:dummy.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},coreaudio>:coreaudio.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},alsa>:alsa.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},tinyalsa>:tinyalsa.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},pulse>:pulse.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},jack>:jack.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},win32>:win32.c>"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},win32_wasapi>:win32_wasapi.c>")
|
||||
target_link_libraries(defaultmodule PUBLIC
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},alsa>:ALSA::ALSA>
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},tinyalsa>:${TINYALSA_LIBRARIES}>
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},coreaudio>:${AUDIO_TOOLBOX}>
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},pulse>:${PULSE_LIBRARIES}>
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},jack>:${JACK_LIBRARIES}>
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},win32>:${WIN32_LIBRARIES}>
|
||||
$<$<STREQUAL:${DEFAULT_OUTPUT_MODULE},win32_wasapi>:${WIN32_WASAPI_LIBRARIES}>)
|
||||
if(DEFAULT_OUTPUT_MODULE STREQUAL "pulse")
|
||||
target_compile_definitions(defaultmodule PRIVATE ${PULSE_CFLAGS})
|
||||
elseif(DEFAULT_OUTPUT_MODULE STREQUAL "jack")
|
||||
target_compile_definitions(defaultmodule PRIVATE ${JACK_CFLAGS})
|
||||
elseif(DEFAULT_OUTPUT_MODULE STREQUAL "tinyalsa")
|
||||
target_compile_definitions(defaultmodule PRIVATE ${TINYALSA_CFLAGS})
|
||||
endif()
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(defaultmodule PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_SHARED_MODULE_PREFIX "")
|
||||
list(FIND OUTPUT_MODULES coreaudio INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_coreaudio MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/coreaudio.c")
|
||||
target_link_libraries(output_coreaudio PRIVATE ${AUDIO_TOOLBOX})
|
||||
install(TARGETS output_coreaudio
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
list(FIND OUTPUT_MODULES alsa INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_alsa MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/alsa.c")
|
||||
target_link_libraries(output_alsa PRIVATE ALSA::ALSA)
|
||||
install(TARGETS output_alsa
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
list(FIND OUTPUT_MODULES pulse INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_pulse MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/pulse.c")
|
||||
target_compile_options(output_pulse PRIVATE ${PULSE_CFLAGS})
|
||||
target_link_libraries(output_pulse PRIVATE ${PULSE_LIBRARIES})
|
||||
install(TARGETS output_pulse
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
list(FIND OUTPUT_MODULES jack INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_jack MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/jack.c"
|
||||
$<TARGET_OBJECTS:compat_str>)
|
||||
target_compile_options(output_jack PRIVATE ${JACK_CFLAGS})
|
||||
target_link_libraries(output_jack PRIVATE ${JACK_LIBRARIES})
|
||||
install(TARGETS output_jack
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
list(FIND OUTPUT_MODULES tinyalsa INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_tinyalsa MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/tinyalsa.c")
|
||||
target_compile_options(output_tinyalsa PRIVATE ${TINYALSA_CFLAGS})
|
||||
target_link_libraries(output_tinyalsa PRIVATE ${TINYALSA_LIBRARIES})
|
||||
install(TARGETS output_tinyalsa
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
list(FIND OUTPUT_MODULES win32 INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_win32 MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/win32.c")
|
||||
target_link_libraries(output_win32 PRIVATE ${WIN32_LIBRARIES})
|
||||
install(TARGETS output_win32
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
list(FIND OUTPUT_MODULES win32_wasapi INDEX)
|
||||
if(NOT INDEX EQUAL -1)
|
||||
add_library(output_win32_wasapi MODULE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/libout123/modules/win32_wasapi.c"
|
||||
$<TARGET_OBJECTS:compat_str>)
|
||||
target_link_libraries(output_win32_wasapi PRIVATE ${WIN32_WASAPI_LIBRARIES})
|
||||
install(TARGETS output_win32_wasapi
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${PROJECT_NAME}")
|
||||
endif()
|
||||
endif()
|
||||
32
ports/cmake/src/libsyn123/CMakeLists.txt
Normal file
32
ports/cmake/src/libsyn123/CMakeLists.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/syn123.h.in" syn123.h)
|
||||
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/libsyn123/")
|
||||
|
||||
set(TARGET libsyn123)
|
||||
add_library(${TARGET}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/pinknoise.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/geiger.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/libsyn123.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/volume.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/resample.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/filter.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libsyn123/sampleconv.c"
|
||||
$<TARGET_OBJECTS:compat_str>)
|
||||
|
||||
set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME syn123)
|
||||
|
||||
target_include_directories(${TARGET} INTERFACE
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
||||
|
||||
target_link_libraries(${TARGET} PRIVATE
|
||||
$<$<BOOL:${WANT_WIN32_UNICODE}>:shlwapi>)
|
||||
|
||||
install(TARGETS ${TARGET} EXPORT targets
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/syn123.h"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
13
ports/cmake/src/tests/CMakeLists.txt
Normal file
13
ports/cmake/src/tests/CMakeLists.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
add_executable(seek_whence "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/tests/seek_whence.c")
|
||||
target_link_libraries(seek_whence PRIVATE lib${PROJECT_NAME})
|
||||
|
||||
add_executable(noise "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/tests/noise.c")
|
||||
target_link_libraries(noise PRIVATE lib${PROJECT_NAME})
|
||||
|
||||
add_executable(text "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/tests/text.c")
|
||||
target_link_libraries(text PRIVATE lib${PROJECT_NAME})
|
||||
add_test(NAME text COMMAND text)
|
||||
|
||||
add_executable(plain_id3 "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/tests/plain_id3.c")
|
||||
target_link_libraries(plain_id3 PRIVATE lib${PROJECT_NAME})
|
||||
add_test(NAME plain_id3 COMMAND plain_id3)
|
||||
Reference in New Issue
Block a user