From 710b5ef4876ad0ab737f9ba2f814feb9e830159e Mon Sep 17 00:00:00 2001 From: Florent Pruvost <florent.pruvost@inria.fr> Date: Mon, 17 Jun 2024 16:53:53 +0200 Subject: [PATCH] ci: fix missing targets during cmake export and pkg-config --- CMakeLists.txt | 10 +++++++++- cmake_modules/CHAMELEONConfig.cmake.in | 10 ++++++++++ cmake_modules/GenPkgConfig.cmake | 16 +++++++++++++--- gpuhipblas/compute/CMakeLists.txt | 3 ++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 44b3fff3f..3892d9b94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -262,8 +262,10 @@ endif() # Option to activate or not simulation mode (use Simgrid through StarPU) # ---------------------------------------------------------------------- +cmake_dependent_option(CHAMELEON_SIMULATION +"Enable simulation mode using Simgrid through StarPU" OFF +"CHAMELEON_SCHED_STARPU" OFF) if(CHAMELEON_SCHED_STARPU) - option(CHAMELEON_SIMULATION "Enable simulation mode using Simgrid through StarPU" OFF) if (NOT CHAMELEON_SIMULATION) message("-- ${BoldGreen}CHAMELEON_SIMULATION is set to OFF, turn it ON to use" " SIMULATION mode (only with StarPU compiled with SimGrid)${ColourReset}") @@ -529,6 +531,12 @@ if(NOT CHAMELEON_SIMULATION) morse_export_imported_target(HIP HIP hip chameleon) morse_export_imported_target(HIP HIPBLAS hipblas chameleon) + if (CHAMELEON_USE_HIP_ROC) + morse_export_imported_target(roc hipblas rochipblas chameleon) + morse_export_imported_target(hip host hiphost chameleon) + morse_export_imported_target(hip device hipdevice chameleon) + morse_export_imported_target(hip amdhip64 hipamdhip64 chameleon) + endif() else(HIP_FOUND) message(FATAL_ERROR "CHAMELEON_USE_HIP requires HIP to be found") endif (HIP_FOUND) diff --git a/cmake_modules/CHAMELEONConfig.cmake.in b/cmake_modules/CHAMELEONConfig.cmake.in index b1f50a438..2346b326c 100644 --- a/cmake_modules/CHAMELEONConfig.cmake.in +++ b/cmake_modules/CHAMELEONConfig.cmake.in @@ -37,6 +37,16 @@ if (@CHAMELEON_USE_CUDA@ AND NOT @CHAMELEON_SIMULATION@) include("${CMAKE_CURRENT_LIST_DIR}/cudaTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/cublasTargets.cmake") endif() +if (@CHAMELEON_USE_HIP@ AND NOT @CHAMELEON_SIMULATION@) + include("${CMAKE_CURRENT_LIST_DIR}/hipTargets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/hipblasTargets.cmake") + if (@CHAMELEON_USE_HIP_ROC@) + include("${CMAKE_CURRENT_LIST_DIR}/rochipblasTargets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/hiphostTargets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/hipdeviceTargets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/hipamdhip64Targets.cmake") + endif() +endif() # add the targets file if (@CHAMELEON_USE_HMATOSS@) diff --git a/cmake_modules/GenPkgConfig.cmake b/cmake_modules/GenPkgConfig.cmake index 4cdb04163..37bbfb8c1 100644 --- a/cmake_modules/GenPkgConfig.cmake +++ b/cmake_modules/GenPkgConfig.cmake @@ -128,10 +128,20 @@ MACRO(GENERATE_PKGCONFIG_FILE) list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE "${QUARK_LIBRARIES_DEP}") elseif(CHAMELEON_SCHED_STARPU) list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_starpu) - if ( CHAMELEON_USE_MPI ) - list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpumpi-${CHAMELEON_STARPU_VERSION}) + if ( CHAMELEON_SIMULATION ) + # need PUBLIC here because simulation mode with starpu requires to replace the + # main function by a starpu main one + if ( CHAMELEON_USE_MPI ) + list(APPEND CHAMELEON_PKGCONFIG_REQUIRED starpumpi-${CHAMELEON_STARPU_VERSION}) + else() + list(APPEND CHAMELEON_PKGCONFIG_REQUIRED starpu-${CHAMELEON_STARPU_VERSION}) + endif() else() - list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpu-${CHAMELEON_STARPU_VERSION}) + if ( CHAMELEON_USE_MPI ) + list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpumpi-${CHAMELEON_STARPU_VERSION}) + else() + list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpu-${CHAMELEON_STARPU_VERSION}) + endif() endif() endif() diff --git a/gpuhipblas/compute/CMakeLists.txt b/gpuhipblas/compute/CMakeLists.txt index abaa7b40a..3c6349e80 100644 --- a/gpuhipblas/compute/CMakeLists.txt +++ b/gpuhipblas/compute/CMakeLists.txt @@ -70,7 +70,8 @@ target_include_directories(gpuhipblas PUBLIC $<INSTALL_INTERFACE:include>) set_property(TARGET gpuhipblas PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") -target_link_libraries(gpuhipblas PRIVATE coreblas HIP::HIPBLAS) +target_link_libraries(gpuhipblas PRIVATE coreblas) +target_link_libraries(gpuhipblas PUBLIC HIP::HIPBLAS) target_link_libraries(gpuhipblas PUBLIC MORSE::M) # export target coreblas -- GitLab