Skip to content

Commit 3417291

Browse files
committed
fix symlink and --prefix option with delayed CMAKE_INSTALL_PREFIX; fix issue #398
1 parent 143cf9c commit 3417291

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

CMakeLists.txt

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,11 @@ endif()
208208
# -----------------------------------------------------------------------------
209209

210210
if (MI_INSTALL_TOPLEVEL)
211-
set(mi_install_dir "")
211+
set(mi_install_dir "")
212+
set(mi_install_libdir "lib")
212213
else()
213-
set(mi_install_dir "lib/mimalloc-${mi_version}")
214+
set(mi_install_dir "lib/mimalloc-${mi_version}")
215+
set(mi_install_libdir "${mi_install_dir}")
214216
endif()
215217

216218
if(MI_SECURE)
@@ -277,14 +279,7 @@ if(MI_BUILD_SHARED)
277279
COMMENT "Copy mimalloc-redirect${MIMALLOC_REDIRECT_SUFFIX}.dll to output directory")
278280
endif()
279281

280-
if (MI_INSTALL_TOPLEVEL MATCHES "ON")
281-
install(TARGETS mimalloc EXPORT mimalloc LIBRARY
282-
RUNTIME DESTINATION bin
283-
LIBRARY DESTINATION lib
284-
ARCHIVE DESTINATION lib)
285-
else()
286-
install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_dir} LIBRARY)
287-
endif()
282+
install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_libdir} LIBRARY)
288283
install(EXPORT mimalloc DESTINATION ${mi_install_dir}/cmake)
289284
endif()
290285

@@ -308,7 +303,7 @@ if (MI_BUILD_STATIC)
308303
set_target_properties(mimalloc-static PROPERTIES OUTPUT_NAME ${mi_basename})
309304
endif()
310305

311-
install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION ${mi_install_dir})
306+
install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION ${mi_install_libdir} LIBRARY)
312307
endif()
313308

314309
# install include files
@@ -322,8 +317,8 @@ if(NOT WIN32 AND MI_BUILD_SHARED AND NOT MI_INSTALL_TOPLEVEL)
322317
# install a symlink in the /usr/local/lib to the versioned library
323318
set(mi_symlink "${CMAKE_SHARED_MODULE_PREFIX}${mi_basename}${CMAKE_SHARED_LIBRARY_SUFFIX}")
324319
set(mi_soname "mimalloc-${mi_version}/${mi_symlink}.${mi_version}")
325-
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${mi_soname} ${mi_symlink} WORKING_DIRECTORY ${mi_install_dir}/..)")
326-
install(CODE "MESSAGE(\"-- Symbolic link: ${CMAKE_INSTALL_PREFIX}/lib/${mi_symlink} -> ${mi_soname}\")")
320+
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${mi_soname} ${mi_symlink} WORKING_DIRECTORY \${CMAKE_INSTALL_PREFIX}/lib)")
321+
install(CODE "MESSAGE(\"-- Symbolic link: \${CMAKE_INSTALL_PREFIX}/lib/${mi_symlink} -> ${mi_soname}\")")
327322
endif()
328323

329324
# single object file for more predictable static overriding
@@ -343,7 +338,7 @@ if (MI_BUILD_OBJECT)
343338
# the FILES expression can also be: $<TARGET_OBJECTS:mimalloc-obj>
344339
# but that fails cmake versions less than 3.10 so we leave it as is for now
345340
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/mimalloc-obj.dir/src/static.c${CMAKE_C_OUTPUT_EXTENSION}
346-
DESTINATION ${mi_install_dir}
341+
DESTINATION ${mi_install_libdir}
347342
RENAME ${mi_basename}${CMAKE_C_OUTPUT_EXTENSION} )
348343
endif()
349344

0 commit comments

Comments
 (0)