From df8e995a421435040aed1d61ef5b5f4578d77de5 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 28 Sep 2022 22:21:48 +0200
Subject: [PATCH] cmake: make sure that mixed precision is correctly compiled
 by default

---
 CMakeLists.txt                  | 2 +-
 coreblas/compute/CMakeLists.txt | 2 ++
 coreblas/include/CMakeLists.txt | 1 +
 runtime/CMakeLists.txt          | 1 +
 runtime/starpu/CMakeLists.txt   | 2 ++
 testing/CMakeLists.txt          | 4 ++++
 testing/CTestLists.cmake        | 4 ++++
 7 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2c409a3fa..8b00b6d5e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -107,7 +107,7 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
 # Define precision supported by CHAMELEON
 # -----------------------------------------
 set( RP_CHAMELEON_DICTIONNARY ${CMAKE_SOURCE_DIR}/cmake_modules/local_subs.py )
-set( RP_CHAMELEON_PRECISIONS  "s;d;c;z" )
+set( RP_CHAMELEON_PRECISIONS  "s;d;c;z;ds;zc" )
 include(RulesPrecisions)
 # Check that at least one option CHAMELEON_PREC_ is set to ON
 # count number of CHAMELEON_PREC_ sets to ON
diff --git a/coreblas/compute/CMakeLists.txt b/coreblas/compute/CMakeLists.txt
index dc2aac9e2..d4c8cb065 100644
--- a/coreblas/compute/CMakeLists.txt
+++ b/coreblas/compute/CMakeLists.txt
@@ -116,10 +116,12 @@ endif()
 if ( CHAMELEON_NO_KERNELS )
   list( APPEND ZSRC
     core_ztile_empty.c
+    core_zctile_empty.c
     )
 else()
   list( APPEND ZSRC
     core_ztile.c
+    core_zctile.c
     )
 endif()
 
diff --git a/coreblas/include/CMakeLists.txt b/coreblas/include/CMakeLists.txt
index aea8f77b6..acd970620 100644
--- a/coreblas/include/CMakeLists.txt
+++ b/coreblas/include/CMakeLists.txt
@@ -33,6 +33,7 @@ set(ZHDR
   coreblas/coreblas_z.h
   coreblas/coreblas_zc.h
   coreblas/coreblas_ztile.h
+  coreblas/coreblas_zctile.h
 )
 if( CHAMELEON_USE_HMAT )
   list( APPEND ZHDR
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index dec860e8e..37b34b275 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -30,6 +30,7 @@
 # List of codelets required by all runtimes
 # -----------------------------------------
 set(CODELETS_ZSRC
+    codelets/codelet_zlag2c.c
     codelets/codelet_dlag2z.c
     codelets/codelet_dzasum.c
     ##################
diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt
index cf460a8d1..3863d96a0 100644
--- a/runtime/starpu/CMakeLists.txt
+++ b/runtime/starpu/CMakeLists.txt
@@ -162,6 +162,7 @@ configure_file("include/chameleon_starpu.h.in"
 set(RUNTIME_HDRS_GENERATED "")
 set(ZHDR
   include/runtime_codelet_z.h
+  include/runtime_codelet_zc.h
   )
 
 precisions_rules_py(RUNTIME_HDRS_GENERATED "${ZHDR}"
@@ -233,6 +234,7 @@ set_source_files_properties(control/runtime_profiling.c PROPERTIES COMPILE_FLAGS
 set(RUNTIME_SRCS_GENERATED "")
 set(ZSRC
   codelets/codelet_zcallback.c
+  codelets/codelet_zccallback.c
   ${CODELETS_ZSRC}
   )
 
diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
index ae8d74f73..3391dca0e 100644
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -130,6 +130,10 @@ set(ZSRC
 # -----------------------------------------------
 foreach(_precision ${CHAMELEON_PRECISION} )
 
+  if ( ${_precision} STREQUAL ds OR ${_precision} STREQUAL zc )
+    continue()
+  endif()
+
   precisions_rules_py(${_precision}SRC_GENERATED "${ZSRC}"
     PRECISIONS "${_precision}" )
 
diff --git a/testing/CTestLists.cmake b/testing/CTestLists.cmake
index 502add004..7c979a917 100644
--- a/testing/CTestLists.cmake
+++ b/testing/CTestLists.cmake
@@ -21,6 +21,10 @@ endif()
 if (NOT CHAMELEON_SIMULATION)
 
   foreach(prec ${RP_CHAMELEON_PRECISIONS})
+    if ( ${prec} STREQUAL ds OR ${prec} STREQUAL zc )
+      continue()
+    endif()
+
     set (CMD ./chameleon_${prec}testing)
 
     #
-- 
GitLab