diff options
author | Vas Crabb <vas@vastheman.com> | 2015-02-22 10:37:25 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2015-02-22 12:34:36 +1100 |
commit | 67d741a80d3aab76f5bd1419d1672c75144c691d (patch) | |
tree | b6e3e5a0ae6598deb955a360e4dd7c340cc9afe5 /src | |
parent | 46b916d7b1771115543baf870fbcbe2b0d8e85db (diff) |
If verinfo.py fails don't touch the output file, so subsequent builds won't think it's up-to-date
Diffstat (limited to 'src')
-rw-r--r-- | src/build/verinfo.py | 146 | ||||
-rw-r--r-- | src/mess/osd/windows/windows.mak | 2 | ||||
-rw-r--r-- | src/osd/sdl/sdl.mak | 2 | ||||
-rw-r--r-- | src/osd/windows/windows.mak | 2 | ||||
-rw-r--r-- | src/ume/osd/windows/windows.mak | 2 |
5 files changed, 86 insertions, 68 deletions
diff --git a/src/build/verinfo.py b/src/build/verinfo.py index 465f8d0e3cb..b6bb2f65e80 100644 --- a/src/build/verinfo.py +++ b/src/build/verinfo.py @@ -9,25 +9,32 @@ import sys def parse_args(): def usage(): - sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] [-r|-p] <filename>\n') + sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] [-r|-p] [-o <outfile>] <srcfile>\n') sys.exit(1) flags = True target = 'mame' + format = 'rc' input = None - output = 'rc' + output = None i = 1 while i < len(sys.argv): if flags and (sys.argv[i] == '-r'): - output = 'rc' + format = 'rc' elif flags and (sys.argv[i] == '-p'): - output = 'plist' + format = 'plist' elif flags and (sys.argv[i] == '-b'): i += 1; if (i >= len(sys.argv)) or (sys.argv[i] not in ('mame', 'mess', 'ume')): usage() else: target = sys.argv[i] + elif flags and (sys.argv[i] == '-o'): + i += 1; + if (i >= len(sys.argv)) or (output is not None): + usage() + else: + output = sys.argv[i] elif flags and (sys.argv[i] == '--'): flags = False elif flags and sys.argv[i].startswith('-'): @@ -39,7 +46,7 @@ def parse_args(): i += 1 if input is None: usage() - return target, input, output + return target, format, input, output def extract_version(input): @@ -51,10 +58,10 @@ def extract_version(input): return None, None, None -build, srcfile, outfmt = parse_args() +build, outfmt, srcfile, dstfile = parse_args() try: - fp = open(srcfile, 'rb') + fp = open(srcfile, 'rU') except IOError: sys.stderr.write("Unable to open source file '%s'\n" % srcfile) sys.exit(1) @@ -65,6 +72,16 @@ version_subbuild = "0" if not version_string: sys.stderr.write("Unable to extract version from source file '%s'\n" % srcfile) sys.exit(1) +fp.close() + +if dstfile is not None: + try: + fp = open(dstfile, 'w') + except IOError: + sys.stderr.write("Unable to open output file '%s'\n" % dstfile) + sys.exit(1) +else: + fp = sys.stdout if build == "mess": # MESS @@ -100,61 +117,62 @@ else: legal_copyright = "Copyright Nicola Salmoria and the MAME team" if outfmt == 'rc': - print("VS_VERSION_INFO VERSIONINFO") - print("\tFILEVERSION %s,%s,%s,%s" % (version_major, version_minor, version_build, version_subbuild)) - print("\tPRODUCTVERSION %s,%s,%s,%s" % (version_major, version_minor, version_build, version_subbuild)) - print("\tFILEFLAGSMASK 0x3fL") - if (version_build == 0) : - print("\tFILEFLAGS 0x0L") - else : - print("\tFILEFLAGS VS_FF_PRERELEASE") - print("\tFILEOS VOS_NT_WINDOWS32") - print("\tFILETYPE VFT_APP") - print("\tFILESUBTYPE VFT2_UNKNOWN") - print("BEGIN") - print("\tBLOCK \"StringFileInfo\"") - print("\tBEGIN") - print("#ifdef UNICODE") - print("\t\tBLOCK \"040904b0\"") - print("#else") - print("\t\tBLOCK \"040904E4\"") - print("#endif") - print("\t\tBEGIN") - print("\t\t\tVALUE \"Author\", \"%s\\0\"" % author) - print("\t\t\tVALUE \"Comments\", \"%s\\0\"" % comments) - print("\t\t\tVALUE \"CompanyName\", \"%s\\0\"" % company_name) - print("\t\t\tVALUE \"FileDescription\", \"%s\\0\"" % file_description) - print("\t\t\tVALUE \"FileVersion\", \"%s, %s, %s, %s\\0\"" % (version_major, version_minor, version_build, version_subbuild)) - print("\t\t\tVALUE \"InternalName\", \"%s\\0\"" % internal_name) - print("\t\t\tVALUE \"LegalCopyright\", \"%s\\0\"" % legal_copyright) - print("\t\t\tVALUE \"OriginalFilename\", \"%s\\0\"" % original_filename) - print("\t\t\tVALUE \"ProductName\", \"%s\\0\"" % product_name) - print("\t\t\tVALUE \"ProductVersion\", \"%s\\0\"" % version_string) - print("\t\tEND") - print("\tEND") - print("\tBLOCK \"VarFileInfo\"") - print("\tBEGIN") - print("#ifdef UNICODE") - print("\t\tVALUE \"Translation\", 0x409, 1200") - print("#else") - print("\t\tVALUE \"Translation\", 0x409, 1252") - print("#endif") - print("\tEND") - print("END") + fp.write('VS_VERSION_INFO VERSIONINFO\n') + fp.write('\tFILEVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild)) + fp.write('\tPRODUCTVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild)) + fp.write('\tFILEFLAGSMASK 0x3fL\n') + if (version_build == 0): + fp.write('\tFILEFLAGS 0x0L\n') + else: + fp.write('\tFILEFLAGS VS_FF_PRERELEASE\n') + fp.write('\tFILEOS VOS_NT_WINDOWS32\n') + fp.write('\tFILETYPE VFT_APP\n') + fp.write('\tFILESUBTYPE VFT2_UNKNOWN\n') + fp.write('BEGIN\n') + fp.write('\tBLOCK "StringFileInfo"\n') + fp.write('\tBEGIN\n') + fp.write('#ifdef UNICODE\n') + fp.write('\t\tBLOCK "040904b0"\n') + fp.write('#else\n') + fp.write('\t\tBLOCK "040904E4"\n') + fp.write('#endif\n') + fp.write('\t\tBEGIN\n') + fp.write('\t\t\tVALUE "Author", "%s\\0"\n' % author) + fp.write('\t\t\tVALUE "Comments", "%s\\0"\n' % comments) + fp.write('\t\t\tVALUE "CompanyName", "%s\\0"\n' % company_name) + fp.write('\t\t\tVALUE "FileDescription", "%s\\0"\n' % file_description) + fp.write('\t\t\tVALUE "FileVersion", "%s, %s, %s, %s\\0"\n' % (version_major, version_minor, version_build, version_subbuild)) + fp.write('\t\t\tVALUE "InternalName", "%s\\0"\n' % internal_name) + fp.write('\t\t\tVALUE "LegalCopyright", "%s\\0"\n' % legal_copyright) + fp.write('\t\t\tVALUE "OriginalFilename", "%s\\0"\n' % original_filename) + fp.write('\t\t\tVALUE "ProductName", "%s\\0"\n' % product_name) + fp.write('\t\t\tVALUE "ProductVersion", "%s\\0"\n' % version_string) + fp.write('\t\tEND\n') + fp.write('\tEND\n') + fp.write('\tBLOCK "VarFileInfo"\n') + fp.write('\tBEGIN\n') + fp.write('#ifdef UNICODE\n') + fp.write('\t\tVALUE "Translation", 0x409, 1200\n') + fp.write('#else\n') + fp.write('\t\tVALUE "Translation", 0x409, 1252\n') + fp.write('#endif\n') + fp.write('\tEND\n') + fp.write('END\n') elif outfmt == 'plist': - print('<?xml version="1.0" encoding="UTF-8"?>') - print('<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">') - print('<plist version="1.0">') - print('<dict>') - print('\t<key>CFBundleDisplayName</key>') - print('\t<string>%s</string>' % product_name) - print('\t<key>CFBundleIdentifier</key>') - print('\t<string>%s</string>' % bundle_identifier) - print('\t<key>CFBundleInfoDictionaryVersion</key>') - print('\t<string>6.0</string>') - print('\t<key>CFBundleName</key>') - print('\t<string>%s</string>' % product_name) - print('\t<key>CFBundleShortVersionString</key>') - print('\t<string>%s.%s.%s</string>' % (version_major, version_minor, version_build)) - print('</dict>') - print('</plist>') + fp.write('<?xml version="1.0" encoding="UTF-8"?>\n') + fp.write('<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n') + fp.write('<plist version="1.0">\n') + fp.write('<dict>\n') + fp.write('\t<key>CFBundleDisplayName</key>\n') + fp.write('\t<string>%s</string>\n' % product_name) + fp.write('\t<key>CFBundleIdentifier</key>\n') + fp.write('\t<string>%s</string>\n' % bundle_identifier) + fp.write('\t<key>CFBundleInfoDictionaryVersion</key>\n') + fp.write('\t<string>6.0</string>\n') + fp.write('\t<key>CFBundleName</key>\n') + fp.write('\t<string>%s</string>\n' % product_name) + fp.write('\t<key>CFBundleShortVersionString</key>\n') + fp.write('\t<string>%s.%s.%s</string>\n' % (version_major, version_minor, version_build)) + fp.write('</dict>\n') + fp.write('</plist>\n') +fp.flush() diff --git a/src/mess/osd/windows/windows.mak b/src/mess/osd/windows/windows.mak index 4461c6d14bb..01b209b936b 100644 --- a/src/mess/osd/windows/windows.mak +++ b/src/mess/osd/windows/windows.mak @@ -38,4 +38,4 @@ $(RESFILE): $(MESS_WINSRC)/mess.rc $(MESS_WINOBJ)/messvers.rc $(MESS_WINOBJ)/messvers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c @echo Emitting $@... - $(PYTHON) $(SRC)/build/verinfo.py -b mess $(SRC)/version.c > $@
\ No newline at end of file + $(PYTHON) $(SRC)/build/verinfo.py -b mess -o $@ $(SRC)/version.c diff --git a/src/osd/sdl/sdl.mak b/src/osd/sdl/sdl.mak index e30dc4812ad..778cec9661e 100644 --- a/src/osd/sdl/sdl.mak +++ b/src/osd/sdl/sdl.mak @@ -557,7 +557,7 @@ LDFLAGSEMULATOR += -sectcreate __TEXT __info_plist $(INFOPLIST) $(EMULATOR): $(INFOPLIST) $(INFOPLIST): $(SRC)/build/verinfo.py $(SRC)/version.c @echo Emitting $@... - $(PYTHON) $(SRC)/build/verinfo.py -b $(TARGET) -p $(SRC)/version.c > $@ + $(PYTHON) $(SRC)/build/verinfo.py -b $(TARGET) -p -o $@ $(SRC)/version.c endif ifndef MACOSX_USE_LIBSDL diff --git a/src/osd/windows/windows.mak b/src/osd/windows/windows.mak index f8e109f0d08..631c70dc3bb 100644 --- a/src/osd/windows/windows.mak +++ b/src/osd/windows/windows.mak @@ -532,4 +532,4 @@ $(RESFILE): $(WINSRC)/mame.rc $(WINOBJ)/mamevers.rc $(WINOBJ)/mamevers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c @echo Emitting $@... - $(PYTHON) $(SRC)/build/verinfo.py -b mame $(SRC)/version.c > $@ + $(PYTHON) $(SRC)/build/verinfo.py -b mame -o $@ $(SRC)/version.c diff --git a/src/ume/osd/windows/windows.mak b/src/ume/osd/windows/windows.mak index 5163e0e8c93..894595b0cbe 100644 --- a/src/ume/osd/windows/windows.mak +++ b/src/ume/osd/windows/windows.mak @@ -38,4 +38,4 @@ $(RESFILE): $(UME_WINSRC)/ume.rc $(UME_WINOBJ)/umevers.rc $(UME_WINOBJ)/umevers.rc: $(SRC)/build/verinfo.py $(SRC)/version.c @echo Emitting $@... - $(PYTHON) $(SRC)/build/verinfo.py -b ume $(SRC)/version.c > $@
\ No newline at end of file + $(PYTHON) $(SRC)/build/verinfo.py -b ume -o $@ $(SRC)/version.c |