diff --git a/Help/release/3.29.rst b/Help/release/3.29.rst
index 96f161f0102b3c8aa25b4babb688f832de2e9093..659237eee18d9a36632636e418c762e47016f817 100644
--- a/Help/release/3.29.rst
+++ b/Help/release/3.29.rst
@@ -39,6 +39,11 @@ Compilers
 * The LLVM/Clang GNU-like frontend on Windows (``clang++``) may now be used
   to compile ``CUDA`` language sources.
 
+* Compilers targeting the GNU ABI on Windows (MinGW) may now be used to
+  compile Objective C (``OBJC``) and Objective C++ (``OBJCXX``).  These
+  include GNU compilers (``gcc`` and ``g++``) and the LLVM/Clang GNU-like
+  frontends (``clang`` and ``clang++``).
+
 * TI Clang-based compilers are now supported with
   :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``TIClang``.
 
diff --git a/Modules/Platform/Windows-Clang-OBJC.cmake b/Modules/Platform/Windows-Clang-OBJC.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..7babb9807aeb8e44afef0cb297fd416c7b21c2c7
--- /dev/null
+++ b/Modules/Platform/Windows-Clang-OBJC.cmake
@@ -0,0 +1,18 @@
+include(Platform/Windows-Clang)
+__windows_compiler_clang(OBJC)
+
+if("x${CMAKE_OBJC_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+  if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
+      AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
+      AND CMAKE_DEPFILE_FLAGS_OBJC)
+    set(CMAKE_OBJC_DEPENDS_USE_COMPILER TRUE)
+  endif()
+elseif("x${CMAKE_OBJC_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+  if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
+      AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
+      AND CMAKE_DEPFILE_FLAGS_OBJC)
+    # dependencies are computed by the compiler itself
+    set(CMAKE_OBJC_DEPFILE_FORMAT gcc)
+    set(CMAKE_OBJC_DEPENDS_USE_COMPILER TRUE)
+  endif()
+endif()
diff --git a/Modules/Platform/Windows-Clang-OBJCXX.cmake b/Modules/Platform/Windows-Clang-OBJCXX.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..3bc16731b18494ac2409eceed8bc2b47c8299bb5
--- /dev/null
+++ b/Modules/Platform/Windows-Clang-OBJCXX.cmake
@@ -0,0 +1,18 @@
+include(Platform/Windows-Clang)
+__windows_compiler_clang(OBJCXX)
+
+if("x${CMAKE_OBJCXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+  if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
+      AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
+      AND CMAKE_DEPFILE_FLAGS_OBJCXX)
+    set(CMAKE_OBJCXX_DEPENDS_USE_COMPILER TRUE)
+  endif()
+elseif("x${CMAKE_OBJCXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+  if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
+      AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
+      AND CMAKE_DEPFILE_FLAGS_OBJCXX)
+    # dependencies are computed by the compiler itself
+    set(CMAKE_OBJCXX_DEPFILE_FORMAT gcc)
+    set(CMAKE_OBJCXX_DEPENDS_USE_COMPILER TRUE)
+  endif()
+endif()
diff --git a/Modules/Platform/Windows-GNU-OBJC-ABI.cmake b/Modules/Platform/Windows-GNU-OBJC-ABI.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..c8b2ea629b58652b01b25c468a8127bc3529fc9c
--- /dev/null
+++ b/Modules/Platform/Windows-GNU-OBJC-ABI.cmake
@@ -0,0 +1 @@
+__windows_compiler_gnu_abi(OBJC)
diff --git a/Modules/Platform/Windows-GNU-OBJC.cmake b/Modules/Platform/Windows-GNU-OBJC.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..42cf3f8db6ab10f7400f2ffb3bb2f1c8832e82af
--- /dev/null
+++ b/Modules/Platform/Windows-GNU-OBJC.cmake
@@ -0,0 +1,2 @@
+include(Platform/Windows-GNU)
+__windows_compiler_gnu(OBJC)
diff --git a/Modules/Platform/Windows-GNU-OBJCXX-ABI.cmake b/Modules/Platform/Windows-GNU-OBJCXX-ABI.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..9a11514ec5ff0c94dffa383326233f2e7d3f42d3
--- /dev/null
+++ b/Modules/Platform/Windows-GNU-OBJCXX-ABI.cmake
@@ -0,0 +1 @@
+__windows_compiler_gnu_abi(OBJCXX)
diff --git a/Modules/Platform/Windows-GNU-OBJCXX.cmake b/Modules/Platform/Windows-GNU-OBJCXX.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..072cf28d1d063b789a4a46800c6032367c114a66
--- /dev/null
+++ b/Modules/Platform/Windows-GNU-OBJCXX.cmake
@@ -0,0 +1,2 @@
+include(Platform/Windows-GNU)
+__windows_compiler_gnu(OBJCXX)