mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-23 18:08:31 +08:00
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:
@@ -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>")
|
||||||
|
Reference in New Issue
Block a user