From 1f08317f3ca30de6df73d6bd6ef83e22c9359de4 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Sat, 30 May 2020 07:19:57 +0200 Subject: [PATCH] Add option to install directly in CMAKE_INSTALL_PREFIX --- CMakeLists.txt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e37efcb0..707cf9b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ option(MI_BUILD_STATIC "Build static library" ON) option(MI_BUILD_OBJECT "Build object library" ON) option(MI_BUILD_TESTS "Build test executables" ON) option(MI_CHECK_FULL "Use full internal invariant checking in DEBUG mode (deprecated, use MI_DEBUG_FULL instead)" OFF) +option(MI_INSTALL_TOPLEVEL "Install directly into $CMAKE_INSTALL_PREFIX instead of PREFIX/lib/mimalloc-version" OFF) include("cmake/mimalloc-config-version.cmake") @@ -175,7 +176,11 @@ endif() # Install and output names # ----------------------------------------------------------------------------- -set(mi_install_dir "${CMAKE_INSTALL_PREFIX}/lib/mimalloc-${mi_version}") +if (MI_INSTALL_TOPLEVEL MATCHES "ON") + set(mi_install_dir "${CMAKE_INSTALL_PREFIX}") +else() + set(mi_install_dir "${CMAKE_INSTALL_PREFIX}/lib/mimalloc-${mi_version}") +endif() if(MI_SECURE MATCHES "ON") set(mi_basename "mimalloc-secure") else() @@ -227,7 +232,14 @@ if(MI_BUILD_SHARED) COMMENT "Copy mimalloc-redirect.dll to output directory") endif() - install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_dir} LIBRARY) + if (MI_INSTALL_TOPLEVEL MATCHES "ON") + install(TARGETS mimalloc EXPORT mimalloc LIBRARY + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + else() + install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_dir} LIBRARY) + endif() install(EXPORT mimalloc DESTINATION ${mi_install_dir}/cmake) endif() @@ -261,7 +273,7 @@ install(FILES include/mimalloc-new-delete.h DESTINATION ${mi_install_dir}/includ install(FILES cmake/mimalloc-config.cmake DESTINATION ${mi_install_dir}/cmake) install(FILES cmake/mimalloc-config-version.cmake DESTINATION ${mi_install_dir}/cmake) -if(NOT WIN32 AND MI_BUILD_SHARED) +if(NOT WIN32 AND MI_BUILD_SHARED AND NOT MI_INSTALL_TOPLEVEL) # install a symlink in the /usr/local/lib to the versioned library set(mi_symlink "${CMAKE_SHARED_MODULE_PREFIX}${mi_basename}${CMAKE_SHARED_LIBRARY_SUFFIX}") set(mi_soname "mimalloc-${mi_version}/${mi_symlink}.${mi_version}")