Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 09052111 authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

Merge branch 'notest-pkgconfig' into 'master'

Update pkgconfig file generation (outdated since a while)

See merge request solverstack/chameleon!388
parents 227adfbe b0290cc5
No related branches found
No related tags found
No related merge requests found
...@@ -84,6 +84,7 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -84,6 +84,7 @@ MACRO(GENERATE_PKGCONFIG_FILE)
set(CHAMELEON_PKGCONFIG_DEFINITIONS "") set(CHAMELEON_PKGCONFIG_DEFINITIONS "")
set(COREBLAS_PKGCONFIG_DEFINITIONS "") set(COREBLAS_PKGCONFIG_DEFINITIONS "")
set(CUDABLAS_PKGCONFIG_DEFINITIONS "") set(CUDABLAS_PKGCONFIG_DEFINITIONS "")
set(HIPBLAS_PKGCONFIG_DEFINITIONS "")
# The link flags specific to this package and any required libraries # The link flags specific to this package and any required libraries
# that don't support PkgConfig # that don't support PkgConfig
...@@ -91,6 +92,7 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -91,6 +92,7 @@ MACRO(GENERATE_PKGCONFIG_FILE)
set(CHAMELEON_PKGCONFIG_LIBS "-lchameleon") set(CHAMELEON_PKGCONFIG_LIBS "-lchameleon")
set(COREBLAS_PKGCONFIG_LIBS "-lcoreblas") set(COREBLAS_PKGCONFIG_LIBS "-lcoreblas")
set(CUDABLAS_PKGCONFIG_LIBS "-lcudablas") set(CUDABLAS_PKGCONFIG_LIBS "-lcudablas")
set(HIPBLAS_PKGCONFIG_LIBS "-lhipblas")
# The link flags for private libraries required by this package but not # The link flags for private libraries required by this package but not
# exposed to applications # exposed to applications
...@@ -98,12 +100,14 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -98,12 +100,14 @@ MACRO(GENERATE_PKGCONFIG_FILE)
set(CHAMELEON_PKGCONFIG_LIBS_PRIVATE "") set(CHAMELEON_PKGCONFIG_LIBS_PRIVATE "")
set(COREBLAS_PKGCONFIG_LIBS_PRIVATE "") set(COREBLAS_PKGCONFIG_LIBS_PRIVATE "")
set(CUDABLAS_PKGCONFIG_LIBS_PRIVATE "") set(CUDABLAS_PKGCONFIG_LIBS_PRIVATE "")
set(HIPBLAS_PKGCONFIG_LIBS_PRIVATE "")
# A list of packages required by this package # A list of packages required by this package
set(CHAMELEON_LAPACK_PKGCONFIG_REQUIRED "chameleon") set(CHAMELEON_LAPACK_PKGCONFIG_REQUIRED "chameleon")
set(CHAMELEON_PKGCONFIG_REQUIRED "hqr") set(CHAMELEON_PKGCONFIG_REQUIRED "hqr")
set(COREBLAS_PKGCONFIG_REQUIRED "") set(COREBLAS_PKGCONFIG_REQUIRED "")
set(CUDABLAS_PKGCONFIG_REQUIRED "") set(CUDABLAS_PKGCONFIG_REQUIRED "")
set(HIPBLAS_PKGCONFIG_REQUIRED "")
# A list of private packages required by this package but not exposed to # A list of private packages required by this package but not exposed to
# applications # applications
...@@ -111,47 +115,56 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -111,47 +115,56 @@ MACRO(GENERATE_PKGCONFIG_FILE)
set(CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE "") set(CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE "")
set(COREBLAS_PKGCONFIG_REQUIRED_PRIVATE "") set(COREBLAS_PKGCONFIG_REQUIRED_PRIVATE "")
set(CUDABLAS_PKGCONFIG_REQUIRED_PRIVATE "") set(CUDABLAS_PKGCONFIG_REQUIRED_PRIVATE "")
set(HIPBLAS_PKGCONFIG_REQUIRED_PRIVATE "")
if(CHAMELEON_SCHED_STARPU)
if(CHAMELEON_SCHED_OPENMP)
list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_openmp)
list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE "${OpenMP_C_LIBRARIES}")
elseif(CHAMELEON_SCHED_PARSEC)
list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_parsec)
list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE "${PARSEC_LIBRARIES}")
elseif(CHAMELEON_SCHED_QUARK)
list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_quark)
list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE "${QUARK_LIBRARIES_DEP}")
elseif(CHAMELEON_SCHED_STARPU)
list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_starpu) list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_starpu)
if ( CHAMELEON_USE_MPI ) if ( CHAMELEON_USE_MPI )
list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpumpi-${CHAMELEON_STARPU_VERSION}) list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpumpi-${CHAMELEON_STARPU_VERSION})
else() else()
list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpu-${CHAMELEON_STARPU_VERSION}) list(APPEND CHAMELEON_PKGCONFIG_REQUIRED_PRIVATE starpu-${CHAMELEON_STARPU_VERSION})
endif() endif()
elseif(CHAMELEON_SCHED_QUARK)
list(APPEND CHAMELEON_PKGCONFIG_LIBS -lchameleon_quark)
list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE "${QUARK_LIBRARIES_DEP}")
endif() endif()
if(NOT CHAMELEON_SIMULATION) if(NOT CHAMELEON_SIMULATION)
list(APPEND COREBLAS_PKGCONFIG_LIBS_PRIVATE list(APPEND COREBLAS_PKGCONFIG_LIBS_PRIVATE
${LAPACKE_LIBRARIES_DEP} ${LAPACKE_LIBRARIES}
${CBLAS_LIBRARIES_DEP} ${CBLAS_LIBRARIES}
)
list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE
${EXTRA_LIBRARIES}
) )
list(APPEND CHAMELEON_PKGCONFIG_REQUIRED "coreblas") list(APPEND CHAMELEON_PKGCONFIG_REQUIRED "coreblas")
if(CHAMELEON_USE_CUDA) if(CHAMELEON_USE_CUDA)
list(APPEND CUDABLAS_PKGCONFIG_LIBS_PRIVATE ${EXTRA_LIBRARIES_CUDA}) list(APPEND CUDABLAS_PKGCONFIG_LIBS_PRIVATE ${CUDA_CUBLAS_LIBRARIES})
list(APPEND CUDABLAS_PKGCONFIG_REQUIRED "cuda")
list(APPEND CHAMELEON_PKGCONFIG_REQUIRED "cudablas") list(APPEND CHAMELEON_PKGCONFIG_REQUIRED "cudablas")
endif() endif()
else(NOT CHAMELEON_SIMULATION) if(CHAMELEON_USE_HIP)
list(APPEND HIPBLAS_PKGCONFIG_LIBS_PRIVATE ${HIPBLAS_LIBRARIES})
if(CHAMELEON_USE_CUDA) list(APPEND HIPBLAS_PKGCONFIG_LIBS_PRIVATE ${HIP_LIBRARIES})
list(APPEND CHAMELEON_PKGCONFIG_LIBS -lcudablas) list(APPEND CHAMELEON_PKGCONFIG_REQUIRED "hipblas")
endif() endif()
list(APPEND CHAMELEON_PKGCONFIG_LIBS
-lcoreblas
${EXTRA_LIBRARIES}
)
endif(NOT CHAMELEON_SIMULATION) endif(NOT CHAMELEON_SIMULATION)
list(APPEND CHAMELEON_PKGCONFIG_LIBS_PRIVATE
${M_LIBRARIES}
)
if(CHAMELEON_USE_MPI)
list(APPEND CHAMELEON_PKGCONFIG_REQUIRED "mpi")
endif()
# Define required package # Define required package
# ----------------------- # -----------------------
CLEAN_LIB_LIST(CHAMELEON) CLEAN_LIB_LIST(CHAMELEON)
...@@ -159,6 +172,9 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -159,6 +172,9 @@ MACRO(GENERATE_PKGCONFIG_FILE)
if(CHAMELEON_USE_CUDA) if(CHAMELEON_USE_CUDA)
CLEAN_LIB_LIST(CUDABLAS) CLEAN_LIB_LIST(CUDABLAS)
endif() endif()
if(CHAMELEON_USE_HIP)
CLEAN_LIB_LIST(HIPBLAS)
endif()
# Create .pc file # Create .pc file
# --------------- # ---------------
...@@ -168,6 +184,9 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -168,6 +184,9 @@ MACRO(GENERATE_PKGCONFIG_FILE)
if(CHAMELEON_USE_CUDA) if(CHAMELEON_USE_CUDA)
SET(_output_cudablas_file "${CMAKE_BINARY_DIR}/cudablas.pc") SET(_output_cudablas_file "${CMAKE_BINARY_DIR}/cudablas.pc")
endif() endif()
if(CHAMELEON_USE_HIP)
SET(_output_hipblas_file "${CMAKE_BINARY_DIR}/hipblas.pc")
endif()
# TODO: add url of CHAMELEON releases in .pc file # TODO: add url of CHAMELEON releases in .pc file
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/lib/pkgconfig/chameleon_lapack.pc.in" "${_output_chameleon_lapack_file}" @ONLY) CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/lib/pkgconfig/chameleon_lapack.pc.in" "${_output_chameleon_lapack_file}" @ONLY)
...@@ -176,6 +195,9 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -176,6 +195,9 @@ MACRO(GENERATE_PKGCONFIG_FILE)
if(CHAMELEON_USE_CUDA) if(CHAMELEON_USE_CUDA)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/lib/pkgconfig/cudablas.pc.in" "${_output_cudablas_file}" @ONLY) CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/lib/pkgconfig/cudablas.pc.in" "${_output_cudablas_file}" @ONLY)
endif() endif()
if(CHAMELEON_USE_HIP)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/lib/pkgconfig/hipblas.pc.in" "${_output_hipblas_file}" @ONLY)
endif()
# installation # installation
# ------------ # ------------
...@@ -183,6 +205,7 @@ MACRO(GENERATE_PKGCONFIG_FILE) ...@@ -183,6 +205,7 @@ MACRO(GENERATE_PKGCONFIG_FILE)
INSTALL(FILES ${_output_chameleon_file} DESTINATION lib/pkgconfig) INSTALL(FILES ${_output_chameleon_file} DESTINATION lib/pkgconfig)
INSTALL(FILES ${_output_coreblas_file} DESTINATION lib/pkgconfig) INSTALL(FILES ${_output_coreblas_file} DESTINATION lib/pkgconfig)
INSTALL(FILES ${_output_cudablas_file} DESTINATION lib/pkgconfig) INSTALL(FILES ${_output_cudablas_file} DESTINATION lib/pkgconfig)
INSTALL(FILES ${_output_hipblas_file} DESTINATION lib/pkgconfig)
ENDMACRO(GENERATE_PKGCONFIG_FILE) ENDMACRO(GENERATE_PKGCONFIG_FILE)
......
...@@ -14,7 +14,7 @@ libdir=${exec_prefix}/lib ...@@ -14,7 +14,7 @@ libdir=${exec_prefix}/lib
includedir=${exec_prefix}/include includedir=${exec_prefix}/include
Name: cudablas Name: cudablas
Description: Interface to cuBLAS/MAGMA routines + some other auxiliary routines Description: Interface to cuBLAS routines + some other auxiliary routines
Version: @CHAMELEON_VERSION_MAJOR@.@CHAMELEON_VERSION_MINOR@.@CHAMELEON_VERSION_MICRO@ Version: @CHAMELEON_VERSION_MAJOR@.@CHAMELEON_VERSION_MINOR@.@CHAMELEON_VERSION_MICRO@
Cflags: @CUDABLAS_PKGCONFIG_DEFINITIONS@ -I${includedir} Cflags: @CUDABLAS_PKGCONFIG_DEFINITIONS@ -I${includedir}
Libs: -L${libdir} @CUDABLAS_PKGCONFIG_LIBS@ Libs: -L${libdir} @CUDABLAS_PKGCONFIG_LIBS@
......
#
# @file hipblas.pc
#
# @copyright 2016-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.2.0
# @author Florent Pruvost
# @date 2023-05-03
#
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${exec_prefix}/include
Name: hipblas
Description: Interface to hipBLAS routines + some other auxiliary routines
Version: @CHAMELEON_VERSION_MAJOR@.@CHAMELEON_VERSION_MINOR@.@CHAMELEON_VERSION_MICRO@
Cflags: @HIPBLAS_PKGCONFIG_DEFINITIONS@ -I${includedir}
Libs: -L${libdir} @HIPBLAS_PKGCONFIG_LIBS@
Libs.private: @HIPBLAS_PKGCONFIG_LIBS_PRIVATE@
Requires: @HIPBLAS_PKGCONFIG_REQUIRED@
Requires.private: @HIPBLAS_PKGCONFIG_REQUIRED_PRIVATE@
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment