diff --git a/Modules/Platform/Windows-Embarcadero.cmake b/Modules/Platform/Windows-Embarcadero.cmake
index 8a87db371265f39a28aed3f7164cd11e26cd2687..79b0af51b49cf4927b4a7729adf6124a63ef23ab 100644
--- a/Modules/Platform/Windows-Embarcadero.cmake
+++ b/Modules/Platform/Windows-Embarcadero.cmake
@@ -64,15 +64,11 @@ set(CMAKE_CREATE_CONSOLE_EXE "${_tC}" )
 set (CMAKE_BUILD_TYPE Debug CACHE STRING
      "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
 
-set (CMAKE_EXE_LINKER_FLAGS_INIT "${_tM} -lS:1048576 -lSc:4098 -lH:1048576 -lHc:8192 ")
-set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-v")
-set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v")
-set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
-set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
-set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
-set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT})
-set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT})
-set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT})
+foreach(t EXE SHARED MODULE)
+  set(CMAKE_${t}_LINKER_FLAGS_INIT "${_tM} -lS:1048576 -lSc:4098 -lH:1048576 -lHc:8192 ")
+  set(CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT "-v")
+  set(CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v")
+endforeach()
 
 # The Borland link tool does not support multiple concurrent
 # invocations within a single working directory.