@@ -208,11 +208,13 @@ endif()
208
208
# -----------------------------------------------------------------------------
209
209
210
210
if (MI_INSTALL_TOPLEVEL )
211
- set (mi_install_dir "" )
212
- set (mi_install_libdir "lib" )
211
+ set (mi_install_libdir "lib" )
212
+ set (mi_install_incdir "include" )
213
+ set (mi_install_cmakedir "cmake" )
213
214
else ()
214
- set (mi_install_dir "lib/mimalloc-${mi_version} " )
215
- set (mi_install_libdir "${mi_install_dir} " )
215
+ set (mi_install_libdir "lib/mimalloc-${mi_version} " )
216
+ set (mi_install_incdir "include/mimalloc-${mi_version} " )
217
+ set (mi_install_cmakedir "share/mimalloc-${mi_version} /cmake" )
216
218
endif ()
217
219
218
220
if (MI_SECURE )
@@ -246,7 +248,7 @@ if(MI_USE_CXX)
246
248
else ()
247
249
message (STATUS "Compiler : ${CMAKE_C_COMPILER} " )
248
250
endif ()
249
- message (STATUS "Install directory : ${mi_install_dir } " )
251
+ message (STATUS "Version : ${mi_version } " )
250
252
message (STATUS "Build targets : ${mi_build_targets} " )
251
253
message (STATUS "" )
252
254
@@ -263,7 +265,7 @@ if(MI_BUILD_SHARED)
263
265
target_link_libraries (mimalloc PUBLIC ${mi_libraries} )
264
266
target_include_directories (mimalloc PUBLIC
265
267
$< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
266
- $< INSTALL_INTERFACE:${mi_install_dir} /include >
268
+ $< INSTALL_INTERFACE:${mi_install_incdir} >
267
269
)
268
270
if (WIN32 )
269
271
# On windows copy the mimalloc redirection dll too.
@@ -280,7 +282,7 @@ if(MI_BUILD_SHARED)
280
282
endif ()
281
283
282
284
install (TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_libdir} LIBRARY )
283
- install (EXPORT mimalloc DESTINATION ${mi_install_dir} /cmake )
285
+ install (EXPORT mimalloc DESTINATION ${mi_install_cmakedir} )
284
286
endif ()
285
287
286
288
# static library
@@ -292,7 +294,7 @@ if (MI_BUILD_STATIC)
292
294
target_link_libraries (mimalloc-static PUBLIC ${mi_libraries} )
293
295
target_include_directories (mimalloc-static PUBLIC
294
296
$< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
295
- $< INSTALL_INTERFACE:${mi_install_dir} /include >
297
+ $< INSTALL_INTERFACE:${mi_install_incdir} >
296
298
)
297
299
if (WIN32 )
298
300
# When building both static and shared libraries on Windows, a static library should use a
@@ -307,18 +309,21 @@ if (MI_BUILD_STATIC)
307
309
endif ()
308
310
309
311
# install include files
310
- install (FILES include /mimalloc.h DESTINATION ${mi_install_dir} /include )
311
- install (FILES include /mimalloc-override.h DESTINATION ${mi_install_dir} /include )
312
- install (FILES include /mimalloc-new-delete.h DESTINATION ${mi_install_dir} /include )
313
- install (FILES cmake/mimalloc-config.cmake DESTINATION ${mi_install_dir} /cmake )
314
- install (FILES cmake/mimalloc-config-version.cmake DESTINATION ${mi_install_dir} /cmake )
312
+ install (FILES include /mimalloc.h DESTINATION ${mi_install_incdir} )
313
+ install (FILES include /mimalloc-override.h DESTINATION ${mi_install_incdir} )
314
+ install (FILES include /mimalloc-new-delete.h DESTINATION ${mi_install_incdir} )
315
+ install (FILES cmake/mimalloc-config.cmake DESTINATION ${mi_install_cmakedir} )
316
+ install (FILES cmake/mimalloc-config-version.cmake DESTINATION ${mi_install_cmakedir} )
315
317
316
318
if (NOT WIN32 AND MI_BUILD_SHARED AND NOT MI_INSTALL_TOPLEVEL )
317
319
# install a symlink in the /usr/local/lib to the versioned library
320
+ # note: use delayed prefix expansion as \${CMAKE_INSTALL_PREFIX}
318
321
set (mi_symlink "${CMAKE_SHARED_MODULE_PREFIX}${mi_basename}${CMAKE_SHARED_LIBRARY_SUFFIX} " )
319
322
set (mi_soname "mimalloc-${mi_version} /${mi_symlink} .${mi_version} " )
320
323
install (CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${mi_soname} ${mi_symlink} WORKING_DIRECTORY \$ {CMAKE_INSTALL_PREFIX}/lib)" )
321
324
install (CODE "MESSAGE(\" -- Symbolic link: \$ {CMAKE_INSTALL_PREFIX}/lib/${mi_symlink} -> ${mi_soname} \" )" )
325
+ install (CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${mi_soname} ${mi_symlink} .${mi_version} WORKING_DIRECTORY \$ {CMAKE_INSTALL_PREFIX}/lib)" )
326
+ install (CODE "MESSAGE(\" -- Symbolic link: \$ {CMAKE_INSTALL_PREFIX}/lib/${mi_symlink} .${mi_version} -> ${mi_soname} \" )" )
322
327
endif ()
323
328
324
329
# single object file for more predictable static overriding
@@ -329,11 +334,11 @@ if (MI_BUILD_OBJECT)
329
334
target_compile_options (mimalloc-obj PRIVATE ${mi_cflags} )
330
335
target_include_directories (mimalloc-obj PUBLIC
331
336
$< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>
332
- $< INSTALL_INTERFACE:${mi_install_dir} /include >
337
+ $< INSTALL_INTERFACE:${mi_install_incdir} >
333
338
)
334
339
335
340
# the following seems to lead to cmake warnings/errors on some systems, disable for now :-(
336
- # install(TARGETS mimalloc-obj EXPORT mimalloc DESTINATION ${mi_install_dir })
341
+ # install(TARGETS mimalloc-obj EXPORT mimalloc DESTINATION ${mi_install_libdir })
337
342
338
343
# the FILES expression can also be: $<TARGET_OBJECTS:mimalloc-obj>
339
344
# but that fails cmake versions less than 3.10 so we leave it as is for now
0 commit comments