diff --git a/CMakeLists.txt b/CMakeLists.txt
index 814d42d6eba8be3221c65be08e6e3b8c1859dc85..93eb6ca5ec294fda6a1dbd1575d5b24ad9cb4837 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -150,14 +150,23 @@ configure_file("${PROJECT_SOURCE_DIR}/CMake/config.h.in" "${CMAKE_CURRENT_BINARY
 # ============================
 file(GLOB_RECURSE TEST_SOURCES RELATIVE ${PROJECT_SOURCE_DIR} src/*.c include/*.h)
 add_executable(test_FEMBEM ${TEST_SOURCES})
-target_link_libraries(test_FEMBEM PUBLIC
-  HMAT::hmat
-  CHAMELEON::chameleon
-  ${LAPACKE_LIBRARIES}
-  MPI::MPI_C)
+
+if(HAVE_HMAT)
+  target_link_libraries( test_FEMBEM PUBLIC HMAT::hmat )
+endif()
+
+if(HAVE_CHAMELEON)
+  target_link_libraries( test_FEMBEM PUBLIC CHAMELEON::chameleon )
+endif()
+
 if(HLIBPRO_FOUND)
-  target_link_libraries(test_FEMBEM PUBLIC ${HLIBPRO_LIBRARIES})
+  target_link_libraries( test_FEMBEM PUBLIC ${HLIBPRO_LIBRARIES} )
 endif(HLIBPRO_FOUND)
+
+target_link_libraries(test_FEMBEM PUBLIC
+  ${LAPACKE_LIBRARIES}
+  MPI::MPI_C )
+
 if(MKL_FOUND)
     # The start-group/end-group flags must be at the end of the
     # link command line, so we must use target_link_libraries not, CMAKE_SHARED_XXX_FLAGS