From f1adc32765b84ca7fe85910da0c822a72efc681d Mon Sep 17 00:00:00 2001
From: Alexander Alekhin <alexander.alekhin@intel.com>
Date: Wed, 18 Jan 2017 18:37:52 +0300
Subject: [PATCH] cmake: fix support of duplicated file names in static
 libraries

---
 cmake/OpenCVDetectCXXCompiler.cmake | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake
index 8ecf4d82bd..e7dac80275 100644
--- a/cmake/OpenCVDetectCXXCompiler.cmake
+++ b/cmake/OpenCVDetectCXXCompiler.cmake
@@ -172,3 +172,13 @@ elseif(MINGW)
     set(OpenCV_ARCH x86)
   endif()
 endif()
+
+# Fix handling of duplicated files in the same static library:
+# https://public.kitware.com/Bug/view.php?id=14874
+if(CMAKE_VERSION VERSION_LESS "3.1")
+  foreach(var CMAKE_C_ARCHIVE_APPEND CMAKE_CXX_ARCHIVE_APPEND)
+    if(${var} MATCHES "^<CMAKE_AR> r")
+      string(REPLACE "<CMAKE_AR> r" "<CMAKE_AR> q" ${var} "${${var}}")
+    endif()
+  endforeach()
+endif()