diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f1e8980a0a3e55f651a7dcd1dbe46ab8686d9f0..b7288df348781310118754a1598614884950fae6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,16 +114,8 @@ 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
-math(EXPR number_of_active_prec 0)
-set(CHAMELEON_PRECISIONS "")
-foreach (prec ${RP_CHAMELEON_PRECISIONS})
-    string(TOUPPER ${prec} PREC)
-    if (CHAMELEON_PREC_${PREC})
-        math(EXPR number_of_active_prec "${number_of_active_prec}+1")
-        list(APPEND CHAMELEON_PRECISIONS ${PREC})
-    endif()
-endforeach()
-message("-- ${BoldGreen}Floating point precisions enabled (${number_of_active_prec}): ${CHAMELEON_PRECISIONS}.")
+list(LENGTH CHAMELEON_PRECISION number_of_active_prec)
+message("-- ${BoldGreen}Floating point precisions enabled (${number_of_active_prec}): ${CHAMELEON_PRECISION}.")
 if (number_of_active_prec STREQUAL 0)
     message(FATAL_ERROR
             "Number of active precision is ${number_of_active_prec}, "
diff --git a/cmake_modules/PrintOpts.cmake b/cmake_modules/PrintOpts.cmake
index f50f01c7b16bad42db97504fb2353e1f274d627a..eb1c2f630e264e14eefa863959e9465d44638770 100644
--- a/cmake_modules/PrintOpts.cmake
+++ b/cmake_modules/PrintOpts.cmake
@@ -71,7 +71,7 @@ set(dep_message "${dep_message}"
 "       EXE LDFlags .........: ${CMAKE_EXE_LINKER_FLAGS}\n"
 "\n"
 "       Floating points precisions enabled\n"
-"       CHAMELEON_PRECISIONS : ${CHAMELEON_PRECISIONS}\n"
+"       CHAMELEON_PRECISIONS : ${CHAMELEON_PRECISION}\n"
 "\n"
 "       Implementation paradigm\n"
 "       CUDA ................: ${CHAMELEON_USE_CUDA}\n"
diff --git a/testing/CTestLists.cmake b/testing/CTestLists.cmake
index 5b39e1d88b84c17b8e6145dfc740cff1904eee90..db00fe81fec1f17da40a6b0e82509994404ecb8d 100644
--- a/testing/CTestLists.cmake
+++ b/testing/CTestLists.cmake
@@ -23,7 +23,7 @@ endif()
 
 if (NOT CHAMELEON_SIMULATION)
 
-  foreach(prec ${CHAMELEON_PRECISIONS})
+  foreach(prec ${CHAMELEON_PRECISION})
     if ( ${prec} STREQUAL ds OR ${prec} STREQUAL zc )
       continue()
     endif()