diff --git a/cmake_modules/morse/find/FindCHAMELEON.cmake b/cmake_modules/morse/find/FindCHAMELEON.cmake index 6adec0fa025cab9d5001f57fb70e27051c94bb48..2478fe8e4d9f66ea0cd5613e4a9b8346bafed417 100644 --- a/cmake_modules/morse/find/FindCHAMELEON.cmake +++ b/cmake_modules/morse/find/FindCHAMELEON.cmake @@ -117,7 +117,7 @@ endif() # ------------------------------------------------------------------------------------- include(FindPkgConfig) find_package(PkgConfig QUIET) -if(PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_DIR) +if(PKG_CONFIG_EXECUTABLE) pkg_search_module(CHAMELEON chameleon) if (NOT CHAMELEON_FIND_QUIETLY) @@ -156,9 +156,13 @@ if(PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_DIR) endif() endif() + set(CHAMELEON_INCLUDE_DIRS_DEP "${CHAMELEON_INCLUDE_DIRS}") + set(CHAMELEON_LIBRARY_DIRS_DEP "${CHAMELEON_LIBRARY_DIRS}") + set(CHAMELEON_LIBRARIES_DEP "${CHAMELEON_LIBRARIES}") + endif() -if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) +if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND OR CHAMELEON_DIR ) if (NOT CHAMELEON_FIND_QUIETLY) message(STATUS "Looking for CHAMELEON - PkgConfig not used") @@ -266,7 +270,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) # CHAMELEON may depend on CUDA/CUBLAS #------------------------------------ if (NOT CUDA_FOUND AND CHAMELEON_LOOK_FOR_CUDA) - if (CHAMELEON_FIND_REQUIRED) + if (CHAMELEON_FIND_REQUIRED AND CHAMELEON_FIND_REQUIRED_CUDA) find_package(CUDA REQUIRED) else() find_package(CUDA) @@ -286,7 +290,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) #------------------------------------------------- if( CUDA_FOUND AND CHAMELEON_LOOK_FOR_MAGMA ) set(CHAMELEON_MAGMA_VERSION "1.4" CACHE STRING "oldest MAGMA version desired") - if (CHAMELEON_FIND_REQUIRED) + if (CHAMELEON_FIND_REQUIRED AND CHAMELEON_FIND_REQUIRED_MAGMA) find_package(MAGMA ${CHAMELEON_MAGMA_VERSION} REQUIRED) else() find_package(MAGMA ${CHAMELEON_MAGMA_VERSION}) @@ -303,7 +307,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) if(NOT MPI_C_COMPILER) set(MPI_C_COMPILER mpicc) endif() - if (CHAMELEON_FIND_REQUIRED) + if (CHAMELEON_FIND_REQUIRED AND CHAMELEON_FIND_REQUIRED_MPI) find_package(MPI REQUIRED) else() find_package(MPI) @@ -339,7 +343,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) if (CHAMELEON_LOOK_FOR_FXT) list(APPEND STARPU_COMPONENT_LIST "FXT") endif() - if (CHAMELEON_FIND_REQUIRED) + if (CHAMELEON_FIND_REQUIRED AND CHAMELEON_FIND_REQUIRED_STARPU) find_package(STARPU ${CHAMELEON_STARPU_VERSION} REQUIRED COMPONENTS ${STARPU_COMPONENT_LIST}) else() @@ -352,7 +356,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) if( NOT QUARK_FOUND AND CHAMELEON_LOOK_FOR_QUARK ) # try to find quark runtime - if (CHAMELEON_FIND_REQUIRED) + if (CHAMELEON_FIND_REQUIRED AND CHAMELEON_FIND_REQUIRED_QUARK) find_package(QUARK REQUIRED COMPONENTS HWLOC) else() find_package(QUARK COMPONENTS HWLOC) @@ -727,7 +731,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) set(CMAKE_REQUIRED_LIBRARIES) endif(CHAMELEON_LIBRARIES) -endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND ) +endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND OR CHAMELEON_DIR) if (CHAMELEON_LIBRARIES AND NOT CHAMELEON_DIR) if (CHAMELEON_LIBRARY_DIRS) diff --git a/cmake_modules/morse/find/FindFFTW.cmake b/cmake_modules/morse/find/FindFFTW.cmake index 57b361b725f7960cab43354d5f7fab02b4fdc5e4..ad742325f00f04d7ecb798878d569924a7ad6fcc 100644 --- a/cmake_modules/morse/find/FindFFTW.cmake +++ b/cmake_modules/morse/find/FindFFTW.cmake @@ -129,7 +129,7 @@ if( FFTW_FIND_COMPONENTS ) endif() if (FFTW_LOOK_FOR_THREADS) - if (FFTW_FIND_REQUIRED) + if (FFTW_FIND_REQUIRED AND FFTW_FIND_REQUIRED_THREADS) find_package(Threads REQUIRED) else() find_package(Threads) @@ -137,7 +137,7 @@ if (FFTW_LOOK_FOR_THREADS) endif() if (FFTW_LOOK_FOR_OMP) - if (FFTW_FIND_REQUIRED) + if (FFTW_FIND_REQUIRED AND FFTW_FIND_REQUIRED_OMP) find_package(OpenMP REQUIRED) else() find_package(OpenMP) diff --git a/cmake_modules/morse/find/FindFXT.cmake b/cmake_modules/morse/find/FindFXT.cmake index ee8bbb942b8f4d6f5aba23cb26b4631a192c9f62..6a0e3f2f46deec7778a4fe0a16e03f1b81f7baf2 100644 --- a/cmake_modules/morse/find/FindFXT.cmake +++ b/cmake_modules/morse/find/FindFXT.cmake @@ -54,7 +54,7 @@ endif() # ------------------------------------------------------------------------------------- include(FindPkgConfig) find_package(PkgConfig QUIET) -if(PKG_CONFIG_EXECUTABLE AND NOT FXT_DIR) +if(PKG_CONFIG_EXECUTABLE) pkg_search_module(FXT fxt) if (NOT FXT_FIND_QUIETLY) @@ -74,7 +74,7 @@ if(PKG_CONFIG_EXECUTABLE AND NOT FXT_DIR) endif() -if( (NOT PKG_CONFIG_EXECUTABLE AND NOT FXT_FOUND) OR NOT FXT_FOUND ) +if( (NOT PKG_CONFIG_EXECUTABLE AND NOT FXT_FOUND) OR NOT FXT_FOUND OR FXT_DIR) if (NOT FXT_FIND_QUIETLY) message(STATUS "Looking for FXT - PkgConfig not used") @@ -248,7 +248,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT FXT_FOUND) OR NOT FXT_FOUND ) set(CMAKE_REQUIRED_LIBRARIES) endif(FXT_LIBRARIES) -endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT FXT_FOUND) OR NOT FXT_FOUND ) +endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT FXT_FOUND) OR NOT FXT_FOUND OR FXT_DIR) if (FXT_LIBRARIES AND NOT FXT_DIR) if (FXT_LIBRARY_DIRS) diff --git a/cmake_modules/morse/find/FindHWLOC.cmake b/cmake_modules/morse/find/FindHWLOC.cmake index 8157c381f2d69ffd49b3d8d56525aa1d6b1e4875..4c3be8d792d2a5014240c2a890d418a9c4d4c712 100644 --- a/cmake_modules/morse/find/FindHWLOC.cmake +++ b/cmake_modules/morse/find/FindHWLOC.cmake @@ -55,7 +55,7 @@ endif() # ------------------------------------------------------------------------------------- include(FindPkgConfig) find_package(PkgConfig QUIET) -if(PKG_CONFIG_EXECUTABLE AND NOT HWLOC_DIR) +if(PKG_CONFIG_EXECUTABLE) pkg_search_module(HWLOC hwloc) if (NOT HWLOC_FIND_QUIETLY) @@ -75,7 +75,7 @@ if(PKG_CONFIG_EXECUTABLE AND NOT HWLOC_DIR) endif() -if( (NOT PKG_CONFIG_EXECUTABLE AND NOT HWLOC_FOUND) OR NOT HWLOC_FOUND ) +if( (NOT PKG_CONFIG_EXECUTABLE AND NOT HWLOC_FOUND) OR NOT HWLOC_FOUND OR HWLOC_DIR) if (NOT HWLOC_FIND_QUIETLY) message(STATUS "Looking for HWLOC - PkgConfig not used") @@ -255,7 +255,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT HWLOC_FOUND) OR NOT HWLOC_FOUND ) set(CMAKE_REQUIRED_LIBRARIES) endif(HWLOC_LIBRARIES) -endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT HWLOC_FOUND) OR NOT HWLOC_FOUND ) +endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT HWLOC_FOUND) OR NOT HWLOC_FOUND OR HWLOC_DIR) if (HWLOC_LIBRARIES AND NOT HWLOC_DIR) if (HWLOC_LIBRARY_DIRS) diff --git a/cmake_modules/morse/find/FindMAGMA.cmake b/cmake_modules/morse/find/FindMAGMA.cmake index ae93ba634e494837e7def239474276139241f0ca..53f8573289848c74c196970900235b5698a4595e 100644 --- a/cmake_modules/morse/find/FindMAGMA.cmake +++ b/cmake_modules/morse/find/FindMAGMA.cmake @@ -102,7 +102,7 @@ endif() # ------------------------------------------------------------------------------------- include(FindPkgConfig) find_package(PkgConfig QUIET) -if(PKG_CONFIG_EXECUTABLE AND NOT MAGMA_DIR) +if(PKG_CONFIG_EXECUTABLE) pkg_search_module(MAGMA magma) if (NOT MAGMA_FIND_QUIETLY) @@ -148,11 +148,15 @@ if(PKG_CONFIG_EXECUTABLE AND NOT MAGMA_DIR) set(MAGMA_INCLUDE_DIRS_DEP "") set(MAGMA_LIBRARY_DIRS_DEP "") set(MAGMA_LIBRARIES_DEP "") + # replace it anyway: we should update it with dependencies given by pkg-config + set(MAGMA_INCLUDE_DIRS_DEP "${MAGMA_INCLUDE_DIRS}") + set(MAGMA_LIBRARY_DIRS_DEP "${MAGMA_LIBRARY_DIRS}") + set(MAGMA_LIBRARIES_DEP "${MAGMA_LIBRARIES}") endif() # if MAGMA is not found using pkg-config -if( (NOT PKG_CONFIG_EXECUTABLE AND NOT MAGMA_FOUND) OR NOT MAGMA_FOUND ) +if( (NOT PKG_CONFIG_EXECUTABLE AND NOT MAGMA_FOUND) OR NOT MAGMA_FOUND OR MAGMA_DIR) if (NOT MAGMA_FIND_QUIETLY) message(STATUS "Looking for MAGMA - PkgConfig not used") @@ -369,7 +373,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT MAGMA_FOUND) OR NOT MAGMA_FOUND ) set(CMAKE_REQUIRED_LIBRARIES) endif(MAGMA_LIBRARIES) -endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT MAGMA_FOUND) OR NOT MAGMA_FOUND ) +endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT MAGMA_FOUND) OR NOT MAGMA_FOUND OR MAGMA_DIR) if (MAGMA_LIBRARIES AND NOT MAGMA_DIR) if (MAGMA_LIBRARY_DIRS) diff --git a/cmake_modules/morse/find/FindMUMPS.cmake b/cmake_modules/morse/find/FindMUMPS.cmake index 7013664589f09246750e664d1a0a4828c95c8669..9d99eb561fbfb5fa25c70344e68a3ce93f5699bc 100644 --- a/cmake_modules/morse/find/FindMUMPS.cmake +++ b/cmake_modules/morse/find/FindMUMPS.cmake @@ -160,7 +160,7 @@ if (NOT MPI_FOUND AND MUMPS_LOOK_FOR_MPI) if(NOT MPI_C_COMPILER) set(MPI_C_COMPILER mpicc) endif() - if (MUMPS_FIND_REQUIRED) + if (MUMPS_FIND_REQUIRED AND MUMPS_FIND_REQUIRED_MPI) find_package(MPI REQUIRED) else() find_package(MPI) @@ -178,7 +178,7 @@ if (NOT SCALAPACK_FOUND AND MUMPS_LOOK_FOR_MPI) message(STATUS "Looking for MUMPS - Try to detect SCALAPACK") endif() # SCALAPACK is a required dependency if MPI is used - if (MUMPS_FIND_REQUIRED) + if (MUMPS_FIND_REQUIRED AND MUMPS_FIND_REQUIRED_MPI) find_package(SCALAPACK REQUIRED) else() find_package(SCALAPACK) @@ -191,7 +191,7 @@ if (NOT SCOTCH_FOUND AND MUMPS_LOOK_FOR_SCOTCH) if (NOT MUMPS_FIND_QUIETLY) message(STATUS "Looking for MUMPS - Try to detect SCOTCH") endif() - if (MUMPS_FIND_REQUIRED) + if (MUMPS_FIND_REQUIRED AND MUMPS_FIND_REQUIRED_SCOTCH) find_package(SCOTCH REQUIRED) else() find_package(SCOTCH) @@ -204,7 +204,7 @@ if (NOT METIS_FOUND AND MUMPS_LOOK_FOR_METIS) if (NOT MUMPS_FIND_QUIETLY) message(STATUS "Looking for MUMPS - Try to detect METIS") endif() - if (MUMPS_FIND_REQUIRED) + if (MUMPS_FIND_REQUIRED AND MUMPS_FIND_REQUIRED_METIS) find_package(METIS REQUIRED) else() find_package(METIS) diff --git a/cmake_modules/morse/find/FindPASTIX.cmake b/cmake_modules/morse/find/FindPASTIX.cmake index 848290f3993abfd8be26622009b6e4753e10629c..59bcb2ed898c52669f2ff330b0571e0dc894a839 100644 --- a/cmake_modules/morse/find/FindPASTIX.cmake +++ b/cmake_modules/morse/find/FindPASTIX.cmake @@ -124,7 +124,6 @@ if( PASTIX_FIND_COMPONENTS ) endforeach() endif() - # Dependencies detection # ---------------------- @@ -227,7 +226,7 @@ if (NOT MPI_FOUND AND PASTIX_LOOK_FOR_MPI) if(NOT MPI_C_COMPILER) set(MPI_C_COMPILER mpicc) endif() - if (PASTIX_FIND_REQUIRED) + if (PASTIX_FIND_REQUIRED AND PASTIX_FIND_REQUIRED_MPI) find_package(MPI REQUIRED) else() find_package(MPI) @@ -269,7 +268,7 @@ if( NOT STARPU_FOUND AND PASTIX_LOOK_FOR_STARPU) list(APPEND STARPU_COMPONENT_LIST "FXT") endif() # set the list of optional dependencies we may discover - if (PASTIX_FIND_REQUIRED) + if (PASTIX_FIND_REQUIRED AND PASTIX_FIND_REQUIRED_STARPU) find_package(STARPU ${PASTIX_STARPU_VERSION} REQUIRED COMPONENTS ${STARPU_COMPONENT_LIST}) else() @@ -285,7 +284,7 @@ if (NOT SCOTCH_FOUND AND PASTIX_LOOK_FOR_SCOTCH) if (NOT PASTIX_FIND_QUIETLY) message(STATUS "Looking for PASTIX - Try to detect SCOTCH") endif() - if (PASTIX_FIND_REQUIRED ) + if (PASTIX_FIND_REQUIRED AND PASTIX_FIND_REQUIRED_SCOTCH) find_package(SCOTCH REQUIRED) else() find_package(SCOTCH) @@ -298,7 +297,7 @@ if (NOT PTSCOTCH_FOUND AND PASTIX_LOOK_FOR_PTSCOTCH) if (NOT PASTIX_FIND_QUIETLY) message(STATUS "Looking for PASTIX - Try to detect PTSCOTCH") endif() - if (PASTIX_FIND_REQUIRED) + if (PASTIX_FIND_REQUIRED AND PASTIX_FIND_REQUIRED_PTSCOTCH) find_package(PTSCOTCH REQUIRED) else() find_package(PTSCOTCH) @@ -311,7 +310,7 @@ if (NOT METIS_FOUND AND PASTIX_LOOK_FOR_METIS) if (NOT PASTIX_FIND_QUIETLY) message(STATUS "Looking for PASTIX - Try to detect METIS") endif() - if (PASTIX_FIND_REQUIRED) + if (PASTIX_FIND_REQUIRED AND PASTIX_FIND_REQUIRED_METIS) find_package(METIS REQUIRED) else() find_package(METIS) diff --git a/cmake_modules/morse/find/FindQUARK.cmake b/cmake_modules/morse/find/FindQUARK.cmake index 1f0baa12df7428d76a04d4ade611ac80698ab260..7dbf0b4e12926d1e853e993852452308d9bd96d2 100644 --- a/cmake_modules/morse/find/FindQUARK.cmake +++ b/cmake_modules/morse/find/FindQUARK.cmake @@ -87,7 +87,7 @@ endif() # QUARK may depend on HWLOC, try to find it if (NOT HWLOC_FOUND AND QUARK_LOOK_FOR_HWLOC) - if (QUARK_FIND_REQUIRED) + if (QUARK_FIND_REQUIRED AND QUARK_FIND_REQUIRED_HWLOC) find_package(HWLOC REQUIRED) else() find_package(HWLOC) diff --git a/cmake_modules/morse/find/FindSTARPU.cmake b/cmake_modules/morse/find/FindSTARPU.cmake index 9da54b2db1ce1a5a28714a3e32766f20a60effb8..ff166ceb339ca10823c174ceea60fea2992517b1 100644 --- a/cmake_modules/morse/find/FindSTARPU.cmake +++ b/cmake_modules/morse/find/FindSTARPU.cmake @@ -101,7 +101,7 @@ endif() # STARPU may depend on HWLOC, try to find it if (NOT HWLOC_FOUND AND STARPU_LOOK_FOR_HWLOC) - if (STARPU_FIND_REQUIRED) + if (STARPU_FIND_REQUIRED AND STARPU_FIND_REQUIRED_HWLOC) find_package(HWLOC REQUIRED) else() find_package(HWLOC) @@ -110,7 +110,7 @@ endif() # STARPU may depend on CUDA, try to find it if (NOT CUDA_FOUND AND STARPU_LOOK_FOR_CUDA) - if (STARPU_FIND_REQUIRED) + if (STARPU_FIND_REQUIRED AND STARPU_FIND_REQUIRED_CUDA) find_package(CUDA REQUIRED) else() find_package(CUDA) @@ -126,7 +126,7 @@ endif() # STARPU may depend on MPI, try to find it if (NOT MPI_FOUND AND STARPU_LOOK_FOR_MPI) - if (STARPU_FIND_REQUIRED) + if (STARPU_FIND_REQUIRED AND STARPU_FIND_REQUIRED_MPI) find_package(MPI REQUIRED) else() find_package(MPI) @@ -139,7 +139,7 @@ endif() # STARPU may depend on BLAS, try to find it if (NOT BLAS_FOUND AND STARPU_LOOK_FOR_BLAS) - if (STARPU_FIND_REQUIRED) + if (STARPU_FIND_REQUIRED AND STARPU_FIND_REQUIRED_BLAS) find_package(BLAS REQUIRED) else() find_package(BLAS) @@ -148,7 +148,7 @@ endif() # STARPU may depend on MAGMA, try to find it if (NOT MAGMA_FOUND AND STARPU_LOOK_FOR_MAGMA) - if (STARPU_FIND_REQUIRED) + if (STARPU_FIND_REQUIRED AND STARPU_FIND_REQUIRED_MAGMA) find_package(MAGMA REQUIRED) else() find_package(MAGMA) @@ -157,7 +157,7 @@ endif() # STARPU may depend on FXT, try to find it if (NOT FXT_FOUND AND STARPU_LOOK_FOR_FXT) - if (STARPU_FIND_REQUIRED) + if (STARPU_FIND_REQUIRED AND STARPU_FIND_REQUIRED_FXT) find_package(FXT REQUIRED) else() find_package(FXT) @@ -169,7 +169,7 @@ endif() include(FindPkgConfig) find_package(PkgConfig QUIET) -if(PKG_CONFIG_EXECUTABLE AND NOT STARPU_DIR) +if(PKG_CONFIG_EXECUTABLE) pkg_search_module(STARPU_SHM libstarpu) set(STARPU_INCLUDE_DIRS "${STARPU_SHM_INCLUDE_DIRS}") @@ -229,12 +229,14 @@ if(PKG_CONFIG_EXECUTABLE AND NOT STARPU_DIR) else() set(STARPU_LIBRARIES "STARPU_LIBRARIES-NOTFOUND") endif() - + set(STARPU_INCLUDE_DIRS_DEP "${STARPU_INCLUDE_DIRS}") + set(STARPU_LIBRARY_DIRS_DEP "${STARPU_LIBRARY_DIRS}") endif() if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR (NOT STARPU_SHM_FOUND OR (NOT STARPU_MPI_FOUND AND STARPU_LOOK_FOR_MPI)) + OR STARPU_DIR ) # Looking for include @@ -768,6 +770,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR endif( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR (NOT STARPU_SHM_FOUND OR (NOT STARPU_MPI_FOUND AND STARPU_LOOK_FOR_MPI)) + OR STARPU_DIR ) if (STARPU_LIBRARIES AND NOT STARPU_DIR)