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> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>0d00f5e1bc993eefb61ef18c0142b178</string> <string>57668d6519adf7a7bbdbed98240e7470</string>
<key>url</key> <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> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -3096,9 +3096,9 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>cd6e91143eff8f24029d79aa08fd8395</string> <string>818860f12da07d1451ef4870f2143e9b</string>
<key>url</key> <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> </map>
<key>name</key> <key>name</key>
<string>windows</string> <string>windows</string>
@ -3109,7 +3109,7 @@
<key>source_type</key> <key>source_type</key>
<string>hg</string> <string>hg</string>
<key>version</key> <key>version</key>
<string>1.0.505459</string> <string>1.0.505514</string>
</map> </map>
<key>vlc-bin</key> <key>vlc-bin</key>
<map> <map>

View File

@ -143,6 +143,9 @@ ARGUMENTS=[
default=None), default=None),
dict(name='versionfile', dict(name='versionfile',
description="""The name of a file containing the full version number."""), 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', dict(name='signature',
description="""This specifies an identity to sign the viewer with, if any. 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 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) 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 # the viewer_version.txt file created here is for passing to viewer_manifest and autobuild
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt" file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt"
"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}\n") "${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}\n")
@ -2073,6 +2073,7 @@ if (DARWIN)
--grid=${GRID} --grid=${GRID}
"--channel=${VIEWER_CHANNEL}" "--channel=${VIEWER_CHANNEL}"
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt --versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--bundleid=${MACOSX_BUNDLE_GUI_IDENTIFIER}
--source=${CMAKE_CURRENT_SOURCE_DIR} --source=${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS DEPENDS
${VIEWER_BINARY_NAME} ${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 #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 #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']: if 'linux' in self.args['platform']:
summary_json_platform = 'lnx' build_data_json_platform = 'lnx'
elif 'darwin' in self.args['platform']: elif 'darwin' in self.args['platform']:
summary_json_platform = 'mac' build_data_json_platform = 'mac'
elif 'windows' in self.args['platform']: elif 'windows' in self.args['platform']:
#default case #default case
summary_json_platform = 'win' build_data_json_platform = 'win'
if 'arch' in self.args and self.args['arch']: if 'arch' in self.args and self.args['arch']:
if 'i686' in 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 #we really shouldn't be here, something is very wrong at this point
else: else:
summary_json_platform = 'None' build_data_json_platform = 'None'
# put_in_file(src=) need not be an actual pathname; it # put_in_file(src=) need not be an actual pathname; it
@ -201,21 +201,26 @@ class ViewerManifest(LLManifest):
# File in the newview/ directory # File in the newview/ directory
self.path("gpu_table.txt") 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 #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(), "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 #MAINT-7294: Windows exe names depend on channel name, so write that in also
if summary_json_platform.startswith('win'): if build_data_json_platform.startswith('win'):
summary_dict.update({'Executable':self.final_exe()}) build_data_dict.update({'Executable':self.final_exe()})
with open(os.path.join(os.pardir,'summary.json'), 'w') as summary_handle: if build_data_json_platform.startswith('mac'):
json.dump(summary_dict,summary_handle) 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 #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. #return code for free.
if not self.path2basename(os.pardir, "summary.json"): if not self.path2basename(os.pardir, "build_data.json"):
print "No summary.json file" print "No build_data.json file"
def grid(self): def grid(self):
return self.args['grid'] 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: See: