merge
commit
664e4b4466
|
|
@ -3007,6 +3007,64 @@
|
|||
<key>version</key>
|
||||
<string>0.8.0.1</string>
|
||||
</map>
|
||||
<key>viewer-manager</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2000-2012, Linden Research, Inc.</string>
|
||||
<key>description</key>
|
||||
<string>Linden Lab Viewer Management Process suite.</string>
|
||||
<key>license</key>
|
||||
<string>Proprietary</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSE</string>
|
||||
<key>name</key>
|
||||
<string>viewer-manager</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>db1da9e5c06338c2f37d781b42d41e54</string>
|
||||
<key>url</key>
|
||||
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3525/9029/viewer_manager-1.0-darwin64-503513.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
</map>
|
||||
<key>linux</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>8c7f32f85850248809ae811ba8e47d81</string>
|
||||
<key>url</key>
|
||||
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3428/8686/viewer_manager-1.0-linux-503417.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
</map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>a431b47b3d6fd8798ae6f99867d8f058</string>
|
||||
<key>url</key>
|
||||
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3526/9035/viewer_manager-1.0-windows-503513.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>source</key>
|
||||
<string>https://bitbucket.org/lindenlab/vmp-standalone</string>
|
||||
<key>source_type</key>
|
||||
<string>hg</string>
|
||||
<key>version</key>
|
||||
<string>1.0</string>
|
||||
</map>
|
||||
<key>vlc-bin</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
include (Prebuilt)
|
||||
use_prebuilt_binary(viewer-manager)
|
||||
|
|
@ -312,7 +312,7 @@ if __name__ == "__main__":
|
|||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-d", "--debug", dest="loglevel", action="store_const",
|
||||
const=logging.DEBUG, default=logging.WARNING)
|
||||
const=logging.DEBUG, default=logging.INFO)
|
||||
parser.add_argument("-D", "--define", dest="vars", default=[], action="append",
|
||||
metavar="VAR=value",
|
||||
help="Add VAR=value to the env variables defined")
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ include(TemplateCheck)
|
|||
include(UI)
|
||||
include(UnixInstall)
|
||||
include(ViewerMiscLibs)
|
||||
include(ViewerManager)
|
||||
include(VisualLeakDetector)
|
||||
include(ZLIB)
|
||||
include(URIPARSER)
|
||||
|
|
@ -1756,58 +1757,6 @@ if (WINDOWS)
|
|||
${SHARED_LIB_STAGING_DIR}/Debug/fmodexL.dll
|
||||
)
|
||||
endif (FMODEX)
|
||||
|
||||
get_filename_component(PYTHON_DIRECTORY ${PYTHON_EXECUTABLE} DIRECTORY)
|
||||
|
||||
# http://pythonhosted.org/PyInstaller/#options
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/SL_Launcher.exe
|
||||
COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe
|
||||
ARGS
|
||||
--onefile
|
||||
--log-level WARN
|
||||
--distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
${CMAKE_SOURCE_DIR}/viewer_components/manager/SL_Launcher
|
||||
COMMENT "Performing pyinstaller compile of SL_Launcher"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/apply_update.exe
|
||||
COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe
|
||||
ARGS
|
||||
--onefile
|
||||
--log-level WARN
|
||||
--distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
${CMAKE_SOURCE_DIR}/viewer_components/manager/apply_update.py
|
||||
COMMENT "Performing pyinstaller compile of updater"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/download_update.exe
|
||||
COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe
|
||||
ARGS
|
||||
--onefile
|
||||
--log-level WARN
|
||||
--distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
${CMAKE_SOURCE_DIR}/viewer_components/manager/download_update.py
|
||||
COMMENT "Performing pyinstaller compile of update downloader"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/update_manager.exe
|
||||
COMMAND ${PYTHON_DIRECTORY}/Scripts/pyinstaller.exe
|
||||
ARGS
|
||||
--onefile
|
||||
--log-level WARN
|
||||
--distpath ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
||||
${CMAKE_SOURCE_DIR}/viewer_components/manager/update_manager.py
|
||||
COMMENT "Performing pyinstaller compile of update manager"
|
||||
)
|
||||
|
||||
add_custom_target(compile_w_viewer_launcher ALL DEPENDS ${CMAKE_CFG_INTDIR}/SL_Launcher.exe)
|
||||
add_custom_target(compile_w_viewer_updater ALL DEPENDS ${CMAKE_CFG_INTDIR}/apply_update.exe)
|
||||
add_custom_target(compile_w_viewer_downloader ALL DEPENDS ${CMAKE_CFG_INTDIR}/download_update.exe)
|
||||
add_custom_target(compile_w_viewer_update_manager ALL DEPENDS ${CMAKE_CFG_INTDIR}/update_manager.exe)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CFG_INTDIR}/copy_touched.bat
|
||||
|
|
|
|||
|
|
@ -311,6 +311,8 @@ private:
|
|||
// llcorehttp library init/shutdown helper
|
||||
LLAppCoreHttp mAppCoreHttp;
|
||||
|
||||
bool mIsFirstRun;
|
||||
|
||||
};
|
||||
|
||||
// consts from viewer.h
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ S32 LLVersionInfo::getPatch()
|
|||
//static
|
||||
S32 LLVersionInfo::getBuild()
|
||||
{
|
||||
std::cout << "What we have IN llversioninfo: " << LL_VIEWER_VERSION_BUILD << std::endl;
|
||||
return LL_VIEWER_VERSION_BUILD;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@
|
|||
#include "../llviewernetwork.h"
|
||||
#include "../lllogininstance.h"
|
||||
|
||||
// Needed for Auth Test
|
||||
#include "../llhasheduniqueid.h"
|
||||
|
||||
// STL headers
|
||||
// std headers
|
||||
// external library headers
|
||||
|
|
@ -187,7 +190,6 @@ void LLUIColorTable::saveUserSettings(void)const {}
|
|||
#include "../llversioninfo.h"
|
||||
const std::string &LLVersionInfo::getVersion() { return VIEWERLOGIN_VERSION; }
|
||||
const std::string &LLVersionInfo::getChannel() { return VIEWERLOGIN_CHANNEL; }
|
||||
const int MD5HEX_STR_SIZE = 33; // char hex[MD5HEX_STR_SIZE]; with null
|
||||
|
||||
bool llHashedUniqueID(unsigned char* id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@
|
|||
|
||||
#include "../llversioninfo.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
// LL_VIEWER_CHANNEL is a macro defined on the compiler command line. The
|
||||
// macro expands to the string name of the channel, but without quotes. We
|
||||
// need to turn it into a quoted string. This macro trick does that.
|
||||
|
|
@ -81,7 +83,9 @@ namespace tut
|
|||
|
||||
template<> template<>
|
||||
void versioninfo_object_t::test<1>()
|
||||
{
|
||||
{
|
||||
std::cout << "What we parsed from CMake: " << LL_VIEWER_VERSION_BUILD << std::endl;
|
||||
std::cout << "What we get from llversioninfo: " << LLVersionInfo::getBuild() << std::endl;
|
||||
ensure_equals("Major version",
|
||||
LLVersionInfo::getMajor(),
|
||||
LL_VIEWER_VERSION_MAJOR);
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ class ViewerManifest(LLManifest):
|
|||
return channel_type
|
||||
|
||||
def channel_variant_app_suffix(self):
|
||||
# get any part of the compiled channel name after the CHANNEL_VENDOR_BASE
|
||||
# get any part of the channel name after the CHANNEL_VENDOR_BASE
|
||||
suffix=self.channel_variant()
|
||||
# by ancient convention, we don't use Release in the app name
|
||||
if self.channel_type() == 'release':
|
||||
|
|
@ -342,19 +342,42 @@ class WindowsManifest(ViewerManifest):
|
|||
pkgdir = os.path.join(self.args['build'], os.pardir, 'packages')
|
||||
relpkgdir = os.path.join(pkgdir, "lib", "release")
|
||||
debpkgdir = os.path.join(pkgdir, "lib", "debug")
|
||||
vmpdir = os.path.join(pkgdir, "VMP")
|
||||
llbasedir = os.path.join(pkgdir, "llbase")
|
||||
|
||||
if self.is_packaging_viewer():
|
||||
# Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe.
|
||||
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
|
||||
# include the compiled launcher script so that it gets included in the file_list
|
||||
self.path(src='%s/SL_Launcher.exe' % self.args['configuration'], dst="SL_Launcher.exe")
|
||||
|
||||
# include the compiled launcher scripts so that it gets included in the file_list
|
||||
self.path(src='%s/apply_update.exe' % vmpdir, dst="apply_update.exe")
|
||||
self.path(src='%s/download_update.exe' % vmpdir, dst="download_update.exe")
|
||||
self.path(src='%s/SL_Launcher.exe' % vmpdir, dst="SL_Launcher.exe")
|
||||
self.path(src='%s/update_manager.exe' % vmpdir, dst="update_manager.exe")
|
||||
|
||||
#IUM is not normally executed directly, just imported. No exe needed.
|
||||
self.path2basename(vmpdir,"InstallerUserMessage.py")
|
||||
|
||||
#VMP Tkinter icons
|
||||
if self.prefix("vmp_icons"):
|
||||
self.path("*.png")
|
||||
self.path("*.gif")
|
||||
self.end_prefix("vmp_icons")
|
||||
|
||||
#before, we only needed llbase at build time. With VMP, we need it at run time.
|
||||
llbase_path = os.path.join(self.get_dst_prefix(),'llbase')
|
||||
if not os.path.exists(llbase_path):
|
||||
os.makedirs(llbase_path)
|
||||
if self.prefix(dst="llbase"):
|
||||
self.path2basename(llbasedir,"*.py")
|
||||
self.path2basename(llbasedir,"_cllsd.so")
|
||||
self.end_prefix()
|
||||
|
||||
# Plugin host application
|
||||
self.path2basename(os.path.join(os.pardir,
|
||||
'llplugin', 'slplugin', self.args['configuration']),
|
||||
"slplugin.exe")
|
||||
|
||||
#note, launcher and friends do not need viewer_manifest in Windows as the scripts are compiled into executables
|
||||
# Get shared libs from the shared libs staging directory
|
||||
if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
|
||||
dst=""):
|
||||
|
|
@ -687,7 +710,17 @@ class WindowsManifest(ViewerManifest):
|
|||
if not python or python == "${PYTHON}":
|
||||
python = 'python'
|
||||
if os.path.exists(sign_py):
|
||||
print "about to run signing of: ", self.dst_path_of(installer_file).replace('\\', '\\\\\\\\')
|
||||
self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of(installer_file).replace('\\', '\\\\\\\\')))
|
||||
#Unlike the viewer binary, the VMP filenames are invariant with respect to version, os, etc.
|
||||
print "about to run signing of: ", self.dst_path_of("apply_update.exe").replace('\\', '\\\\\\\\')
|
||||
self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("apply_update.exe").replace('\\', '\\\\\\\\')))
|
||||
print "about to run signing of: ", self.dst_path_of("download_update.exe").replace('\\', '\\\\\\\\')
|
||||
self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("download_update.exe").replace('\\', '\\\\\\\\')))
|
||||
print "about to run signing of: ", self.dst_path_of("SL_Launcher.exe").replace('\\', '\\\\\\\\')
|
||||
self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("SL_Launcher.exe").replace('\\', '\\\\\\\\')))
|
||||
print "about to run signing of: ", self.dst_path_of("update_manager.exe").replace('\\', '\\\\\\\\')
|
||||
self.run_command("%s %s %s" % (python, sign_py, self.dst_path_of("update_manager.exe").replace('\\', '\\\\\\\\')))
|
||||
else:
|
||||
print "Skipping code signing,", sign_py, "does not exist"
|
||||
self.created_path(self.dst_path_of(installer_file))
|
||||
|
|
@ -716,28 +749,29 @@ class DarwinManifest(ViewerManifest):
|
|||
pkgdir = os.path.join(self.args['build'], os.pardir, 'packages')
|
||||
relpkgdir = os.path.join(pkgdir, "lib", "release")
|
||||
debpkgdir = os.path.join(pkgdir, "lib", "debug")
|
||||
llbasedir = os.path.join(pkgdir, os.pardir)
|
||||
vmpdir = os.path.join(pkgdir, "VMP")
|
||||
llbasedir = os.path.join(pkgdir, "llbase")
|
||||
|
||||
if self.prefix(src="", dst="Contents"): # everything goes in Contents
|
||||
self.path("Info.plist", dst="Info.plist")
|
||||
|
||||
# copy additional libs in <bundle>/Contents/MacOS/
|
||||
self.path(os.path.join(relpkgdir, "libndofdev.dylib"), dst="Resources/libndofdev.dylib")
|
||||
self.path(os.path.join(relpkgdir, "libhunspell-1.3.0.dylib"), dst="Resources/libhunspell-1.3.0.dylib")
|
||||
self.path(os.path.join(relpkgdir, "libhunspell-1.3.0.dylib"), dst="Resources/libhunspell-1.3.0.dylib")
|
||||
|
||||
if self.prefix(dst="MacOS"):
|
||||
self.path2basename("../viewer_components/updater/scripts/darwin", "*.py")
|
||||
#this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323
|
||||
self.path2basename("../viewer_components/manager","SL_Launcher")
|
||||
self.path2basename("../viewer_components/manager","*.py")
|
||||
self.path2basename(vmpdir,"SL_Launcher")
|
||||
self.path2basename(vmpdir,"*.py")
|
||||
llbase_path = os.path.join(self.get_dst_prefix(),'llbase')
|
||||
if not os.path.exists(llbase_path):
|
||||
os.makedirs(llbase_path)
|
||||
#before, we only needed llbase at build time. With VMP, we need it at run time.
|
||||
if self.prefix(dst="llbase"):
|
||||
self.path2basename("../packages/llbase","*.py")
|
||||
self.path2basename("../packages/llbase","_cllsd.so")
|
||||
self.path2basename(llbasedir,"*.py")
|
||||
self.path2basename(llbasedir,"_cllsd.so")
|
||||
self.end_prefix()
|
||||
self.end_prefix()
|
||||
self.end_prefix()
|
||||
|
||||
# most everything goes in the Resources directory
|
||||
if self.prefix(src="", dst="Resources"):
|
||||
|
|
@ -756,6 +790,12 @@ class DarwinManifest(ViewerManifest):
|
|||
self.path("secondlife.icns")
|
||||
self.end_prefix(icon_path)
|
||||
|
||||
#VMP Tkinter icons
|
||||
if self.prefix("vmp_icons"):
|
||||
self.path("*.png")
|
||||
self.path("*.gif")
|
||||
self.end_prefix("vmp_icons")
|
||||
|
||||
self.path("SecondLife.nib")
|
||||
|
||||
# Translations
|
||||
|
|
@ -780,12 +820,6 @@ class DarwinManifest(ViewerManifest):
|
|||
self.path("uk.lproj")
|
||||
self.path("zh-Hans.lproj")
|
||||
|
||||
#VMP icons
|
||||
if self.prefix("vmp_icons"):
|
||||
self.path("*.png")
|
||||
self.path("*.gif")
|
||||
self.end_prefix("vmp_icons")
|
||||
|
||||
def path_optional(src, dst):
|
||||
"""
|
||||
For a number of our self.path() calls, not only do we want
|
||||
|
|
@ -1158,7 +1192,7 @@ class LinuxManifest(ViewerManifest):
|
|||
if self.prefix(src="", dst="bin"):
|
||||
self.path("secondlife-bin","do-not-directly-run-secondlife-bin")
|
||||
self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin")
|
||||
self.path2basename("../llplugin/slplugin", "SLPlugin")
|
||||
self.path2basename("../llplugin/slplugin", "SLPlugin")
|
||||
#this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323
|
||||
self.path2basename("../viewer_components/manager","SL_Launcher")
|
||||
self.path2basename("../viewer_components/manager","*.py")
|
||||
|
|
@ -1167,8 +1201,7 @@ class LinuxManifest(ViewerManifest):
|
|||
os.makedirs(llbase_path)
|
||||
if self.prefix(dst="llbase"):
|
||||
self.path2basename("../packages/llbase","*.py")
|
||||
self.path2basename("../packages/llbase","_cllsd.so")
|
||||
self.end_prefix()
|
||||
self.path2basename("../packages/llbase","_cllsd.so")
|
||||
self.end_prefix("bin")
|
||||
|
||||
if self.prefix("res-sdl"):
|
||||
|
|
|
|||
Loading…
Reference in New Issue