From 6fb72ff00b4ab842d898558254bcde35a4a26b09 Mon Sep 17 00:00:00 2001 From: Lily <47812810+LilyWangL@users.noreply.github.com> Date: Tue, 2 Jun 2020 07:17:34 +0800 Subject: [mimalloc] Install mimalloc-redirect.dll to CMAKE_INSTALL_BINDIR (#11632) --- ports/mimalloc/CONTROL | 2 +- ports/mimalloc/fix-cmake.patch | 132 ++++++++++++++++++++++------------------- ports/mimalloc/portfile.cmake | 1 - 3 files changed, 71 insertions(+), 64 deletions(-) diff --git a/ports/mimalloc/CONTROL b/ports/mimalloc/CONTROL index 7070cf192..95fec2b75 100644 --- a/ports/mimalloc/CONTROL +++ b/ports/mimalloc/CONTROL @@ -1,5 +1,5 @@ Source: mimalloc -Version: 1.6.1 +Version: 1.6.1-1 Description: Compact general purpose allocator with excellent performance Homepage: https://github.com/microsoft/mimalloc diff --git a/ports/mimalloc/fix-cmake.patch b/ports/mimalloc/fix-cmake.patch index e7db52654..d751a21c4 100644 --- a/ports/mimalloc/fix-cmake.patch +++ b/ports/mimalloc/fix-cmake.patch @@ -1,62 +1,70 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e16830a..c68ae65 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -166,6 +166,7 @@ message(STATUS "") - # Main targets - # ----------------------------------------------------------------------------- - -+if(BUILD_SHARED_LIBS) - # shared library - add_library(mimalloc SHARED ${mi_sources}) - set_target_properties(mimalloc PROPERTIES VERSION ${mi_version} OUTPUT_NAME ${mi_basename} ) -@@ -178,12 +179,19 @@ target_include_directories(mimalloc PUBLIC - ) - if(WIN32) - # On windows copy the mimalloc redirection dll too. -- target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.lib) -- add_custom_command(TARGET mimalloc POST_BUILD -+ if(CMAKE_SIZEOF_VOID_P EQUAL 8) -+ target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.lib) -+ add_custom_command(TARGET mimalloc POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.dll" $ - COMMENT "Copy mimalloc-redirect.dll to output directory") -+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) -+ target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect32.lib) -+ add_custom_command(TARGET mimalloc POST_BUILD -+ COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect32.dll" $ -+ COMMENT "Copy mimalloc-redirect32.dll to output directory") -+ endif() - endif() -- -+else() - # static library - add_library(mimalloc-static STATIC ${mi_sources}) - target_compile_definitions(mimalloc-static PRIVATE ${mi_defines} MI_STATIC_LIB) -@@ -201,10 +209,13 @@ if(WIN32) - else() - set_target_properties(mimalloc-static PROPERTIES OUTPUT_NAME ${mi_basename}) - endif() -- -+endif() - # install static and shared library, and the include files --install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_dir} LIBRARY) --install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION ${mi_install_dir}) -+if(BUILD_SHARED_LIBS) -+install(TARGETS mimalloc EXPORT mimalloc ARCHIVE DESTINATION lib RUNTIME DESTINATION bin LIBRARY DESTINATION lib NAMELINK_SKIP) -+else() -+install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION lib) -+endif() - install(FILES include/mimalloc.h DESTINATION ${mi_install_dir}/include) - install(FILES include/mimalloc-override.h DESTINATION ${mi_install_dir}/include) - install(FILES include/mimalloc-new-delete.h DESTINATION ${mi_install_dir}/include) -@@ -234,9 +245,6 @@ target_include_directories(mimalloc-obj PUBLIC - - # the FILES expression can also be: $ - # but that fails cmake versions less than 3.10 so we leave it as is for now --install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/mimalloc-obj.dir/src/static.c${CMAKE_C_OUTPUT_EXTENSION} -- DESTINATION ${mi_install_dir} -- RENAME ${mi_basename}${CMAKE_C_OUTPUT_EXTENSION} ) - - # ----------------------------------------------------------------------------- - # API surface testing +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e16830a..3c7c8da 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -166,6 +166,7 @@ message(STATUS "") + # Main targets + # ----------------------------------------------------------------------------- + ++if(BUILD_SHARED_LIBS) + # shared library + add_library(mimalloc SHARED ${mi_sources}) + set_target_properties(mimalloc PROPERTIES VERSION ${mi_version} OUTPUT_NAME ${mi_basename} ) +@@ -178,12 +179,27 @@ target_include_directories(mimalloc PUBLIC + ) + if(WIN32) + # On windows copy the mimalloc redirection dll too. +- target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.lib) +- add_custom_command(TARGET mimalloc POST_BUILD ++ if(CMAKE_SIZEOF_VOID_P EQUAL 8) ++ target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.lib) ++ add_custom_command(TARGET mimalloc POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.dll" $ + COMMENT "Copy mimalloc-redirect.dll to output directory") ++ install ( ++ FILES $/mimalloc-redirect.dll ++ DESTINATION ${CMAKE_INSTALL_BINDIR} ++ ) ++ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) ++ target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect32.lib) ++ add_custom_command(TARGET mimalloc POST_BUILD ++ COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect32.dll" $ ++ COMMENT "Copy mimalloc-redirect32.dll to output directory") ++ install ( ++ FILES $/mimalloc-redirect32.dll ++ DESTINATION ${CMAKE_INSTALL_BINDIR} ++ ) ++ endif() + endif() +- ++else() + # static library + add_library(mimalloc-static STATIC ${mi_sources}) + target_compile_definitions(mimalloc-static PRIVATE ${mi_defines} MI_STATIC_LIB) +@@ -201,10 +217,13 @@ if(WIN32) + else() + set_target_properties(mimalloc-static PROPERTIES OUTPUT_NAME ${mi_basename}) + endif() +- ++endif() + # install static and shared library, and the include files +-install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_dir} LIBRARY) +-install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION ${mi_install_dir}) ++if(BUILD_SHARED_LIBS) ++install(TARGETS mimalloc EXPORT mimalloc ARCHIVE DESTINATION lib RUNTIME DESTINATION bin LIBRARY DESTINATION lib NAMELINK_SKIP) ++else() ++install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION lib) ++endif() + install(FILES include/mimalloc.h DESTINATION ${mi_install_dir}/include) + install(FILES include/mimalloc-override.h DESTINATION ${mi_install_dir}/include) + install(FILES include/mimalloc-new-delete.h DESTINATION ${mi_install_dir}/include) +@@ -234,9 +253,6 @@ target_include_directories(mimalloc-obj PUBLIC + + # the FILES expression can also be: $ + # but that fails cmake versions less than 3.10 so we leave it as is for now +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/mimalloc-obj.dir/src/static.c${CMAKE_C_OUTPUT_EXTENSION} +- DESTINATION ${mi_install_dir} +- RENAME ${mi_basename}${CMAKE_C_OUTPUT_EXTENSION} ) + + # ----------------------------------------------------------------------------- + # API surface testing diff --git a/ports/mimalloc/portfile.cmake b/ports/mimalloc/portfile.cmake index 3db43aa01..e22aa4619 100644 --- a/ports/mimalloc/portfile.cmake +++ b/ports/mimalloc/portfile.cmake @@ -66,4 +66,3 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) endif() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) - -- cgit v1.2.3