Blame external/pybind11/tools/libsize.py

Packit 534379
from __future__ import print_function, division
Packit 534379
import os
Packit 534379
import sys
Packit 534379
Packit 534379
# Internal build script for generating debugging test .so size.
Packit 534379
# Usage:
Packit 534379
#     python libsize.py file.so save.txt -- displays the size of file.so and, if save.txt exists, compares it to the
Packit 534379
#                                           size in it, then overwrites save.txt with the new size for future runs.
Packit 534379
Packit 534379
if len(sys.argv) != 3:
Packit 534379
    sys.exit("Invalid arguments: usage: python libsize.py file.so save.txt")
Packit 534379
Packit 534379
lib = sys.argv[1]
Packit 534379
save = sys.argv[2]
Packit 534379
Packit 534379
if not os.path.exists(lib):
Packit 534379
    sys.exit("Error: requested file ({}) does not exist".format(lib))
Packit 534379
Packit 534379
libsize = os.path.getsize(lib)
Packit 534379
Packit 534379
print("------", os.path.basename(lib), "file size:", libsize, end='')
Packit 534379
Packit 534379
if os.path.exists(save):
Packit 534379
    with open(save) as sf:
Packit 534379
        oldsize = int(sf.readline())
Packit 534379
Packit 534379
    if oldsize > 0:
Packit 534379
        change = libsize - oldsize
Packit 534379
        if change == 0:
Packit 534379
            print(" (no change)")
Packit 534379
        else:
Packit 534379
            print(" (change of {:+} bytes = {:+.2%})".format(change, change / oldsize))
Packit 534379
else:
Packit 534379
    print()
Packit 534379
Packit 534379
with open(save, 'w') as sf:
Packit 534379
    sf.write(str(libsize))
Packit 534379