diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index f915b3df2561ee35953a2abe06c48e60dadcfae1..8410b669f4c8b6bc1dd0da1cbb0fdaa6b245fcc1 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -36,19 +36,14 @@ ENDIF()
 
 dd4hep_configure_output()
 
-add_subdirectory(CLICSiD)
-add_subdirectory(LHeD)
-add_subdirectory(AlignDet)
-add_subdirectory(ClientTests)
-add_subdirectory(Conditions)
-add_subdirectory(DDG4)
-add_subdirectory(DDDigi)
-add_subdirectory(Persistency)
-add_subdirectory(SimpleDetector)
-add_subdirectory(DDG4_MySensDet)
-add_subdirectory(DDCodex)
-
-add_subdirectory(DDDB)
-add_subdirectory(DDCMS)
-
-add_subdirectory(OpticalSurfaces)
+#==========================================================================
+
+SET(DD4HEP_BUILD_EXAMPLES "AlignDet CLICSiD ClientTests Conditions DDCMS DDCodex DDDB DDDigi DDG4 DDG4_MySensDet LHeD OpticalSurfaces Persistency SimpleDetector"
+  CACHE STRING "List of DD4hep Examples to build")
+SEPARATE_ARGUMENTS(DD4HEP_BUILD_EXAMPLES)
+MESSAGE(STATUS "Will be building these examples: ${DD4HEP_BUILD_EXAMPLES}")
+
+FOREACH(DDExample IN LISTS DD4HEP_BUILD_EXAMPLES)
+  dd4hep_print("|> Building ${DDExample}")
+  add_subdirectory(${DDExample})
+ENDFOREACH()