diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index f5c95aa32d6ddd34e6a0309986b85a77d72826d1..7c6089d978e48ea5347e34af524f7ef6fb5e8bfc 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -613,11 +613,14 @@ function(dd4hep_add_plugin binary)
   dd4hep_debug("|++++> USES ${ARG_USES}")
   dd4hep_debug("|++++> INCLUDES ${ARG_INCLUDES}")
   dd4hep_debug("|++++> DEFINITIONS ${ARG_DEFINITIONS}")
-  add_library(${binary} ${SOURCES} ${ARG_GENERATED})
+  IF(NOT DEFINED BUILD_SHARED_LIBS)
+    SET(STATIC_OR_SHARED SHARED)
+  ENDIF()
+  add_library(${binary} ${STATIC_OR_SHARED} ${SOURCES} ${ARG_GENERATED})
   target_link_libraries(${binary} PUBLIC ${ARG_USES})
   target_include_directories(${binary} PUBLIC ${ARG_INCLUDES})
   target_compile_definitions(${binary} PUBLIC ${ARG_DEFINITIONS})
-  IF(BUILD_SHARED_LIBS)
+  IF(BUILD_SHARED_LIBS OR NOT DEFINED BUILD_SHARED_LIBS)
     dd4hep_generate_rootmap(${binary})
   ENDIF()
   if(NOT ${ARG_NOINSTALL})