SL-702: refactor to make the viewer-manager easier for TPVs to integrate

master
Oz Linden 2017-05-24 09:41:44 -04:00
parent 79c6b5f53e
commit e044902aaf
5 changed files with 31 additions and 22 deletions

View File

@ -3072,9 +3072,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>0d00f5e1bc993eefb61ef18c0142b178</string>
<string>57668d6519adf7a7bbdbed98240e7470</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/5470/18542/viewer_manager-1.0.505459-darwin64-505459.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/5525/18802/viewer_manager-1.0.505514-darwin64-505514.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
@ -3096,9 +3096,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>cd6e91143eff8f24029d79aa08fd8395</string>
<string>818860f12da07d1451ef4870f2143e9b</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/5471/18548/viewer_manager-1.0.505459-windows-505459.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/5526/18808/viewer_manager-1.0.505514-windows-505514.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@ -3109,7 +3109,7 @@
<key>source_type</key>
<string>hg</string>
<key>version</key>
<string>1.0.505459</string>
<string>1.0.505514</string>
</map>
<key>vlc-bin</key>
<map>

View File

@ -143,6 +143,9 @@ ARGUMENTS=[
default=None),
dict(name='versionfile',
description="""The name of a file containing the full version number."""),
dict(name='bundleid',
description="""The Mac OS X Bundle identifier.""",
default="com.secondlife.indra.viewer"),
dict(name='signature',
description="""This specifies an identity to sign the viewer with, if any.
If no value is supplied, the default signature will be used, if any. Currently

View File

@ -1331,7 +1331,7 @@ set(viewer_HEADER_FILES
source_group("CMake Rules" FILES ViewerInstall.cmake)
#summary.json creation moved to viewer_manifest.py MAINT-6413
#build_data.json creation moved to viewer_manifest.py MAINT-6413
# the viewer_version.txt file created here is for passing to viewer_manifest and autobuild
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt"
"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}\n")
@ -2073,6 +2073,7 @@ if (DARWIN)
--grid=${GRID}
"--channel=${VIEWER_CHANNEL}"
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--bundleid=${MACOSX_BUNDLE_GUI_IDENTIFIER}
--source=${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS
${VIEWER_BINARY_NAME}

View File

@ -123,20 +123,20 @@ class ViewerManifest(LLManifest):
#do not need to test for existence. If no platform is passed, llmanifest computes a default in get_default_platform
#the choice of value names (lnx, mac, win32, win) is dictated by the VMM API
summary_json_platform = ""
build_data_json_platform = ""
if 'linux' in self.args['platform']:
summary_json_platform = 'lnx'
build_data_json_platform = 'lnx'
elif 'darwin' in self.args['platform']:
summary_json_platform = 'mac'
build_data_json_platform = 'mac'
elif 'windows' in self.args['platform']:
#default case
summary_json_platform = 'win'
build_data_json_platform = 'win'
if 'arch' in self.args and self.args['arch']:
if 'i686' in self.args['arch']:
summary_json_platform = 'win32'
build_data_json_platform = 'win32'
#we really shouldn't be here, something is very wrong at this point
else:
summary_json_platform = 'None'
build_data_json_platform = 'None'
# put_in_file(src=) need not be an actual pathname; it
@ -201,21 +201,26 @@ class ViewerManifest(LLManifest):
# File in the newview/ directory
self.path("gpu_table.txt")
#summary.json. Standard with exception handling is fine. If we can't open a new file for writing, we have worse problems
#build_data.json. Standard with exception handling is fine. If we can't open a new file for writing, we have worse problems
#platform is computed above with other arg parsing
summary_dict = {"Type":"viewer","Version":'.'.join(self.args['version']),
build_data_dict = {"Type":"viewer","Version":'.'.join(self.args['version']),
"Channel Base": CHANNEL_VENDOR_BASE,
"Channel":self.channel_with_pkg_suffix(),
"Platform":summary_json_platform}
"Platform":build_data_json_platform,
"Update Service":"https://update.secondlife.com/update/",
}
#MAINT-7294: Windows exe names depend on channel name, so write that in also
if summary_json_platform.startswith('win'):
summary_dict.update({'Executable':self.final_exe()})
with open(os.path.join(os.pardir,'summary.json'), 'w') as summary_handle:
json.dump(summary_dict,summary_handle)
if build_data_json_platform.startswith('win'):
build_data_dict.update({'Executable':self.final_exe()})
if build_data_json_platform.startswith('mac'):
build_data_dict.update({'Bundle Id':self.args['bundleid']})
with open(os.path.join(os.pardir,'build_data.json'), 'w') as build_data_handle:
json.dump(build_data_dict,build_data_handle)
#we likely no longer need the test, since we will throw an exception above, but belt and suspenders and we get the
#return code for free.
if not self.path2basename(os.pardir, "summary.json"):
print "No summary.json file"
if not self.path2basename(os.pardir, "build_data.json"):
print "No build_data.json file"
def grid(self):
return self.args['grid']

View File

@ -1,4 +1,4 @@
This directory only exists as a place for the summary.json file to exist when the unit tests are run on a Mac, where the file goes to a sibling directory of the scripts dir. In Linux and Windows, the JSON file goes into the same directory as the script.
This directory only exists as a place for the build_data.json file to exist when the unit tests are run on a Mac, where the file goes to a sibling directory of the scripts dir. In Linux and Windows, the JSON file goes into the same directory as the script.
See: