mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-25 01:29:00 +08:00
7ad1fcc376
* Fix mpg123 build in macOS and Linux, fix sdl2-mixer find mpg123 libarry * Add package sdl2pp * [mpg123] Use Windows logic in Windows Desktop * [sdl2-mixer] Bump package version * [sdl2pp] Use patch instead of replacing CMakeLists.txt. Use vcpkg_from_github()
158 lines
5.8 KiB
CMake
158 lines
5.8 KiB
CMake
include(vcpkg_common_functions)
|
|
|
|
set(MPG123_VERSION 1.25.8)
|
|
set(MPG123_HASH f226317dddb07841a13753603fa13c0a867605a5a051626cb30d45cfba266d3d4296f5b8254f65b403bb5eef6addce1784ae8829b671a746854785cda1bad203)
|
|
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpg123-${MPG123_VERSION})
|
|
|
|
#architecture detection
|
|
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
|
set(MPG123_ARCH Win32)
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
|
set(MPG123_ARCH x64)
|
|
else()
|
|
message(FATAL_ERROR "unsupported architecture")
|
|
endif()
|
|
|
|
#linking
|
|
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
|
set(MPG123_CONFIGURATION_SUFFIX _Dll)
|
|
endif()
|
|
|
|
vcpkg_download_distfile(ARCHIVE
|
|
URLS "http://downloads.sourceforge.net/project/mpg123/mpg123/${MPG123_VERSION}/mpg123-${MPG123_VERSION}.tar.bz2"
|
|
FILENAME "mpg123-${MPG123_VERSION}.tar.bz2"
|
|
SHA512 ${MPG123_HASH}
|
|
)
|
|
vcpkg_extract_source_archive(${ARCHIVE})
|
|
|
|
vcpkg_find_acquire_program(YASM)
|
|
get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY)
|
|
set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}")
|
|
|
|
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
|
vcpkg_apply_patches(
|
|
SOURCE_PATH ${SOURCE_PATH}
|
|
PATCHES
|
|
"${CURRENT_PORT_DIR}/0001-fix-crt-linking.patch"
|
|
"${CURRENT_PORT_DIR}/0002-fix-x86-build.patch")
|
|
|
|
vcpkg_build_msbuild(
|
|
PROJECT_PATH ${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/libmpg123.vcxproj
|
|
RELEASE_CONFIGURATION Release_x86${MPG123_CONFIGURATION_SUFFIX}
|
|
DEBUG_CONFIGURATION Debug_x86${MPG123_CONFIGURATION_SUFFIX}
|
|
)
|
|
|
|
message(STATUS "Installing")
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.dll
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.pdb
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
|
|
)
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.dll
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.pdb
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
|
|
)
|
|
else()
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug_x86/libmpg123.pdb
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
|
|
)
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release_x86/libmpg123.pdb
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
|
|
)
|
|
endif()
|
|
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Debug/libmpg123.lib
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
|
|
)
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.lib
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
|
|
)
|
|
file(INSTALL
|
|
${SOURCE_PATH}/ports/MSVC++/mpg123.h
|
|
${SOURCE_PATH}/src/libmpg123/fmt123.h
|
|
${SOURCE_PATH}/src/libmpg123/mpg123.h.in
|
|
DESTINATION ${CURRENT_PACKAGES_DIR}/include
|
|
)
|
|
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
file(REMOVE_RECURSE ${SOURCE_PATH}/build/debug)
|
|
file(REMOVE_RECURSE ${SOURCE_PATH}/build/release)
|
|
|
|
################
|
|
# Debug build
|
|
################
|
|
message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
|
|
vcpkg_execute_required_process(
|
|
COMMAND "${SOURCE_PATH}/configure" --prefix=${SOURCE_PATH}/build/debug --enable-debug=yes --enable-static=yes --disable-dependency-tracking --with-default-audio=coreaudio --with-module-suffix=.so
|
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
|
LOGNAME config-${TARGET_TRIPLET}-dbg
|
|
)
|
|
message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done.")
|
|
|
|
message(STATUS "Installing ${TARGET_TRIPLET}-dbg")
|
|
vcpkg_execute_required_process(
|
|
COMMAND make -j install
|
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
|
LOGNAME build-${TARGET_TRIPLET}-dbg
|
|
)
|
|
message(STATUS "Installing ${TARGET_TRIPLET}-dbg done.")
|
|
|
|
################
|
|
# Release build
|
|
################
|
|
message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
|
|
vcpkg_execute_required_process(
|
|
COMMAND make distclean
|
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
|
LOGNAME config-${TARGET_TRIPLET}-dbg
|
|
)
|
|
vcpkg_execute_required_process(
|
|
COMMAND "${SOURCE_PATH}/configure" --prefix=${SOURCE_PATH}/build/release --enable-static=yes --disable-dependency-tracking --with-default-audio=coreaudio --with-module-suffix=.so
|
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
|
LOGNAME config-${TARGET_TRIPLET}-rel
|
|
)
|
|
message(STATUS "Configuring ${TARGET_TRIPLET}-rel done.")
|
|
|
|
message(STATUS "Installing ${TARGET_TRIPLET}-rel")
|
|
vcpkg_execute_required_process(
|
|
COMMAND make -j install
|
|
WORKING_DIRECTORY ${SOURCE_PATH}
|
|
LOGNAME build-${TARGET_TRIPLET}-rel
|
|
)
|
|
message(STATUS "Installing ${TARGET_TRIPLET}-rel done.")
|
|
|
|
file(
|
|
INSTALL
|
|
"${SOURCE_PATH}/build/debug/include/fmt123.h"
|
|
"${SOURCE_PATH}/build/debug/include/mpg123.h"
|
|
"${SOURCE_PATH}/build/debug/include/out123.h"
|
|
DESTINATION
|
|
${CURRENT_PACKAGES_DIR}/include
|
|
)
|
|
|
|
file(
|
|
INSTALL
|
|
"${SOURCE_PATH}/build/debug/lib/libmpg123.a"
|
|
"${SOURCE_PATH}/build/debug/lib/libout123.a"
|
|
DESTINATION
|
|
${CURRENT_INSTALLED_DIR}/debug/lib
|
|
)
|
|
|
|
file(
|
|
INSTALL
|
|
"${SOURCE_PATH}/build/release/lib/libmpg123.a"
|
|
"${SOURCE_PATH}/build/release/lib/libout123.a"
|
|
DESTINATION
|
|
${CURRENT_PACKAGES_DIR}/lib
|
|
)
|
|
endif()
|
|
|
|
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpg123 RENAME copyright)
|
|
|
|
message(STATUS "Installing done")
|