17db96d56Sopenharmony_ci# An absurd workaround for the lack of arithmetic in MS's resource compiler.
27db96d56Sopenharmony_ci# After building Python, run this, then paste the output into the appropriate
37db96d56Sopenharmony_ci# part of PC\python_nt.rc.
47db96d56Sopenharmony_ci# Example output:
57db96d56Sopenharmony_ci#
67db96d56Sopenharmony_ci# * For 2.3a0,
77db96d56Sopenharmony_ci# * PY_MICRO_VERSION = 0
87db96d56Sopenharmony_ci# * PY_RELEASE_LEVEL = 'alpha' = 0xA
97db96d56Sopenharmony_ci# * PY_RELEASE_SERIAL = 1
107db96d56Sopenharmony_ci# *
117db96d56Sopenharmony_ci# * and 0*1000 + 10*10 + 1 = 101.
127db96d56Sopenharmony_ci# */
137db96d56Sopenharmony_ci# #define FIELD3 101
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciimport sys
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_cimajor, minor, micro, level, serial = sys.version_info
187db96d56Sopenharmony_cilevelnum = {'alpha': 0xA,
197db96d56Sopenharmony_ci            'beta': 0xB,
207db96d56Sopenharmony_ci            'candidate': 0xC,
217db96d56Sopenharmony_ci            'final': 0xF,
227db96d56Sopenharmony_ci           }[level]
237db96d56Sopenharmony_cistring = sys.version.split()[0] # like '2.3a0'
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ciprint(" * For %s," % string)
267db96d56Sopenharmony_ciprint(" * PY_MICRO_VERSION = %d" % micro)
277db96d56Sopenharmony_ciprint(" * PY_RELEASE_LEVEL = %r = %s" % (level, hex(levelnum)))
287db96d56Sopenharmony_ciprint(" * PY_RELEASE_SERIAL = %d" % serial)
297db96d56Sopenharmony_ciprint(" *")
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_cifield3 = micro * 1000 + levelnum * 10 + serial
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ciprint(" * and %d*1000 + %d*10 + %d = %d" % (micro, levelnum, serial, field3))
347db96d56Sopenharmony_ciprint(" */")
357db96d56Sopenharmony_ciprint("#define FIELD3", field3)
36