1
0

merge_built_libraries.py 926 B

12345678910111213141516171819202122232425262728293031
  1. import os, sys
  2. assert sys.platform == 'darwin', sys.platform
  3. if len(sys.argv) == 2:
  4. build_dir = sys.argv[1]
  5. output_dir = sys.argv[1]
  6. elif len(sys.argv) == 3:
  7. build_dir = sys.argv[1]
  8. output_dir = sys.argv[2]
  9. else:
  10. print('Usage: python merge_built_libraries.py <build_dir> [output_dir]')
  11. exit(1)
  12. assert os.path.exists(build_dir), build_dir
  13. assert os.path.exists(output_dir), output_dir
  14. archives = []
  15. # get all .a files in build/3rd recursive
  16. for root, dirs, files in os.walk(build_dir):
  17. for file in files:
  18. if file.endswith('.a') and file.startswith('lib'):
  19. archives.append(os.path.join(root, file))
  20. print('Merging the following static libraries:')
  21. for archive in archives:
  22. print('- ' + archive)
  23. # libtool -static -o libpocketpy.a
  24. output_archive = os.path.join(output_dir, 'libpocketpy.a')
  25. os.system('libtool -static -o {} {}'.format(output_archive, ' '.join(archives)))