From 1f1e282eac352fc3bfa465e5ee41b3aac1425afd Mon Sep 17 00:00:00 2001 From: Guillaume Sylvand <guillaume.sylvand@airbus.com> Date: Sun, 11 Sep 2016 19:26:29 +0000 Subject: [PATCH] CMake: add some target_link_libraries() to allow user app to link only with "-lchameleon" --- CMakeLists.txt | 1 + compute/CMakeLists.txt | 9 +++++++++ coreblas/compute/CMakeLists.txt | 6 ++++++ cudablas/compute/CMakeLists.txt | 5 +++++ runtime/parsec/CMakeLists.txt | 5 +++++ runtime/quark/CMakeLists.txt | 5 +++++ runtime/starpu/CMakeLists.txt | 5 +++++ 7 files changed, 36 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a93fe7c54..745f08cb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -912,6 +912,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_SOURCE_DIR}/cmake_modules/") -lchameleon_starpu ${STARPU_LIBRARIES_DEP} ) + link_directories(${STARPU_LIBRARY_DIRS_DEP}) elseif(CHAMELEON_SCHED_PARSEC) list(APPEND CHAMELEON_DEP -lchameleon_parsec diff --git a/compute/CMakeLists.txt b/compute/CMakeLists.txt index 784b42d1f..68a77fe56 100644 --- a/compute/CMakeLists.txt +++ b/compute/CMakeLists.txt @@ -248,6 +248,15 @@ endif(HAVE_ISO_C_BINDING) # ------------ add_library(chameleon ${CHAMELEON_SRCS} ${CHAMELEON_SRCSF}) +target_link_libraries(chameleon coreblas) +if(CHAMELEON_SCHED_STARPU) + target_link_libraries(chameleon chameleon_starpu) +elseif(CHAMELEON_SCHED_PARSEC) + target_link_libraries(chameleon chameleon_parsec) +elseif(CHAMELEON_SCHED_QUARK) + target_link_libraries(chameleon chameleon_quark) +endif() + add_dependencies(chameleon chameleon_include coreblas_include diff --git a/coreblas/compute/CMakeLists.txt b/coreblas/compute/CMakeLists.txt index e50cb56f2..6dc104b74 100644 --- a/coreblas/compute/CMakeLists.txt +++ b/coreblas/compute/CMakeLists.txt @@ -103,6 +103,12 @@ add_dependencies(coreblas coreblas_include) set_property(TARGET coreblas PROPERTY LINKER_LANGUAGE Fortran) set_property(TARGET coreblas PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") +if(NOT CHAMELEON_SIMULATION) + target_link_libraries(coreblas ${LAPACKE_LIBRARIES} ${CBLAS_LIBRARIES}) +else(NOT CHAMELEON_SIMULATION) + target_link_libraries(coreblas simulapacke simucblas) +endif(NOT CHAMELEON_SIMULATION) + # # Dependencies step # # ----------------- # foreach(_external_package "blas" "cblas" "lapack" "lapacke") diff --git a/cudablas/compute/CMakeLists.txt b/cudablas/compute/CMakeLists.txt index 79812cbba..91550a049 100644 --- a/cudablas/compute/CMakeLists.txt +++ b/cudablas/compute/CMakeLists.txt @@ -68,6 +68,11 @@ add_library(cudablas ${CUDABLAS_SRCS}) add_dependencies(cudablas cudablas_include) set_property(TARGET cudablas PROPERTY LINKER_LANGUAGE Fortran) +target_link_libraries(cudablas coreblas ${CUDA_LIBRARIES}) +if(CHAMELEON_USE_MAGMA) + target_link_libraries(cudablas ${MAGMA_LIBRARIES}) +endif(CHAMELEON_USE_MAGMA) + # installation # ------------ install(TARGETS cudablas diff --git a/runtime/parsec/CMakeLists.txt b/runtime/parsec/CMakeLists.txt index 0fadbfb10..064ac0d39 100644 --- a/runtime/parsec/CMakeLists.txt +++ b/runtime/parsec/CMakeLists.txt @@ -170,6 +170,11 @@ add_library(chameleon_parsec ${RUNTIME_SRCS}) set_property(TARGET chameleon_parsec PROPERTY LINKER_LANGUAGE Fortran) set_property(TARGET chameleon_parsec PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") +target_link_libraries(chameleon_parsec coreblas ${PARSEC_LIBRARIES}) +if(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA) + target_link_libraries(chameleon_parsec cudablas) +endif(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA) + add_dependencies(chameleon_parsec chameleon_include coreblas_include diff --git a/runtime/quark/CMakeLists.txt b/runtime/quark/CMakeLists.txt index c66a21b55..5729fe001 100644 --- a/runtime/quark/CMakeLists.txt +++ b/runtime/quark/CMakeLists.txt @@ -167,6 +167,11 @@ add_library(chameleon_quark ${RUNTIME_SRCS}) set_property(TARGET chameleon_quark PROPERTY LINKER_LANGUAGE Fortran) set_property(TARGET chameleon_quark PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") +target_link_libraries(chameleon_quark coreblas ${QUARK_LIBRARIES}) +if(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA) + target_link_libraries(chameleon_quark cudablas) +endif(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA) + add_dependencies(chameleon_quark chameleon_include coreblas_include diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt index f54b27697..c8919aa52 100644 --- a/runtime/starpu/CMakeLists.txt +++ b/runtime/starpu/CMakeLists.txt @@ -188,6 +188,11 @@ add_library(chameleon_starpu ${RUNTIME_SRCS}) set_property(TARGET chameleon_starpu PROPERTY LINKER_LANGUAGE Fortran) set_property(TARGET chameleon_starpu PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") +target_link_libraries(chameleon_starpu coreblas ${STARPU_LIBRARIES}) +if(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA) + target_link_libraries(chameleon_starpu cudablas) +endif(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA) + add_dependencies(chameleon_starpu chameleon_include coreblas_include -- GitLab