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()