From 224f9ac0a679912e4d60be6deec465b1069f6079 Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Tue, 3 Feb 2015 18:02:48 +0000
Subject: [PATCH] update the CMakeLists of chameleon to be more verbose about
 options set, remove set of cache for package dir (done inside Finds), remove
 some required non empty lists in find_package_handle_standard_args because it
 can be not defined in some case (without BLASEXT/LAPACKEXT)

---
 CMakeLists.txt                             | 42 ++++++++++++++++------
 cmake_modules/morse/find/FindCBLAS.cmake   |  3 +-
 cmake_modules/morse/find/FindLAPACK.cmake  |  4 +--
 cmake_modules/morse/find/FindLAPACKE.cmake |  3 +-
 cmake_modules/morse/find/FindTMG.cmake     |  3 +-
 5 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index dc6f5e383..6c5803dae 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -102,6 +102,9 @@ option(CHAMELEON_SCHED_STARPU
 option(CHAMELEON_SCHED_QUARK
     "Enable Quark scheduler as the default runtime
     (Conflict with other CHAMELEON_SCHED_* options)" OFF)
+message(STATUS "CHAMELEON uses StarPU runtime: CHAMELEON_SCHED_STARPU is set to ON")
+message(STATUS "To use CHAMELEON with QUARK runtime: set CHAMELEON_SCHED_QUARK"
+    "to ON (CHAMELEON_SCHED_STARPU will be disabled)")
 
 if (CHAMELEON_SCHED_QUARK)
     set(CHAMELEON_SCHED_STARPU OFF)
@@ -160,34 +163,62 @@ endif()
 cmake_dependent_option(CHAMELEON_USE_MPI
                     "Enable distributed memory through MPI" OFF
                     "CHAMELEON_SCHED_STARPU" OFF)
+if (NOT CHAMELEON_USE_MPI)
+    message(STATUS "CHAMELEON_USE_MPI is set to OFF, turn it ON to use MPI (only with StarPU)")
+endif()
 
 # Enable Cuda kernels if StarPU (only if StarPU runtime is enabled)
 # TODO: Default should be changed to ON/OFF when it will be ok
 cmake_dependent_option(CHAMELEON_USE_CUDA
                     "Enable CUDA kernels" OFF
                     "CHAMELEON_SCHED_STARPU" OFF)
+if (NOT CHAMELEON_USE_CUDA)
+    message(STATUS "CHAMELEON_USE_CUDA is set to OFF, turn it ON to use CUDA (only with StarPU)")
+endif()
 
 # Enable MAGMA advanced kernels if CUDA is enabled
 cmake_dependent_option(CHAMELEON_USE_MAGMA
                     "Enable MAGMA Cuda kernels" OFF
                     "CHAMELEON_USE_CUDA" OFF)
+if (NOT CHAMELEON_USE_MAGMA)
+    message(STATUS "CHAMELEON_USE_MAGMA is set to OFF, turn it ON to use MAGMA (only with StarPU)")
+endif()
 
 # Enable FXT if StarPU (only if StarPU runtime is enabled)
 cmake_dependent_option(CHAMELEON_USE_FXT
                     "Enable FXT with STARPU" OFF
                     "CHAMELEON_SCHED_STARPU" OFF)
+if (NOT CHAMELEON_USE_FXT)
+    message(STATUS "CHAMELEON_USE_FXT is set to OFF, turn it ON to use FxT (only with StarPU)")
+endif()
 
 # Options to enable/disable testings and timings
 # ----------------------------------------------
 option(CHAMELEON_ENABLE_DOCS     "Enable documentation build"  ON)
+if (CHAMELEON_ENABLE_DOCS)
+    message(STATUS "CHAMELEON_ENABLE_DOCS is set to ON, turn it OFF to avoid building docs")
+endif()
 option(CHAMELEON_ENABLE_EXAMPLE  "Enable examples build"       ON)
+if (CHAMELEON_ENABLE_EXAMPLE)
+    message(STATUS "CHAMELEON_ENABLE_EXAMPLE is set to ON, turn it OFF to avoid building examples")
+endif()
 option(CHAMELEON_ENABLE_TESTING  "Enable testings build"       ON)
+if (CHAMELEON_ENABLE_TESTING)
+    message(STATUS "CHAMELEON_ENABLE_TESTING is set to ON, turn it OFF to avoid building testing")
+endif()
 option(CHAMELEON_ENABLE_TIMING   "Enable timings build"        ON)
+if (CHAMELEON_ENABLE_TIMING)
+    message(STATUS "CHAMELEON_ENABLE_TIMING is set to ON, turn it OFF to avoid building timing")
+endif()
 
 # Option to activate or not simulation mode (use Simgrid through StarPU)
 # ----------------------------------------------------------------------
 if(CHAMELEON_SCHED_STARPU)
     option(CHAMELEON_SIMULATION "Enable simulation mode using Simgrid through StarPU" OFF)
+    if (NOT CHAMELEON_SIMULATION)
+        message(STATUS "CHAMELEON_SIMULATION is set to OFF, turn it ON to use"
+            "SIMULATION mode (only with StarPU compiled with SimGrid)")
+    endif()
 endif()
 
 # Initially we need to generate files for different precisions
@@ -249,7 +280,6 @@ if(NOT CHAMELEON_SIMULATION)
 
     # CHAMELEON depends on CBLAS
     #----------------------------
-    set(BLAS_DIR "" CACHE PATH "Root directory of BLAS library")
     find_package(BLASEXT REQUIRED)
     if(BLAS_FOUND AND BLAS_LIBRARY_DIRS)
         # the RPATH to be used when installing
@@ -258,7 +288,6 @@ if(NOT CHAMELEON_SIMULATION)
         message(FATAL_ERROR "A BLAS library is required but has not been found")
     endif()
 
-    set(CBLAS_DIR "" CACHE PATH "Root directory of CBLAS library")
     find_package(CBLAS)
     if(CBLAS_FOUND)
         include_directories(${CBLAS_INCLUDE_DIRS})
@@ -285,7 +314,6 @@ if(NOT CHAMELEON_SIMULATION)
 
     # CHAMELEON depends on LAPACKE
     #-----------------------------
-    set(LAPACK_DIR "" CACHE PATH "Root directory of LAPACK library")
     find_package(LAPACKEXT)
     if(LAPACK_FOUND AND LAPACK_LIBRARY_DIRS)
         # the RPATH to be used when installing
@@ -298,7 +326,6 @@ if(NOT CHAMELEON_SIMULATION)
     # let the comment in case we meet some problems of non existing lapacke
     # functions in lapack library such as mkl, acml, ...
     #set(LAPACKE_STANDALONE TRUE)
-    set(LAPACKE_DIR "" CACHE PATH "Root directory of LAPACKE library")
     find_package(LAPACKE)
     if(LAPACKE_FOUND)
         include_directories(${LAPACKE_INCLUDE_DIRS})
@@ -326,7 +353,6 @@ if(NOT CHAMELEON_SIMULATION)
     # CHAMELEON depends on TMG
     #--------------------------
     if (CHAMELEON_ENABLE_TESTING OR CHAMELEON_ENABLE_TIMING)
-        set(TMG_DIR "" CACHE PATH "Root directory of TMG library")
         find_package(TMG)
         if(TMG_FOUND AND TMG_LIBRARY_DIRS)
             # the RPATH to be used when installing
@@ -374,7 +400,6 @@ if(NOT CHAMELEON_SIMULATION)
         #----------------------------------------------
         if ( CUDA_FOUND AND CHAMELEON_USE_MAGMA )
             set(CHAMELEON_MAGMA_VERSION "1.4" CACHE STRING "oldest MAGMA version desired")
-            set(MAGMA_DIR "" CACHE PATH "Root directory of MAGMA library")
             find_package(MAGMA ${CHAMELEON_MAGMA_VERSION} COMPONENTS CBLAS LAPACK CUDA)
             if ( MAGMA_FOUND )
                 add_definitions(-DHAVE_CUBLAS)
@@ -491,9 +516,6 @@ if( CHAMELEON_SCHED_STARPU )
         list(APPEND STARPU_COMPONENT_LIST "FXT")
     endif()
 
-    set(HWLOC_DIR "" CACHE PATH "Root directory of HWLOC library")
-    set(FXT_DIR "" CACHE PATH "Root directory of FXT library")
-    set(STARPU_DIR "" CACHE PATH "Root directory of STARPU library")
     find_package(STARPU ${CHAMELEON_STARPU_VERSION} REQUIRED
                  COMPONENTS ${STARPU_COMPONENT_LIST})
 
@@ -596,8 +618,6 @@ endif( CHAMELEON_SCHED_STARPU )
 # try to find quark runtime
 if( CHAMELEON_SCHED_QUARK )
 
-    set(HWLOC_DIR "" CACHE PATH "Root directory of HWLOC library")
-    set(QUARK_DIR "" CACHE PATH "Root directory of QUARK library")
     find_package(QUARK REQUIRED COMPONENTS HWLOC)
 
     # Add definition and include_dir if found
diff --git a/cmake_modules/morse/find/FindCBLAS.cmake b/cmake_modules/morse/find/FindCBLAS.cmake
index 16fdbd34e..8e620e0ee 100644
--- a/cmake_modules/morse/find/FindCBLAS.cmake
+++ b/cmake_modules/morse/find/FindCBLAS.cmake
@@ -292,5 +292,4 @@ endif(BLAS_FOUND)
 # -------------------------------
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(CBLAS DEFAULT_MSG
-                                  CBLAS_LIBRARIES
-                                  CBLAS_LIBRARY_DIRS)
+                                  CBLAS_LIBRARIES)
diff --git a/cmake_modules/morse/find/FindLAPACK.cmake b/cmake_modules/morse/find/FindLAPACK.cmake
index aa04ba894..f66eb8ff0 100644
--- a/cmake_modules/morse/find/FindLAPACK.cmake
+++ b/cmake_modules/morse/find/FindLAPACK.cmake
@@ -272,9 +272,9 @@ set(LAPACK95_LIBRARIES)
 
 if (NOT BLAS_FOUND)
     if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
-    find_package(BLASEXT)
+    find_package(BLAS)
     else(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
-    find_package(BLASEXT REQUIRED)
+    find_package(BLAS REQUIRED)
     endif(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
 endif ()
 
diff --git a/cmake_modules/morse/find/FindLAPACKE.cmake b/cmake_modules/morse/find/FindLAPACKE.cmake
index 0cd3d768c..533a1d349 100644
--- a/cmake_modules/morse/find/FindLAPACKE.cmake
+++ b/cmake_modules/morse/find/FindLAPACKE.cmake
@@ -292,5 +292,4 @@ endif(LAPACK_FOUND)
 # ---------------------------------
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(LAPACKE DEFAULT_MSG
-                                  LAPACKE_LIBRARIES
-                                  LAPACKE_LIBRARY_DIRS)
+                                  LAPACKE_LIBRARIES)
diff --git a/cmake_modules/morse/find/FindTMG.cmake b/cmake_modules/morse/find/FindTMG.cmake
index 0ad1d3c21..eaea7816b 100644
--- a/cmake_modules/morse/find/FindTMG.cmake
+++ b/cmake_modules/morse/find/FindTMG.cmake
@@ -256,5 +256,4 @@ endif()
 # -------------------------------
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(TMG DEFAULT_MSG
-                                  TMG_LIBRARIES
-                                  TMG_LIBRARY_DIRS)
+                                  TMG_LIBRARIES)
-- 
GitLab