pinversion.py 816 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env python
  2. import sys, os, re
  3. if len(sys.argv) > 1:
  4. pin_home = sys.argv[1]
  5. else:
  6. pin_home = os.getenv('PIN_HOME')
  7. headerfile = None
  8. for filebase in ('source/include/pin/gen/cc_used_ia32_l.CVH', 'source/include/gen/cc_used_ia32_l.CVH'):
  9. filename = os.path.join(pin_home, filebase)
  10. if os.path.exists(filename):
  11. headerfile = filename
  12. break
  13. if not headerfile:
  14. sys.exit(1)
  15. version = {}
  16. for line in file(headerfile):
  17. for var in ('PIN_PRODUCT_VERSION_MAJOR', 'PIN_PRODUCT_VERSION_MINOR', 'PIN_BUILD_NUMBER'):
  18. res = re.search('#define\s+%s\s+(\d+)' % var, line)
  19. if res:
  20. version[var] = res.group(1)
  21. break
  22. print version.get('PIN_PRODUCT_VERSION_MAJOR', '?') + '.' \
  23. + version.get('PIN_PRODUCT_VERSION_MINOR', '?') + '.' \
  24. + version.get('PIN_BUILD_NUMBER', '?')