From dcee71cc06badfb0732d1e865658c616006f315a Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 26 Nov 2024 15:10:39 -0600 Subject: [PATCH] Need later version & better way to locate cuFile lib (#17) * Need later version & better way to locate cuFile lib Signed-off-by: Quincey Koziol * Fix library name Signed-off-by: Quincey Koziol * Correct install directory macros Signed-off-by: Quincey Koziol * Add cuFile lib to GDS VFD library Signed-off-by: Quincey Koziol * Update CMakeLists.txt Co-authored-by: Jacob Faibussowitsch * Update src/CMakeLists.txt Co-authored-by: Jacob Faibussowitsch * Update CMakeLists.txt Co-authored-by: Jacob Faibussowitsch * Update CMakeLists.txt Co-authored-by: Jacob Faibussowitsch * Update src/CMakeLists.txt Co-authored-by: Jacob Faibussowitsch * Suggestions from Jacob * Update CMakeLists.txt Co-authored-by: Jacob Faibussowitsch --------- Signed-off-by: Quincey Koziol Co-authored-by: Jacob Faibussowitsch --- CMakeLists.txt | 31 ++++++++++--------------------- src/CMakeLists.txt | 2 ++ 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b97a65fe..255727a5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.23 FATAL_ERROR) +cmake_minimum_required(VERSION 3.25 FATAL_ERROR) # Setup cmake policies. foreach(policy @@ -31,21 +31,23 @@ project(HDF5_VFD_GDS C) #------------------------------------------------------------------------------ # Setup install and output Directories #------------------------------------------------------------------------------ +include(GNUInstallDirs) + if(NOT HDF5_VFD_GDS_INSTALL_BIN_DIR) - set(HDF5_VFD_GDS_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin) + set(HDF5_VFD_GDS_INSTALL_BIN_DIR ${CMAKE_INSTALL_BINDIR}) endif() if(NOT HDF5_VFD_GDS_INSTALL_LIB_DIR) - set(HDF5_VFD_GDS_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib) + set(HDF5_VFD_GDS_INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR}) endif() if(NOT HDF5_VFD_GDS_INSTALL_INCLUDE_DIR) # Interface include will default to prefix/include set(HDF5_VFD_GDS_INSTALL_INTERFACE include) - set(HDF5_VFD_GDS_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include) + set(HDF5_VFD_GDS_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}) else() set(HDF5_VFD_GDS_INSTALL_INTERFACE ${HDF5_VFD_GDS_INSTALL_INCLUDE_DIR}) endif() if(NOT HDF5_VFD_GDS_INSTALL_DATA_DIR) - set(HDF5_VFD_GDS_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share) + set(HDF5_VFD_GDS_INSTALL_DATA_DIR ${CMAKE_INSTALL_DATAROOTDIR}) endif() # Setting this ensures that "make install" will leave rpaths to external @@ -67,29 +69,16 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${HDF5_VFD_GDS_CMAKE_MODULE_PATH}) #------------------------------------------------------------------------------ # Locate CUDA #------------------------------------------------------------------------------ -find_package (CUDA REQUIRED) - -# Set Cufile installation directory to Cuda installation directory by default -set (HDF5_VFD_GDS_CUFILE_DIR ${CUDA_TOOLKIT_ROOT_DIR} CACHE PATH "Cufile installation directory for Nvidia GDS support") # Try to locate cufile library -find_library (HDF5_VFD_GDS_CUFILE_LIB - NAMES - cufile - HINTS - "${HDF5_VFD_GDS_CUFILE_DIR}/lib" - "${HDF5_VFD_GDS_CUFILE_DIR}/lib64" - REQUIRED -) +find_package(CUDAToolkit REQUIRED) set(HDF5_VFD_GDS_EXT_INCLUDE_DEPENDENCIES ${HDF5_VFD_GDS_EXT_INCLUDE_DEPENDENCIES} - ${CUDA_INCLUDE_DIRS} + ${CUDAToolkit_INCLUDE_DIRS} ) set(HDF5_VFD_GDS_EXT_LIB_DEPENDENCIES ${HDF5_VFD_GDS_EXT_LIB_DEPENDENCIES} - ${CUDA_LIBRARIES} - ${HDF5_VFD_GDS_CUFILE_LIB} ) #------------------------------------------------------------------------------ @@ -158,7 +147,7 @@ message(STATUS "Configuring ${HDF5_VFD_GDS_PACKAGE} v${HDF5_VFD_GDS_VERSION_FULL #------------------------------------------------------------------------------ if(APPLE AND NOT HDF5_VFD_GDS_EXTERNALLY_CONFIGURED) # We are doing a unix-style install i.e. everything will be installed in - # CMAKE_INSTALL_PREFIX/bin and CMAKE_INSTALL_PREFIX/lib etc. as on other unix + # ${CMAKE_INSTALL_BINDIR} and ${CMAKE_INSTALL_LIBDIR} etc. as on other unix # platforms. We still need to setup CMAKE_INSTALL_NAME_DIR correctly so that # the binaries point to appropriate location for the libraries. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d440996f..646f9d093 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -42,9 +42,11 @@ target_include_directories(hdf5_vfd_gds SYSTEM PUBLIC ${HDF5_VFD_GDS_EXT_INCLUDE_DEPENDENCIES} ) target_link_libraries(hdf5_vfd_gds + PUBLIC ${HDF5_VFD_GDS_EXPORTED_LIBS} ${HDF5_VFD_GDS_EXT_LIB_DEPENDENCIES} ${HDF5_VFD_GDS_EXT_PKG_DEPENDENCIES} + PRIVATE CUDA::cuFile CUDA::cudart_static ) hdf5_vfd_gds_set_lib_options(hdf5_vfd_gds "hdf5_vfd_gds" ${HDF5_VFD_GDS_LIBTYPE}) if(HDF5_VFD_GDS_ENABLE_COVERAGE)