Package sdl2pp (#3430)

* 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()
This commit is contained in:
Ryan Cheung 2018-05-18 23:15:52 +08:00 committed by Robert Schumacher
parent 5fe458d22e
commit 7ad1fcc376
7 changed files with 205 additions and 46 deletions

View File

@ -1,3 +1,3 @@
Source: mpg123
Version: 1.25.8-4
Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3).
Version: 1.25.8-5
Description: mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3).

View File

@ -29,55 +29,128 @@ vcpkg_find_acquire_program(YASM)
get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY)
set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}")
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
"${CURRENT_PORT_DIR}/0001-fix-crt-linking.patch"
"${CURRENT_PORT_DIR}/0002-fix-x86-build.patch")
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}
)
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()
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
${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_x86/libmpg123.pdb
${SOURCE_PATH}/ports/MSVC++/2015/win32/libmpg123/${MPG123_ARCH}/Release/libmpg123.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
)
endif()
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)
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
)
################
# 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)

View File

@ -7,14 +7,14 @@ set(SDL_MIXER_INCLUDES ${SDL_INCLUDE_DIR})
set(SDL_MIXER_LIBRARIES ${SDL_LIBRARY})
# builtin formats
set(SDL_MIXER_DEFINES
set(SDL_MIXER_DEFINES
MUSIC_WAV
MUSIC_MID_NATIVE)
# MP3 support
if(SDL_MIXER_ENABLE_MP3)
find_path(MPG123_INCLUDE_DIR mpg123.h)
find_library(MPG123_LIBRARY libmpg123)
find_library(MPG123_LIBRARY NAMES libmpg123 mpg123)
list(APPEND SDL_MIXER_INCLUDES ${MPG123_INCLUDE_DIR})
list(APPEND SDL_MIXER_LIBRARIES ${MPG123_LIBRARY})
list(APPEND SDL_MIXER_DEFINES MUSIC_MP3_MPG123)
@ -47,7 +47,7 @@ if(SDL_MIXER_ENABLE_OGGVORBIS)
list(APPEND SDL_MIXER_DEFINES MUSIC_OGG)
endif()
add_library(SDL2_mixer
add_library(SDL2_mixer
effect_position.c
effect_stereoreverse.c
effects_internal.c

View File

@ -1,4 +1,4 @@
Source: sdl2-mixer
Version: 2.0.2-2
Version: 2.0.2-4
Description: Multi-channel audio mixer library for SDL.
Build-Depends: sdl2, libflac, mpg123, libmodplug, libvorbis

4
ports/sdl2pp/CONTROL Normal file
View File

@ -0,0 +1,4 @@
Source: sdl2pp
Version: 0.16.0-1
Description: C++11 bindings/wrapper for SDL2 https://sdl2pp.amdmi3.ru
Build-Depends: sdl2, sdl2-mixer, sdl2-image, sdl2-ttf

View File

@ -0,0 +1,54 @@
diff --git a/cmake/FindSDL2.cmake b/cmake/FindSDL2.cmake
index 8b2addb..4def5f3 100644
--- a/cmake/FindSDL2.cmake
+++ b/cmake/FindSDL2.cmake
@@ -8,8 +8,8 @@
FIND_PATH(SDL2_INCLUDE_DIR NAMES SDL.h PATH_SUFFIXES SDL2)
-FIND_LIBRARY(SDL2_LIBRARY NAMES SDL2)
-FIND_LIBRARY(SDL2MAIN_LIBRARY NAMES SDL2main)
+FIND_LIBRARY(SDL2_LIBRARY NAMES SDL2d SDL2)
+FIND_LIBRARY(SDL2MAIN_LIBRARY NAMES SDL2maind SDL2main)
INCLUDE(FindPackageHandleStandardArgs)
diff --git a/cmake/FindSDL2_image.cmake b/cmake/FindSDL2_image.cmake
index 88adb3f..d6e829d 100644
--- a/cmake/FindSDL2_image.cmake
+++ b/cmake/FindSDL2_image.cmake
@@ -8,7 +8,7 @@
FIND_PATH(SDL2_IMAGE_INCLUDE_DIR NAMES SDL_image.h PATH_SUFFIXES SDL2)
-FIND_LIBRARY(SDL2_IMAGE_LIBRARY NAMES SDL2_image)
+FIND_LIBRARY(SDL2_IMAGE_LIBRARY NAMES SDL2_imaged SDL2_image)
INCLUDE(FindPackageHandleStandardArgs)
diff --git a/cmake/FindSDL2_mixer.cmake b/cmake/FindSDL2_mixer.cmake
index ef5748b..c2dbbde 100644
--- a/cmake/FindSDL2_mixer.cmake
+++ b/cmake/FindSDL2_mixer.cmake
@@ -8,7 +8,7 @@
FIND_PATH(SDL2_MIXER_INCLUDE_DIR NAMES SDL_mixer.h PATH_SUFFIXES SDL2)
-FIND_LIBRARY(SDL2_MIXER_LIBRARY NAMES SDL2_mixer)
+FIND_LIBRARY(SDL2_MIXER_LIBRARY NAMES SDL2_mixerd SDL2_mixer)
INCLUDE(FindPackageHandleStandardArgs)
diff --git a/cmake/FindSDL2_ttf.cmake b/cmake/FindSDL2_ttf.cmake
index b480d55..9fb65b9 100644
--- a/cmake/FindSDL2_ttf.cmake
+++ b/cmake/FindSDL2_ttf.cmake
@@ -8,7 +8,7 @@
FIND_PATH(SDL2_TTF_INCLUDE_DIR NAMES SDL_ttf.h PATH_SUFFIXES SDL2)
-FIND_LIBRARY(SDL2_TTF_LIBRARY NAMES SDL2_ttf)
+FIND_LIBRARY(SDL2_TTF_LIBRARY NAMES SDL2_ttfd SDL2_ttf)
INCLUDE(FindPackageHandleStandardArgs)

View File

@ -0,0 +1,28 @@
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libSDL2pp/libSDL2pp
REF 0.16.0
SHA512 36603a0b1c3ba9294fffa5368357866e5689ceed9743352ff52c096d8b0070cc3f8708a5e837c10c871b410b6bda3ed7e8e3b95cb9afc136d91afb035cde6361
HEAD_REF master
PATCHES "${CMAKE_CURRENT_LIST_DIR}/find-debug-libs.patch"
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL2PP_STATIC)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DSDL2PP_WITH_EXAMPLES=OFF
-DSDL2PP_WITH_TESTS=OFF
-DSDL2PP_STATIC=${SDL2PP_STATIC}
)
vcpkg_install_cmake()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2pp RENAME copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)