Support duplicate object names in large archives (#14874)
Generalize the change from commit 39d0ade0
(Windows-GNU: Support
duplicate object names in large archives, 2014-04-14) to the default
archive rules. These rules have used an incremental append approach
since commit v2.8.0~1856 (Build large archives incrementally,
2008-08-04). Switch from "ar r" to "ar q" to be sure we always append
objects instead of replacing them.
This commit is contained in:
parent
39d0ade07e
commit
1ec6485c6a
|
@ -175,10 +175,10 @@ endif()
|
||||||
# Create a static archive incrementally for large object file counts.
|
# Create a static archive incrementally for large object file counts.
|
||||||
# If CMAKE_C_CREATE_STATIC_LIBRARY is set it will override these.
|
# If CMAKE_C_CREATE_STATIC_LIBRARY is set it will override these.
|
||||||
if(NOT DEFINED CMAKE_C_ARCHIVE_CREATE)
|
if(NOT DEFINED CMAKE_C_ARCHIVE_CREATE)
|
||||||
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> cq <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_C_ARCHIVE_APPEND)
|
if(NOT DEFINED CMAKE_C_ARCHIVE_APPEND)
|
||||||
set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_C_ARCHIVE_FINISH)
|
if(NOT DEFINED CMAKE_C_ARCHIVE_FINISH)
|
||||||
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
||||||
|
|
|
@ -266,10 +266,10 @@ endif()
|
||||||
# Create a static archive incrementally for large object file counts.
|
# Create a static archive incrementally for large object file counts.
|
||||||
# If CMAKE_CXX_CREATE_STATIC_LIBRARY is set it will override these.
|
# If CMAKE_CXX_CREATE_STATIC_LIBRARY is set it will override these.
|
||||||
if(NOT DEFINED CMAKE_CXX_ARCHIVE_CREATE)
|
if(NOT DEFINED CMAKE_CXX_ARCHIVE_CREATE)
|
||||||
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> cq <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_CXX_ARCHIVE_APPEND)
|
if(NOT DEFINED CMAKE_CXX_ARCHIVE_APPEND)
|
||||||
set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_CXX_ARCHIVE_FINISH)
|
if(NOT DEFINED CMAKE_CXX_ARCHIVE_FINISH)
|
||||||
set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
||||||
|
|
|
@ -194,10 +194,10 @@ endif()
|
||||||
# Create a static archive incrementally for large object file counts.
|
# Create a static archive incrementally for large object file counts.
|
||||||
# If CMAKE_Fortran_CREATE_STATIC_LIBRARY is set it will override these.
|
# If CMAKE_Fortran_CREATE_STATIC_LIBRARY is set it will override these.
|
||||||
if(NOT DEFINED CMAKE_Fortran_ARCHIVE_CREATE)
|
if(NOT DEFINED CMAKE_Fortran_ARCHIVE_CREATE)
|
||||||
set(CMAKE_Fortran_ARCHIVE_CREATE "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_Fortran_ARCHIVE_CREATE "<CMAKE_AR> cq <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_Fortran_ARCHIVE_APPEND)
|
if(NOT DEFINED CMAKE_Fortran_ARCHIVE_APPEND)
|
||||||
set(CMAKE_Fortran_ARCHIVE_APPEND "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_Fortran_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CMAKE_Fortran_ARCHIVE_FINISH)
|
if(NOT DEFINED CMAKE_Fortran_ARCHIVE_FINISH)
|
||||||
set(CMAKE_Fortran_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
set(CMAKE_Fortran_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
||||||
|
|
Loading…
Reference in New Issue