diff --git a/CMake/elxWinConfig.cmake b/CMake/elxWinConfig.cmake
index c9a8eb734b8260f259e95fa5be4f6dd3605ea79d..6e2408335a8f8040c6f40e532f4d2286dc8e7760 100644
--- a/CMake/elxWinConfig.cmake
+++ b/CMake/elxWinConfig.cmake
@@ -1,19 +1,23 @@
 # Visual Studio complains if paths are too long
 
-string( LENGTH "${CMAKE_CURRENT_SOURCE_DIR}" n )
-if( n GREATER 50 )
-message(
-  FATAL_ERROR
-  "ITK source code directory path length is too long (${n} > 50)."
-  "Please move the ITK source code directory to a directory with a shorter path."
-  )
-endif()
+if( MSVC )
+  string( LENGTH "${CMAKE_CURRENT_SOURCE_DIR}" n )
+  if( n GREATER 50 )
+  message(
+    FATAL_ERROR
+    "ITK source code directory path length is too long for MSVC (${n} > 50)."
+    )
+  endif()
+
+  string( LENGTH "${CMAKE_CURRENT_BINARY_DIR}" n )
+  if( n GREATER 50 )
+  message(
+    FATAL_ERROR
+    "ITK build directory path length is too long for MSVC (${n} > 50)."
+    )
+  endif()
 
-string( LENGTH "${CMAKE_CURRENT_BINARY_DIR}" n )
-if( n GREATER 50 )
-message(
-  FATAL_ERROR
-  "ITK build directory path length is too long (${n} > 50)."
-  "Please set the ITK build directory to a directory with a shorter path."
-  )
+  set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj" )
+  set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /bigobj" )
+  set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /bigobj" )
 endif()