Previous 199869 Revisions Next

r35193 Sunday 22nd February, 2015 at 01:34:36 UTC by Vasantha Crabb
If verinfo.py fails don't touch the output file, so subsequent builds won't think it's up-to-date
[src/build]verinfo.py
[src/mess/osd/windows]windows.mak
[src/mess/tools/castool]castool.mak
[src/mess/tools/floptool]floptool.mak
[src/mess/tools/imgtool]imgtool.mak
[src/osd/sdl]sdl.mak
[src/osd/windows]windows.mak
[src/ume/osd/windows]windows.mak

trunk/src/build/verinfo.py
r243704r243705
99
1010def parse_args():
1111    def usage():
12        sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] [-r|-p] <filename>\n')
12        sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] [-r|-p] [-o <outfile>] <srcfile>\n')
1313        sys.exit(1)
1414
1515    flags = True
1616    target = 'mame'
17    format = 'rc'
1718    input = None
18    output = 'rc'
19    output = None
1920    i = 1
2021    while i < len(sys.argv):
2122        if flags and (sys.argv[i] == '-r'):
22            output = 'rc'
23            format = 'rc'
2324        elif flags and (sys.argv[i] == '-p'):
24            output = 'plist'
25            format = 'plist'
2526        elif flags and (sys.argv[i] == '-b'):
2627            i += 1;
2728            if (i >= len(sys.argv)) or (sys.argv[i] not in ('mame', 'mess', 'ume')):
2829                usage()
2930            else:
3031                target = sys.argv[i]
32        elif flags and (sys.argv[i] == '-o'):
33            i += 1;
34            if (i >= len(sys.argv)) or (output is not None):
35                usage()
36            else:
37                output = sys.argv[i]
3138        elif flags and (sys.argv[i] == '--'):
3239            flags = False
3340        elif flags and sys.argv[i].startswith('-'):
r243704r243705
3946        i += 1
4047    if input is None:
4148        usage()
42    return target, input, output
49    return target, format, input, output
4350
4451
4552def extract_version(input):
r243704r243705
5158    return None, None, None
5259
5360
54build, srcfile, outfmt = parse_args()
61build, outfmt, srcfile, dstfile = parse_args()
5562
5663try:
57    fp = open(srcfile, 'rb')
64    fp = open(srcfile, 'rU')
5865except IOError:
5966    sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
6067    sys.exit(1)
r243704r243705
6572if not version_string:
6673    sys.stderr.write("Unable to extract version from source file '%s'\n" % srcfile)
6774    sys.exit(1)
75fp.close()
6876
77if dstfile is not None:
78    try:
79        fp = open(dstfile, 'w')
80    except IOError:
81        sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
82        sys.exit(1)
83else:
84    fp = sys.stdout
85
6986if build == "mess":
7087    # MESS
7188    author = "MESS Team";
r243704r243705
100117legal_copyright = "Copyright Nicola Salmoria and the MAME team"
101118
102119if outfmt == 'rc':
103    print("VS_VERSION_INFO VERSIONINFO")
104    print("\tFILEVERSION %s,%s,%s,%s" % (version_major, version_minor, version_build, version_subbuild))
105    print("\tPRODUCTVERSION %s,%s,%s,%s" % (version_major, version_minor, version_build, version_subbuild))
106    print("\tFILEFLAGSMASK 0x3fL")
107    if (version_build == 0) :
108        print("\tFILEFLAGS 0x0L")
109    else :
110        print("\tFILEFLAGS VS_FF_PRERELEASE")
111    print("\tFILEOS VOS_NT_WINDOWS32")
112    print("\tFILETYPE VFT_APP")
113    print("\tFILESUBTYPE VFT2_UNKNOWN")
114    print("BEGIN")
115    print("\tBLOCK \"StringFileInfo\"")
116    print("\tBEGIN")
117    print("#ifdef UNICODE")
118    print("\t\tBLOCK \"040904b0\"")
119    print("#else")
120    print("\t\tBLOCK \"040904E4\"")
121    print("#endif")
122    print("\t\tBEGIN")
123    print("\t\t\tVALUE \"Author\", \"%s\\0\"" % author)
124    print("\t\t\tVALUE \"Comments\", \"%s\\0\"" % comments)
125    print("\t\t\tVALUE \"CompanyName\", \"%s\\0\"" % company_name)
126    print("\t\t\tVALUE \"FileDescription\", \"%s\\0\"" % file_description)
127    print("\t\t\tVALUE \"FileVersion\", \"%s, %s, %s, %s\\0\"" % (version_major, version_minor, version_build, version_subbuild))
128    print("\t\t\tVALUE \"InternalName\", \"%s\\0\"" % internal_name)
129    print("\t\t\tVALUE \"LegalCopyright\", \"%s\\0\"" % legal_copyright)
130    print("\t\t\tVALUE \"OriginalFilename\", \"%s\\0\"" % original_filename)
131    print("\t\t\tVALUE \"ProductName\", \"%s\\0\"" % product_name)
132    print("\t\t\tVALUE \"ProductVersion\", \"%s\\0\"" % version_string)
133    print("\t\tEND")
134    print("\tEND")
135    print("\tBLOCK \"VarFileInfo\"")
136    print("\tBEGIN")
137    print("#ifdef UNICODE")
138    print("\t\tVALUE \"Translation\", 0x409, 1200")
139    print("#else")
140    print("\t\tVALUE \"Translation\", 0x409, 1252")
141    print("#endif")
142    print("\tEND")
143    print("END")
120    fp.write('VS_VERSION_INFO VERSIONINFO\n')
121    fp.write('\tFILEVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild))
122    fp.write('\tPRODUCTVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild))
123    fp.write('\tFILEFLAGSMASK 0x3fL\n')
124    if (version_build == 0):
125        fp.write('\tFILEFLAGS 0x0L\n')
126    else:
127        fp.write('\tFILEFLAGS VS_FF_PRERELEASE\n')
128    fp.write('\tFILEOS VOS_NT_WINDOWS32\n')
129    fp.write('\tFILETYPE VFT_APP\n')
130    fp.write('\tFILESUBTYPE VFT2_UNKNOWN\n')
131    fp.write('BEGIN\n')
132    fp.write('\tBLOCK "StringFileInfo"\n')
133    fp.write('\tBEGIN\n')
134    fp.write('#ifdef UNICODE\n')
135    fp.write('\t\tBLOCK "040904b0"\n')
136    fp.write('#else\n')
137    fp.write('\t\tBLOCK "040904E4"\n')
138    fp.write('#endif\n')
139    fp.write('\t\tBEGIN\n')
140    fp.write('\t\t\tVALUE "Author", "%s\\0"\n' % author)
141    fp.write('\t\t\tVALUE "Comments", "%s\\0"\n' % comments)
142    fp.write('\t\t\tVALUE "CompanyName", "%s\\0"\n' % company_name)
143    fp.write('\t\t\tVALUE "FileDescription", "%s\\0"\n' % file_description)
144    fp.write('\t\t\tVALUE "FileVersion", "%s, %s, %s, %s\\0"\n' % (version_major, version_minor, version_build, version_subbuild))
145    fp.write('\t\t\tVALUE "InternalName", "%s\\0"\n' % internal_name)
146    fp.write('\t\t\tVALUE "LegalCopyright", "%s\\0"\n' % legal_copyright)
147    fp.write('\t\t\tVALUE "OriginalFilename", "%s\\0"\n' % original_filename)
148    fp.write('\t\t\tVALUE "ProductName", "%s\\0"\n' % product_name)
149    fp.write('\t\t\tVALUE "ProductVersion", "%s\\0"\n' % version_string)
150    fp.write('\t\tEND\n')
151    fp.write('\tEND\n')
152    fp.write('\tBLOCK "VarFileInfo"\n')
153    fp.write('\tBEGIN\n')
154    fp.write('#ifdef UNICODE\n')
155    fp.write('\t\tVALUE "Translation", 0x409, 1200\n')
156    fp.write('#else\n')
157    fp.write('\t\tVALUE "Translation", 0x409, 1252\n')
158    fp.write('#endif\n')
159    fp.write('\tEND\n')
160    fp.write('END\n')
144161elif outfmt == 'plist':
145    print('<?xml version="1.0" encoding="UTF-8"?>')
146    print('<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">')
147    print('<plist version="1.0">')
148    print('<dict>')
149    print('\t<key>CFBundleDisplayName</key>')
150    print('\t<string>%s</string>' % product_name)
151    print('\t<key>CFBundleIdentifier</key>')
152    print('\t<string>%s</string>' % bundle_identifier)
153    print('\t<key>CFBundleInfoDictionaryVersion</key>')
154    print('\t<string>6.0</string>')
155    print('\t<key>CFBundleName</key>')
156    print('\t<string>%s</string>' % product_name)
157    print('\t<key>CFBundleShortVersionString</key>')
158    print('\t<string>%s.%s.%s</string>' % (version_major, version_minor, version_build))
159    print('</dict>')
160    print('</plist>')
162    fp.write('<?xml version="1.0" encoding="UTF-8"?>\n')
163    fp.write('<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n')
164    fp.write('<plist version="1.0">\n')
165    fp.write('<dict>\n')
166    fp.write('\t<key>CFBundleDisplayName</key>\n')
167    fp.write('\t<string>%s</string>\n' % product_name)
168    fp.write('\t<key>CFBundleIdentifier</key>\n')
169    fp.write('\t<string>%s</string>\n' % bundle_identifier)
170    fp.write('\t<key>CFBundleInfoDictionaryVersion</key>\n')
171    fp.write('\t<string>6.0</string>\n')
172    fp.write('\t<key>CFBundleName</key>\n')
173    fp.write('\t<string>%s</string>\n' % product_name)
174    fp.write('\t<key>CFBundleShortVersionString</key>\n')
175    fp.write('\t<string>%s.%s.%s</string>\n' % (version_major, version_minor, version_build))
176    fp.write('</dict>\n')
177    fp.write('</plist>\n')
178fp.flush()
trunk/src/mess/osd/windows/windows.mak
r243704r243705
3838
3939$(MESS_WINOBJ)/messvers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c
4040   @echo Emitting $@...
41   $(PYTHON) $(SRC)/build/verinfo.py -b mess $(SRC)/version.c > $@
No newline at end of file
41   $(PYTHON) $(SRC)/build/verinfo.py -b mess -o $@ $(SRC)/version.c
trunk/src/mess/tools/castool/castool.mak
r243704r243705
88
99
1010# castool executable name
11CASTOOL = $(BIN)castool$(EXE)
11CASTOOL = castool$(EXE)
1212
1313# add path to castool headers
1414INCPATH += -I$(SRC)/$(TARGET)/tools/castool
trunk/src/mess/tools/floptool/floptool.mak
r243704r243705
88
99
1010# floptool executable name
11FLOPTOOL = $(BIN)floptool$(EXE)
11FLOPTOOL = floptool$(EXE)
1212
1313# add path to floptool headers
1414INCPATH += -I$(SRC)/$(TARGET)/tools/floptool
trunk/src/mess/tools/imgtool/imgtool.mak
r243704r243705
88
99
1010# imgtool executable name
11IMGTOOL = $(BIN)imgtool$(EXE)
11IMGTOOL = imgtool$(EXE)
1212
1313# add path to imgtool headers
1414INCPATH += -I$(MESSSRC)/tools/imgtool
trunk/src/osd/sdl/sdl.mak
r243704r243705
557557$(EMULATOR): $(INFOPLIST)
558558$(INFOPLIST): $(SRC)/build/verinfo.py $(SRC)/version.c
559559   @echo Emitting $@...
560   $(PYTHON) $(SRC)/build/verinfo.py -b $(TARGET) -p $(SRC)/version.c > $@
560   $(PYTHON) $(SRC)/build/verinfo.py -b $(TARGET) -p -o $@ $(SRC)/version.c
561561endif
562562
563563ifndef MACOSX_USE_LIBSDL
trunk/src/osd/windows/windows.mak
r243704r243705
532532
533533$(WINOBJ)/mamevers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c
534534   @echo Emitting $@...
535   $(PYTHON) $(SRC)/build/verinfo.py -b mame $(SRC)/version.c > $@
535   $(PYTHON) $(SRC)/build/verinfo.py -b mame -o $@ $(SRC)/version.c
trunk/src/ume/osd/windows/windows.mak
r243704r243705
3838
3939$(UME_WINOBJ)/umevers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c
4040   @echo Emitting $@...
41   $(PYTHON) $(SRC)/build/verinfo.py -b ume $(SRC)/version.c > $@
No newline at end of file
41   $(PYTHON) $(SRC)/build/verinfo.py -b ume -o $@ $(SRC)/version.c


Previous 199869 Revisions Next


© 1997-2024 The MAME Team