create_identifiers.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env python
  2. import sys
  3. if len(sys.argv) != 2:
  4. sys.exit(-1)
  5. name = sys.argv[1] + "/CMake.qhp"
  6. f = open(name, "rb")
  7. if not f:
  8. sys.exit(-1)
  9. lines = f.read().decode("utf-8").splitlines()
  10. if not lines:
  11. sys.exit(-1)
  12. newlines = []
  13. for line in lines:
  14. mapping = (("command", "command"),
  15. ("cpack generator", "cpack_gen"),
  16. ("envvar", "envvar"),
  17. ("variable", "variable"),
  18. ("generator", "generator"),
  19. ("genex", "genex"),
  20. ("guide", "guide"),
  21. ("target property", "prop_tgt"),
  22. ("test property", "prop_test"),
  23. ("source file property", "prop_sf"),
  24. ("global property", "prop_gbl"),
  25. ("module", "module"),
  26. ("directory property", "prop_dir"),
  27. ("cache property", "prop_cache"),
  28. ("policy", "policy"),
  29. ("installed file property", "prop_inst"))
  30. for domain_object_string, domain_object_type in mapping:
  31. if "<keyword name=\"" + domain_object_string + "\"" in line:
  32. if "id=\"" not in line and "#index-" not in line:
  33. prefix = "<keyword name=\"" + domain_object_string + "\" "
  34. part1, part2 = line.split(prefix)
  35. head, tail = part2.split("#" + domain_object_type + ":")
  36. domain_object, rest = tail.split("\"")
  37. line = part1 + prefix + "id=\"" + domain_object_type + "/" + domain_object + "\" " + part2
  38. newlines.append(line + "\n")
  39. f = open(name, "wb")
  40. f.writelines(map(lambda line: line.encode("utf-8"), newlines))