mstorsjo updated this revision to Diff 114907.
mstorsjo retitled this revision from "[libc++] Rerun ranlib manually after
merging the static libraries" to "[libc++] Use CMAKE_AR for merging static
libraries".
mstorsjo edited the summary of this revision.
https://reviews.llvm.org/D37134
Files:
lib/CMakeLists.txt
utils/merge_archives.py
Index: utils/merge_archives.py
===================================================================
--- utils/merge_archives.py
+++ utils/merge_archives.py
@@ -94,12 +94,18 @@
help='Paths to search for the libraries along', action='append',
nargs=1)
parser.add_argument(
+ '-a', '--ar', dest='ar_exe', required=False,
+ help='The ar executable to use, finds \'ar\' in the path if not given',
+ type=str, action='store')
+ parser.add_argument(
'archives', metavar='archives', nargs='+',
help='The archives to merge')
args = parser.parse_args()
- ar_exe = distutils.spawn.find_executable('ar')
+ ar_exe = args.ar_exe
+ if not ar_exe:
+ ar_exe = distutils.spawn.find_executable('ar')
if not ar_exe:
print_and_exit("failed to find 'ar' executable")
@@ -115,13 +121,13 @@
temp_directory_root = tempfile.mkdtemp('.libcxx.merge.archives')
for arc in archives:
- execute_command_verbose([ar_exe, '-x', arc], cwd=temp_directory_root,
+ execute_command_verbose([ar_exe, 'x', arc], cwd=temp_directory_root,
verbose=args.verbose)
files = glob.glob(os.path.join(temp_directory_root, '*.o*'))
if not files:
print_and_exit('Failed to glob for %s' % glob_path)
- cmd = [ar_exe, '-qc', args.output] + files
+ cmd = [ar_exe, 'qc', args.output] + files
execute_command_verbose(cmd, cwd=temp_directory_root, verbose=args.verbose)
Index: lib/CMakeLists.txt
===================================================================
--- lib/CMakeLists.txt
+++ lib/CMakeLists.txt
@@ -270,6 +270,7 @@
${PYTHON_EXECUTABLE} ${LIBCXX_SOURCE_DIR}/utils/merge_archives.py
ARGS
-o $<TARGET_LINKER_FILE:cxx_static>
+ -a "${CMAKE_AR}"
"$<TARGET_LINKER_FILE:cxx_static>"
"${MERGE_ARCHIVES_ABI_TARGET}"
"${MERGE_ARCHIVES_SEARCH_PATHS}"
Index: utils/merge_archives.py
===================================================================
--- utils/merge_archives.py
+++ utils/merge_archives.py
@@ -94,12 +94,18 @@
help='Paths to search for the libraries along', action='append',
nargs=1)
parser.add_argument(
+ '-a', '--ar', dest='ar_exe', required=False,
+ help='The ar executable to use, finds \'ar\' in the path if not given',
+ type=str, action='store')
+ parser.add_argument(
'archives', metavar='archives', nargs='+',
help='The archives to merge')
args = parser.parse_args()
- ar_exe = distutils.spawn.find_executable('ar')
+ ar_exe = args.ar_exe
+ if not ar_exe:
+ ar_exe = distutils.spawn.find_executable('ar')
if not ar_exe:
print_and_exit("failed to find 'ar' executable")
@@ -115,13 +121,13 @@
temp_directory_root = tempfile.mkdtemp('.libcxx.merge.archives')
for arc in archives:
- execute_command_verbose([ar_exe, '-x', arc], cwd=temp_directory_root,
+ execute_command_verbose([ar_exe, 'x', arc], cwd=temp_directory_root,
verbose=args.verbose)
files = glob.glob(os.path.join(temp_directory_root, '*.o*'))
if not files:
print_and_exit('Failed to glob for %s' % glob_path)
- cmd = [ar_exe, '-qc', args.output] + files
+ cmd = [ar_exe, 'qc', args.output] + files
execute_command_verbose(cmd, cwd=temp_directory_root, verbose=args.verbose)
Index: lib/CMakeLists.txt
===================================================================
--- lib/CMakeLists.txt
+++ lib/CMakeLists.txt
@@ -270,6 +270,7 @@
${PYTHON_EXECUTABLE} ${LIBCXX_SOURCE_DIR}/utils/merge_archives.py
ARGS
-o $<TARGET_LINKER_FILE:cxx_static>
+ -a "${CMAKE_AR}"
"$<TARGET_LINKER_FILE:cxx_static>"
"${MERGE_ARCHIVES_ABI_TARGET}"
"${MERGE_ARCHIVES_SEARCH_PATHS}"
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits