diff --git a/ports/libmad/CMakeLists.txt b/ports/libmad/CMakeLists.txt new file mode 100644 index 0000000000..8e15017c05 --- /dev/null +++ b/ports/libmad/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 2.8) + +project(libmad) + + IF(MSVC) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + ENDIF(MSVC) + +set(SOURCES + bit.c + bit.h + config.h + decoder.c + decoder.h + fixed.c + fixed.h + frame.c + frame.h + global.h + huffman.c + huffman.h + layer12.c + layer12.h + layer3.c + layer3.h + mad.h + stream.c + stream.h + synth.c + synth.h + timer.c + timer.h + version.c + version.h +) + +add_library( + mad + ${SOURCES} +) + +target_compile_definitions(mad + PRIVATE _LIB _MBCS ASO_ZEROCHECK HAVE_CONFIG_H FPM_DEFAULT + PRIVATE _CRT_SECURE_NO_WARNINGS +) + +install( + TARGETS mad + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install( + FILES mad.h + DESTINATION include/mad +) diff --git a/ports/libmad/CONTROL b/ports/libmad/CONTROL new file mode 100644 index 0000000000..04cec21bfb --- /dev/null +++ b/ports/libmad/CONTROL @@ -0,0 +1,3 @@ +Source: libmad +Version: 0.15.1 +Description: high-quality MPEG audio decoder diff --git a/ports/libmad/portfile.cmake b/ports/libmad/portfile.cmake new file mode 100644 index 0000000000..d9e20ecb53 --- /dev/null +++ b/ports/libmad/portfile.cmake @@ -0,0 +1,27 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libmad-0.15.1b) +vcpkg_download_distfile(ARCHIVE + URLS "http://download.sourceforge.net/mad/libmad-0.15.1b.tar.gz" + FILENAME "libmad-0.15.1b.tar.gz" + SHA512 2cad30347fb310dc605c46bacd9da117f447a5cabedd8fefdb24ab5de641429e5ec5ce8af7aefa6a75a3f545d3adfa255e3fa0a2d50971f76bc0c4fc0400cc45 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +#The archive only contains a Visual Studio 6.0 era DSP project file, so use a custom CMakeLists.txt +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +#Use the msvc++ config.h and mad.h header +file(COPY ${SOURCE_PATH}/msvc++/config.h DESTINATION ${SOURCE_PATH}) +file(COPY ${SOURCE_PATH}/msvc++/mad.h DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmad) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libmad/COPYING ${CURRENT_PACKAGES_DIR}/share/libmad/copyright) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)