From 252ba6a04f190a1e371a8421e46e6be3cce173a9 Mon Sep 17 00:00:00 2001 From: JackBoosY <47264268+JackBoosY@users.noreply.github.com> Date: Tue, 26 Mar 2019 13:51:45 +0800 Subject: [PATCH] [libmikmod]fix missing dll bug. (#5743) * [libmikmod]fix missing dll bug. * [libmikmod]1.Set macro to replace fixed library suffixes to support multiple platforms 2.Copying dynamic library files is disabled when building static libraries * [libmikmod]1. change vcpkg_apply_patches to vcpkg_extract_source_archive_ex. 2.delete commented code. * [libmikmod] remove extra 'set' --- ports/libmikmod/CONTROL | 2 +- ports/libmikmod/fix-missing-dll.patch | 29 +++++++++++++++++++++++++++ ports/libmikmod/portfile.cmake | 12 ++++++++--- 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 ports/libmikmod/fix-missing-dll.patch diff --git a/ports/libmikmod/CONTROL b/ports/libmikmod/CONTROL index c1dc45c3e..820a861c6 100644 --- a/ports/libmikmod/CONTROL +++ b/ports/libmikmod/CONTROL @@ -1,4 +1,4 @@ Source: libmikmod -Version: 3.3.11.1-1 +Version: 3.3.11.1-2 Description: Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm. Build-Depends: openal-soft diff --git a/ports/libmikmod/fix-missing-dll.patch b/ports/libmikmod/fix-missing-dll.patch new file mode 100644 index 000000000..a15c2400c --- /dev/null +++ b/ports/libmikmod/fix-missing-dll.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 53a174e..b4d31d3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -856,11 +856,19 @@ INSTALL( + ARCHIVE DESTINATION "lib${LIB_SUFFIX}" + ) + +-INSTALL( +- FILES "${CMAKE_BINARY_DIR}/libmikmod-config" +- PERMISSIONS GROUP_EXECUTE GROUP_READ OWNER_EXECUTE OWNER_READ OWNER_WRITE WORLD_EXECUTE WORLD_READ +- DESTINATION "bin" +-) ++IF(WIN32) ++ SET(LIB_SUFFIX_USED ".dll") ++ELSEIF(UNIX) ++ SET(LIB_SUFFIX_USED ".so") ++ELSEIF(APPLE) ++ SET(LIB_SUFFIX_USED ".dylib") ++ELSE() ++ SET(LIB_SUFFIX_USED) ++ENDIF() ++ ++IF(NOT ENABLE_STATIC) ++ INSTALL(FILES "${CMAKE_BINARY_DIR}/mikmod${LIB_SUFFIX_USED}" DESTINATION "bin") ++ENDIF() + + INSTALL( + FILES diff --git a/ports/libmikmod/portfile.cmake b/ports/libmikmod/portfile.cmake index 1231f5bfa..3ff7ecb52 100644 --- a/ports/libmikmod/portfile.cmake +++ b/ports/libmikmod/portfile.cmake @@ -11,13 +11,19 @@ # include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libmikmod-3.3.11.1) + vcpkg_download_distfile(ARCHIVE URLS "https://downloads.sourceforge.net/project/mikmod/libmikmod/3.3.11.1/libmikmod-3.3.11.1.tar.gz" FILENAME "libmikmod-3.3.11.1.tar.gz" SHA512 f2439e2b691613847cd0787dd4e050116683ce7b05c215b8afecde5c6add819ea6c18e678e258c0a80786bef463f406072de15127f64368f694287a5e8e1a9de ) -vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_extract_source_archive_ex( + ARCHIVE ${ARCHIVE} + OUT_SOURCE_PATH SOURCE_PATH + PATCHES + fix-missing-dll.patch +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -49,4 +55,4 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) -endif() \ No newline at end of file +endif()