@@ -32,19 +32,21 @@ endif ()
32
32
#
33
33
if (CMAKE_INSTALL_LIBDIR )
34
34
message (STATUS "CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR} " )
35
- set (DYAD_LIBDIR ${CMAKE_INSTALL_LIBDIR} )
36
- set (DYAD_INSTALL_INCLUDE_DIR
35
+ set (DYAD_INSTALL_BINDIR ${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_BINDIR} )
36
+ set (DYAD_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_LIBDIR} )
37
+ set (DYAD_INSTALL_INCLUDEDIR
37
38
${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_INCLUDEDIR} )
38
39
set (DYAD_INSTALL_DOCDIR
39
40
${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_DOCDIR} )
40
41
set (DYAD_INSTALL_SYSCONFDIR
41
42
${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_SYSCONFDIR}/modulefiles )
42
43
else ()
43
- set (DYAD_LIBDIR "lib" )
44
- set (DYAD_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX} /include" )
44
+ set (DYAD_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX} /bin" )
45
+ set (DYAD_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX} /lib" )
46
+ set (DYAD_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX} /include" )
45
47
set (DYAD_INSTALL_DOCDIR "${CMAKE_INSTALL_PREFIX} /doc" )
46
48
set (DYAD_INSTALL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX} /etc/modulefiles" )
47
- message (STATUS "DYAD_LIBDIR set to ${DYAD_LIBDIR } " )
49
+ message (STATUS "DYAD_INSTALL_LIBDIR set to ${DYAD_INSTALL_LIBDIR } " )
48
50
endif ()
49
51
50
52
#------------------------------------------------------------------------------
@@ -54,17 +56,19 @@ endif ()
54
56
set (CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_BINARY_DIR} ${CMAKE_INSTALL_PREFIX} )
55
57
# This sets where to look for dependent library's cmake files
56
58
list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} /cmake/modules )
57
- list (APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR} /${DYAD_LIBDIR}/cmake )
59
+ list (APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR} /lib/cmake )
60
+ list (APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR} /lib64/cmake )
58
61
list (APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR} /share/cmake )
59
62
60
63
#------------------------------------------------------------------------------
61
- if (NOT DYAD_EXTERNALLY_CONFIGURED )
62
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin CACHE PATH "Single Directory for all Executables." )
63
- set (CMAKE_INCLUDE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /include CACHE PATH "Store the headers." )
64
- set (EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
65
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /${DYAD_LIBDIR} CACHE PATH "Single Directory for all Libraries" )
66
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /${DYAD_LIBDIR} CACHE PATH "Single Directory for all static libraries." )
67
- endif ()
64
+ # This doesn't really need to be in an 'if' statement since they're cache variables
65
+ # if (NOT DYAD_EXTERNALLY_CONFIGURED)
66
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin CACHE PATH "Single Directory for all Executables." )
67
+ set (CMAKE_INCLUDE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /include CACHE PATH "Store the headers." )
68
+ set (EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
69
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib CACHE PATH "Single Directory for all Libraries" )
70
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib CACHE PATH "Single Directory for all static libraries." )
71
+ # endif ()
68
72
69
73
#-----------------------------------------------------------------------------
70
74
# Targets built within this project are exported at Install time for use
@@ -285,123 +289,65 @@ include_directories(${CMAKE_SOURCE_DIR}/include) # public header
285
289
add_subdirectory (src/dyad )
286
290
#cmake_policy(SET CMP0079 NEW) # In case that we need more control over the target building order
287
291
288
-
289
- #-----------------------------------------------------------------------------
290
- # Configure the config.cmake file for the build directory
291
- #-----------------------------------------------------------------------------
292
- configure_file (
293
- ${CMAKE_CURRENT_SOURCE_DIR} /CMake/${PROJECT_NAME}-config.cmake.build.in
294
- ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME}/${PROJECT_NAME}-config.cmake @ONLY
295
- )
296
-
297
- configure_file (
298
- ${CMAKE_CURRENT_SOURCE_DIR} /CMake/${PROJECT_NAME}-config.cmake.install.in
299
- ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME}/install/${PROJECT_NAME}-config.cmake @ONLY
300
- )
301
- install (
302
- FILES
303
- ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME}/install/${PROJECT_NAME}-config.cmake
304
- DESTINATION
305
- ${DYAD_LIBDIR} /cmake/${PROJECT_NAME}
306
- )
307
- #-----------------------------------------------------------------------------
308
- # Configure the ${PROJECT_NAME}-config-version .cmake file for the install directory
309
- #-----------------------------------------------------------------------------
310
- configure_file (
311
- ${CMAKE_CURRENT_SOURCE_DIR} /CMake/${PROJECT_NAME}-config-version.cmake.in
312
- ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME}/${PROJECT_NAME}-config-version.cmake @ONLY
313
- )
314
-
315
- install (
316
- FILES
317
- ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME}/${PROJECT_NAME}-config-version.cmake
318
- DESTINATION
319
- ${DYAD_LIBDIR} /cmake/${PROJECT_NAME}
320
- )
321
-
322
- export (EXPORT ${DYAD_EXPORTED_TARGETS}
323
- FILE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME} /${PROJECT_NAME} Targets.cmake" )
324
-
325
292
# Write the configure file
326
293
configure_file ("${CMAKE_SOURCE_DIR} /cmake/configure_files/dyad_config.hpp.in"
327
294
"${CMAKE_INCLUDE_OUTPUT_DIRECTORY} /dyad/dyad_config.hpp" @ONLY )
328
295
329
-
330
296
################################################################
331
297
# Install DYAD
332
298
################################################################
333
299
334
300
include (CMakePackageConfigHelpers )
335
301
302
+ set (DYAD_BUILD_CMAKE_DIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /cmake/${PROJECT_NAME} " )
303
+ set (DYAD_INSTALL_CMAKE_DIR "${DYAD_INSTALL_LIBDIR} /cmake/${PROJECT_NAME} " )
304
+ set (DYAD_INSTALL_TMP_CMAKE_DIR "${CMAKE_BINARY_DIR} /install_cmake_scripts" )
305
+
336
306
# Write the version file. This is independent of build/install tree.
337
307
write_basic_package_version_file (
338
- DYADConfigVersion.cmake
308
+ ${DYAD_BUILD_CMAKE_DIR} / DYADConfigVersion.cmake
339
309
VERSION "${DYAD_PACKAGE_VERSION} "
340
310
COMPATIBILITY SameMajorVersion )
311
+ file (COPY ${DYAD_BUILD_CMAKE_DIR} /DYADConfigVersion.cmake
312
+ DESTINATION ${DYAD_INSTALL_TMP_CMAKE_DIR} )
341
313
342
- #...........................................
343
- # TODO: There are two different places where cmake config is handled currently.
344
- # Need to clean up and merge
345
-
346
- if (WIP_package_config )
347
314
# This is for the build tree
348
- #set(INCLUDE_INSTALL_DIRS
349
- # "${CMAKE_SOURCE_DIR}/src/dyad/common"
350
- # "${CMAKE_SOURCE_DIR}/src/dyad/core"
351
- # "${CMAKE_SOURCE_DIR}/src/dyad/dtl"
352
- # "${CMAKE_SOURCE_DIR}/src/dyad/module"
353
- # "${CMAKE_SOURCE_DIR}/src/dyad/wrapper"
354
- # "${CMAKE_SOURCE_DIR}/src/dyad/utils"
355
- # "${CMAKE_SOURCE_DIR}/src/dyad/utils/base64")
356
- # "${CMAKE_SOURCE_DIR}/include/dyad/stream")
357
315
set (EXTRA_CMAKE_MODULE_DIR "${CMAKE_SOURCE_DIR} /cmake/modules" )
358
-
359
- configure_package_config_file ( cmake/configure_files/DYADConfig.cmake.in
360
- " ${CMAKE_BINARY_DIR} / DYADConfig.cmake"
361
- INSTALL_DESTINATION "${CMAKE_BINARY_DIR} /src/dyad/ ${DYAD_LIBDIR} / cmake/dyad "
362
- PATH_VARS CMAKE_BINARY_DIR )
363
- # PATH_VARS INCLUDE_INSTALL_DIRS CMAKE_BINARY_DIR )
316
+ set ( INCLUDE_INSTALL_DIRS ${CMAKE_INCLUDE_OUTPUT_DIRECTORY} )
317
+ set ( LIB_INSTALL_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
318
+ configure_package_config_file ( ${CMAKE_CURRENT_SOURCE_DIR} /cmake/configure_files/ DYADConfig.cmake.in
319
+ "${DYAD_BUILD_CMAKE_DIR} /DYADConfig. cmake"
320
+ INSTALL_DESTINATION " ${DYAD_BUILD_CMAKE_DIR} "
321
+ PATH_VARS INCLUDE_INSTALL_DIRS LIB_INSTALL_DIR )
364
322
365
323
# Write the configure file for the install tree
366
- set (INCLUDE_INSTALL_DIRS include )
367
- set (EXTRA_CMAKE_MODULE_DIR )
324
+ set (EXTRA_CMAKE_MODULE_DIR "" )
325
+ set (INCLUDE_INSTALL_DIRS "${DYAD_INSTALL_INCLUDEDIR} " )
326
+ set (LIB_INSTALL_DIR "${DYAD_INSTALL_LIBDIR} " )
368
327
configure_package_config_file (cmake/configure_files/DYADConfig.cmake.in
369
- "${CMAKE_BINARY_DIR } /DYADConfig.cmake.install "
370
- INSTALL_DESTINATION "${DYAD_LIBDIR} /cmake/dyad "
371
- PATH_VARS INCLUDE_INSTALL_DIRS DYAD_LIBDIR )
328
+ "${DYAD_INSTALL_TMP_CMAKE_DIR } /DYADConfig.cmake"
329
+ INSTALL_DESTINATION "${DYAD_INSTALL_CMAKE_DIR} "
330
+ PATH_VARS INCLUDE_INSTALL_DIRS LIB_INSTALL_DIR )
372
331
373
332
# Install export
374
- install (EXPORT DYADTargets
333
+ install (EXPORT ${DYAD_EXPORTED_TARGETS} # DYADTargets
375
334
NAMESPACE DYAD::
376
335
FILE DYADTargets.cmake
377
- DESTINATION "${DYAD_LIBDIR} /cmake/dyad " )
336
+ DESTINATION "${DYAD_INSTALL_CMAKE_DIR} " )
378
337
379
338
# Install the cmake stuff
380
- install (FILES "${PROJECT_BINARY_DIR} /DYADConfig.cmake.install"
381
- DESTINATION "${DYAD_LIBDIR} /cmake/dyad"
382
- RENAME "DYADConfig.cmake" )
383
-
384
- install (FILES "${PROJECT_BINARY_DIR} /DYADConfigVersion.cmake"
385
- DESTINATION "${DYAD_LIBDIR} /cmake/dyad" )
339
+ install (DIRECTORY "${DYAD_INSTALL_TMP_CMAKE_DIR} /" # Trailing slash ensures directory structure is not copied
340
+ DESTINATION "${DYAD_INSTALL_CMAKE_DIR} "
341
+ FILES_MATCHING PATTERN "*.cmake" )
386
342
387
343
install (DIRECTORY cmake/modules
388
- DESTINATION "${DYAD_LIBDIR} /cmake/dyad "
344
+ DESTINATION "${DYAD_INSTALL_CMAKE_DIR} "
389
345
FILES_MATCHING PATTERN "*.cmake" )
390
- endif (WIP_package_config )
391
- #...........................................
392
346
393
347
install (FILES
394
348
"${CMAKE_INCLUDE_OUTPUT_DIRECTORY} /dyad/dyad_config.hpp"
395
349
DESTINATION
396
- ${DYAD_INSTALL_INCLUDE_DIR} /dyad )
397
-
398
- install (EXPORT
399
- ${DYAD_EXPORTED_TARGETS}
400
- DESTINATION
401
- ${DYAD_LIBDIR} /cmake/${PROJECT_NAME}
402
- FILE
403
- ${DYAD_EXPORTED_TARGETS} .cmake
404
- )
350
+ ${DYAD_INSTALL_INCLUDEDIR} /dyad )
405
351
406
352
# Install license and readme
407
353
install (FILES
@@ -455,10 +401,11 @@ string(APPEND _str
455
401
" DYAD_PACKAGE_VERSION: ${DYAD_PACKAGE_VERSION} \n " )
456
402
string (APPEND _str
457
403
" DYAD_GIT_VERSION: ${DYAD_GIT_VERSION} \n " )
458
- string (APPEND _str
459
- " DYAD_ENABLE_UCX_DATA: ${DYAD_ENABLE_UCX_DATA} \n " )
460
- string (APPEND _str
461
- " DYAD_ENABLE_UCX_DATA_RMA: ${DYAD_ENABLE_UCX_DATA_RMA} \n " )
404
+ # Comment out since they'll be printed again below
405
+ # string(APPEND _str
406
+ # " DYAD_ENABLE_UCX_DATA: ${DYAD_ENABLE_UCX_DATA}\n")
407
+ # string(APPEND _str
408
+ # " DYAD_ENABLE_UCX_DATA_RMA: ${DYAD_ENABLE_UCX_DATA_RMA}\n")
462
409
string (APPEND _str
463
410
" DYAD_ENABLE_TESTS: ${DYAD_ENABLE_TESTS} \n " )
464
411
string (APPEND _str
0 commit comments