diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-10-02 13:56:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-10-02 13:56:36 -0700 |
| commit | b5de54f8add66fb60668e831ae00a29698ee55e9 (patch) | |
| tree | 681c070c42929d4e53562a551fd437dae31d3d2c | |
| parent | 4440ae36b5c217fd324875ff60b0e9feb7a400e9 (diff) | |
| parent | 5f29b0aad767c70d7aaa210f451d2e553ec5df1e (diff) | |
| download | vcpkg-b5de54f8add66fb60668e831ae00a29698ee55e9.tar.gz vcpkg-b5de54f8add66fb60668e831ae00a29698ee55e9.zip | |
Merge pull request #1901 from Ghabry/add-xmplite
Add xmplite 4.4.1
| -rw-r--r-- | ports/libxmp-lite/0001-msvc-buildfix.patch | 23 | ||||
| -rw-r--r-- | ports/libxmp-lite/0002-fix-symbols.patch | 44 | ||||
| -rw-r--r-- | ports/libxmp-lite/CMakeLists.txt | 65 | ||||
| -rw-r--r-- | ports/libxmp-lite/CONTROL | 3 | ||||
| -rw-r--r-- | ports/libxmp-lite/portfile.cmake | 27 |
5 files changed, 162 insertions, 0 deletions
diff --git a/ports/libxmp-lite/0001-msvc-buildfix.patch b/ports/libxmp-lite/0001-msvc-buildfix.patch new file mode 100644 index 000000000..dfd548186 --- /dev/null +++ b/ports/libxmp-lite/0001-msvc-buildfix.patch @@ -0,0 +1,23 @@ +diff -Naur .\libxmp-lite-4.4.1/src/common.h .\libxmp-lite-4.4.1-orig/src/common.h +--- a/src/common.h 2016-07-16 13:37:36 +0200 ++++ b/src/common.h 2017-05-23 00:52:17 +0200 +@@ -77,19 +77,12 @@ + #ifndef CLIB_DECL + #define CLIB_DECL + #endif +-#ifdef DEBUG +-#ifndef ATTR_PRINTF +-#define ATTR_PRINTF(x,y) +-#endif +-void CLIB_DECL D_(const char *text, ...) ATTR_PRINTF(1,2); +-#else + // VS prior to VC7.1 does not support variadic macros. VC8.0 does not optimize unused parameters passing + #if _MSC_VER < 1400 + void __inline CLIB_DECL D_(const char *text, ...) { do {} while (0); } + #else + #define D_(args, ...) do {} while (0) + #endif +-#endif + + #elif defined __ANDROID__ + diff --git a/ports/libxmp-lite/0002-fix-symbols.patch b/ports/libxmp-lite/0002-fix-symbols.patch new file mode 100644 index 000000000..f765a7bf0 --- /dev/null +++ b/ports/libxmp-lite/0002-fix-symbols.patch @@ -0,0 +1,44 @@ +diff --git a/lite/src/format.c b/lite/src/format.c +--- a/src/format.c ++++ b/src/format.c +@@ -27,20 +27,20 @@ + #endif + #include "format.h" + +-extern const struct format_loader xm_loader; +-extern const struct format_loader mod_loader; +-extern const struct format_loader it_loader; +-extern const struct format_loader s3m_loader; ++extern const struct format_loader libxmp_loader_xm; ++extern const struct format_loader libxmp_loader_mod; ++extern const struct format_loader libxmp_loader_it; ++extern const struct format_loader libxmp_loader_s3m; + + extern const struct pw_format *const pw_format[]; + + const struct format_loader *const format_loader[5] = { +- &xm_loader, +- &mod_loader, ++ &libxmp_loader_xm, ++ &libxmp_loader_mod, + #ifndef LIBXMP_CORE_DISABLE_IT +- &it_loader, ++ &libxmp_loader_it, + #endif +- &s3m_loader, ++ &libxmp_loader_s3m, + NULL + }; + +diff --git a/lite/src/loaders/mod_load.c b/lite/src/loaders/mod_load.c +--- a/src/loaders/mod_load.c ++++ b/src/loaders/mod_load.c +@@ -36,7 +36,7 @@ + static int mod_test (HIO_HANDLE *, char *, const int); + static int mod_load (struct module_data *, HIO_HANDLE *, const int); + +-const struct format_loader mod_loader = { ++const struct format_loader libxmp_loader_mod = { + "Protracker", + mod_test, + mod_load diff --git a/ports/libxmp-lite/CMakeLists.txt b/ports/libxmp-lite/CMakeLists.txt new file mode 100644 index 000000000..9495e0eb4 --- /dev/null +++ b/ports/libxmp-lite/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.4) +project(libxmp-lite) + +set(HEADERS "include/libxmp-lite/xmp.h") + +set(SOURCES src/virtual.c + src/format.c + src/period.c + src/player.c + src/read_event.c + src/dataio.c + src/lfo.c + src/scan.c + src/control.c + src/filter.c + src/effects.c + src/mixer.c + src/mix_all.c + src/load_helpers.c + src/load.c + src/hio.c + src/smix.c + src/memio.c + src/loaders/common.c + src/loaders/itsex.c + src/loaders/sample.c + src/loaders/xm_load.c + src/loaders/mod_load.c + src/loaders/s3m_load.c + src/loaders/it_load.c +) + +include_directories(include/libxmp-lite src) + +option(BUILD_SHARED_LIBS "Build shared libs" OFF) +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + option(INSTALL_HEADERS "Install header files" OFF) +else() + option(INSTALL_HEADERS "Install header files" ON) +endif() + +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +add_library(libxmp-lite ${SOURCES}) +target_compile_definitions(libxmp-lite PRIVATE + LIBXMP_CORE_PLAYER=1 + inline=__inline + _USE_MATH_DEFINES=1 +) + +# Fix UWP /sdl compile errors +# Disable C4703: Not initialized +# Disable C4996: Deprecated +set_target_properties(libxmp-lite PROPERTIES COMPILE_FLAGS "/wd4703 /wd4996") + +install( + TARGETS libxmp-lite + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) + +if(INSTALL_HEADERS) + install(FILES ${HEADERS} DESTINATION include) +endif() diff --git a/ports/libxmp-lite/CONTROL b/ports/libxmp-lite/CONTROL new file mode 100644 index 000000000..1f7e8dded --- /dev/null +++ b/ports/libxmp-lite/CONTROL @@ -0,0 +1,3 @@ +Source: libxmp-lite +Version: 4.4.1 +Description: Lightweight version of libxmp that supports MOD, S3M, XM and IT modules. diff --git a/ports/libxmp-lite/portfile.cmake b/ports/libxmp-lite/portfile.cmake new file mode 100644 index 000000000..ac67940a1 --- /dev/null +++ b/ports/libxmp-lite/portfile.cmake @@ -0,0 +1,27 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxmp-lite-4.4.1) +vcpkg_download_distfile(ARCHIVE + URLS "http://sourceforge.net/projects/xmp/files/libxmp/4.4.1/libxmp-lite-4.4.1.tar.gz" + FILENAME "libxmp-lite-4.4.1.tar.gz" + SHA512 f27e3f9fb79ff15ce90b51fb29641c01cadf7455150da57cde6860c2ba075ed497650eb44ec9143bdd3538288228c609f7db6d862c9d73f007f686eccb05543e +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001-msvc-buildfix.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-fix-symbols.patch +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxmp-lite RENAME copyright) |
