mirror of https://github.com/pybind/pybind11
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.0 KiB
38 lines
1.0 KiB
from __future__ import annotations |
|
|
|
import os |
|
import sys |
|
|
|
# Internal build script for generating debugging test .so size. |
|
# Usage: |
|
# python libsize.py file.so save.txt -- displays the size of file.so and, if save.txt exists, compares it to the |
|
# size in it, then overwrites save.txt with the new size for future runs. |
|
|
|
if len(sys.argv) != 3: |
|
sys.exit("Invalid arguments: usage: python libsize.py file.so save.txt") |
|
|
|
lib = sys.argv[1] |
|
save = sys.argv[2] |
|
|
|
if not os.path.exists(lib): |
|
sys.exit(f"Error: requested file ({lib}) does not exist") |
|
|
|
libsize = os.path.getsize(lib) |
|
|
|
print("------", os.path.basename(lib), "file size:", libsize, end="") |
|
|
|
if os.path.exists(save): |
|
with open(save) as sf: |
|
oldsize = int(sf.readline()) |
|
|
|
if oldsize > 0: |
|
change = libsize - oldsize |
|
if change == 0: |
|
print(" (no change)") |
|
else: |
|
print(f" (change of {change:+} bytes = {change / oldsize:+.2%})") |
|
else: |
|
print() |
|
|
|
with open(save, "w") as sf: |
|
sf.write(str(libsize))
|
|
|