aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-10-02 13:56:36 -0700
committerGitHub <noreply@github.com>2017-10-02 13:56:36 -0700
commitb5de54f8add66fb60668e831ae00a29698ee55e9 (patch)
tree681c070c42929d4e53562a551fd437dae31d3d2c
parent4440ae36b5c217fd324875ff60b0e9feb7a400e9 (diff)
parent5f29b0aad767c70d7aaa210f451d2e553ec5df1e (diff)
downloadvcpkg-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.patch23
-rw-r--r--ports/libxmp-lite/0002-fix-symbols.patch44
-rw-r--r--ports/libxmp-lite/CMakeLists.txt65
-rw-r--r--ports/libxmp-lite/CONTROL3
-rw-r--r--ports/libxmp-lite/portfile.cmake27
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)