diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8315f865f21893ef92e6c270b78305d186fb7bef..359231430d24ccec702813e4abd1b056c5b08a0f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,13 +17,30 @@ set_target_properties(Threads::Threads PROPERTIES THREADS_PREFER_PTHREAD_FLAG TR
 list(APPEND cdi_compile_defs HAVE_PTHREAD=1)
 
 # enable default internal libs
-list(APPEND cdi_compile_defs
-  HAVE_LIBGRIB=1
-  HAVE_LIBCGRIBEX=1
-  HAVE_LIBEXTRA=1
-  HAVE_LIBSERVICE=1
-  HAVE_LIBIEG=1
-)
+option(enable_libgrib "GRIB support [default=ON]" ON)
+if(${enable_libgrib})
+  list(APPEND cdi_compile_defs HAVE_LIBGRIB=1)
+endif()
+
+option(enable_cgribex "Use the CGRIBEX library [default=ON]" ON)
+if(${enable_cgribex})
+  list(APPEND cdi_compile_defs LIBCGRIBEX=1)
+endif()
+
+option(enable_extra "Use the extra library [default=ON]" ON)
+if(${enable_extra})
+  list(APPEND cdi_compile_defs HAVE_LIBEXTRA=1)
+endif()
+
+option(enable_ieg "Use the extra library [default=ON]" ON)
+if(${enable_ieg})
+  list(APPEND cdi_compile_defs HAVE_LIBIEG=1)
+endif()
+
+option(enable_service "Use the extra library [default=ON]" ON)
+if(${enable_service})
+  list(APPEND cdi_compile_defs HAVE_LIBSERVICE=1)
+endif()
 
 # ecCodes
 find_package(eccodes)