Merge voice-56
commit
24231e7a71
|
|
@ -3292,7 +3292,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>license</key>
|
||||
<string>Mixed</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/slvoice.txt</string>
|
||||
<string>LICENSES/vivox_licenses.txt</string>
|
||||
<key>name</key>
|
||||
<string>slvoice</string>
|
||||
<key>platforms</key>
|
||||
|
|
@ -3314,9 +3314,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>a605ec940768c878527d3b8f2ff61288</string>
|
||||
<string>f824d586ab5de6edd14ef6828e9e4b66</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21421/157284/slvoice-4.9.0002.30313.517593-darwin64-517593.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/44719/395040/slvoice-4.10.0000.32327.5fc3fe7c.531581-darwin64-531581.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -3350,9 +3350,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>5a78539626b5f23522d0b466247f48b4</string>
|
||||
<string>1941c17c81905f23b4928288bcf719fb</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21422/157291/slvoice-4.9.0002.30313.517593-windows-517593.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/44720/395047/slvoice-4.10.0000.32327.5fc3fe7c.531581-windows-531581.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -3362,16 +3362,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>1f8e09c053c00d9dc44ea74568e63dc1</string>
|
||||
<string>baa6cdc8e8762d5519996ed9faa0bf3f</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21423/157298/slvoice-4.9.0002.30313.517593-windows64-517593.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/44721/395056/slvoice-4.10.0000.32327.5fc3fe7c.531581-windows64-531581.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>4.9.0002.30313.517593</string>
|
||||
<string>4.10.0000.32327.5fc3fe7c.531581</string>
|
||||
</map>
|
||||
<key>tut</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -17,17 +17,16 @@ if(WINDOWS)
|
|||
|
||||
#*******************************
|
||||
# VIVOX - *NOTE: no debug version
|
||||
set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
||||
set(vivox_files
|
||||
SLVoice.exe
|
||||
)
|
||||
set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
||||
set(slvoice_src_dir "${ARCH_PREBUILT_BIN_RELEASE}")
|
||||
set(slvoice_files SLVoice.exe )
|
||||
if (ADDRESS_SIZE EQUAL 64)
|
||||
list(APPEND vivox_files
|
||||
list(APPEND vivox_libs
|
||||
vivoxsdk_x64.dll
|
||||
ortp_x64.dll
|
||||
)
|
||||
else (ADDRESS_SIZE EQUAL 64)
|
||||
list(APPEND vivox_files
|
||||
list(APPEND vivox_libs
|
||||
vivoxsdk.dll
|
||||
ortp.dll
|
||||
)
|
||||
|
|
@ -174,11 +173,10 @@ elseif(DARWIN)
|
|||
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/Resources")
|
||||
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}/Release/Resources")
|
||||
|
||||
set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
||||
set(vivox_files
|
||||
SLVoice
|
||||
set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
||||
set(slvoice_files SLVoice)
|
||||
set(vivox_libs
|
||||
libortp.dylib
|
||||
libvivoxplatform.dylib
|
||||
libvivoxsdk.dylib
|
||||
)
|
||||
set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
|
||||
|
|
@ -218,15 +216,15 @@ elseif(LINUX)
|
|||
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}")
|
||||
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}")
|
||||
|
||||
set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
||||
set(vivox_files
|
||||
set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
||||
set(vivox_libs
|
||||
libsndfile.so.1
|
||||
libortp.so
|
||||
libvivoxoal.so.1
|
||||
libvivoxplatform.so
|
||||
libvivoxsdk.so
|
||||
SLVoice
|
||||
)
|
||||
)
|
||||
set(slvoice_files SLVoice)
|
||||
|
||||
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
|
||||
# or ARCH_PREBUILT_DIRS
|
||||
set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
|
||||
|
|
@ -269,10 +267,6 @@ elseif(LINUX)
|
|||
set(release_files ${release_files} "libfmod.so")
|
||||
endif (FMODSTUDIO)
|
||||
|
||||
#if (FMODEX)
|
||||
# set(debug_files ${debug_files} "libfmodexL.so")
|
||||
# set(release_files ${release_files} "libfmodex.so")
|
||||
#endif (FMODEX)
|
||||
if (FMODEX)
|
||||
if(ADDRESS_SIZE EQUAL 32)
|
||||
set(debug_files ${debug_files} "libfmodexL.so")
|
||||
|
|
@ -285,8 +279,8 @@ elseif(LINUX)
|
|||
|
||||
else(WINDOWS)
|
||||
message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
|
||||
set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
|
||||
set(vivox_files "")
|
||||
set(vivox_lib_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
|
||||
set(vivox_libs "")
|
||||
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
|
||||
# or ARCH_PREBUILT_DIRS
|
||||
set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug")
|
||||
|
|
@ -309,39 +303,36 @@ endif(WINDOWS)
|
|||
################################################################
|
||||
|
||||
copy_if_different(
|
||||
${vivox_src_dir}
|
||||
${vivox_lib_dir}
|
||||
"${SHARED_LIB_STAGING_DIR_DEBUG}"
|
||||
out_targets
|
||||
${vivox_files}
|
||||
${vivox_libs}
|
||||
)
|
||||
set(third_party_targets ${third_party_targets} ${out_targets})
|
||||
|
||||
copy_if_different(
|
||||
${vivox_src_dir}
|
||||
${slvoice_src_dir}
|
||||
"${SHARED_LIB_STAGING_DIR_RELEASE}"
|
||||
out_targets
|
||||
${vivox_files}
|
||||
${slvoice_files}
|
||||
)
|
||||
copy_if_different(
|
||||
${vivox_lib_dir}
|
||||
"${SHARED_LIB_STAGING_DIR_RELEASE}"
|
||||
out_targets
|
||||
${vivox_libs}
|
||||
)
|
||||
|
||||
set(third_party_targets ${third_party_targets} ${out_targets})
|
||||
|
||||
copy_if_different(
|
||||
${vivox_src_dir}
|
||||
${vivox_lib_dir}
|
||||
"${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
|
||||
out_targets
|
||||
${vivox_files}
|
||||
${vivox_libs}
|
||||
)
|
||||
set(third_party_targets ${third_party_targets} ${out_targets})
|
||||
|
||||
|
||||
|
||||
#copy_if_different(
|
||||
# ${debug_src_dir}
|
||||
# "${SHARED_LIB_STAGING_DIR_DEBUG}"
|
||||
# out_targets
|
||||
# ${debug_files}
|
||||
# )
|
||||
#set(third_party_targets ${third_party_targets} ${out_targets})
|
||||
|
||||
copy_if_different(
|
||||
${release_src_dir}
|
||||
"${SHARED_LIB_STAGING_DIR_RELEASE}"
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ THE SOFTWARE.
|
|||
$/LicenseInfo$
|
||||
"""
|
||||
|
||||
from collections import namedtuple, defaultdict
|
||||
import commands
|
||||
import errno
|
||||
import filecmp
|
||||
|
|
@ -159,6 +160,8 @@ BASE_ARGUMENTS=[
|
|||
description="""The name of a file containing the full version number."""),
|
||||
dict(name='viewer_flavor',
|
||||
description='Type of viewer build. Can be oss or hvk.', default="oss"),
|
||||
dict(name='fmodversion',
|
||||
description='Version of FMOD used. Can be fmodstudio or fmodex.', default=None),
|
||||
]
|
||||
|
||||
def usage(arguments, srctree=""):
|
||||
|
|
@ -316,6 +319,8 @@ class LLManifestRegistry(type):
|
|||
if match:
|
||||
cls.manifests[match.group(1).lower()] = cls
|
||||
|
||||
MissingFile = namedtuple("MissingFile", ("pattern", "tried"))
|
||||
|
||||
class LLManifest(object):
|
||||
__metaclass__ = LLManifestRegistry
|
||||
manifests = {}
|
||||
|
|
@ -337,7 +342,8 @@ class LLManifest(object):
|
|||
self.dst_prefix = [args['dest']]
|
||||
self.created_paths = []
|
||||
self.package_name = "Unknown"
|
||||
|
||||
self.missing = []
|
||||
|
||||
def default_channel(self):
|
||||
return self.args.get('channel', None) == RELEASE_CHANNEL
|
||||
|
||||
|
|
@ -611,6 +617,40 @@ class LLManifest(object):
|
|||
def package_action(self, src, dst):
|
||||
pass
|
||||
|
||||
def finish(self):
|
||||
"""
|
||||
generic finish, always called before the ${action}_finish() methods
|
||||
"""
|
||||
# Collecting MissingFile instances in self.missing, and checking that
|
||||
# here, is intended to minimize the number of (potentially lengthy)
|
||||
# build cycles a developer must run in order to fix missing-files
|
||||
# errors. The manifest processing is necessarily the last step in a
|
||||
# build, and if we only caught a single missing file error per run,
|
||||
# the developer would need to run a build for each additional missing-
|
||||
# file error until all were resolved. This way permits the developer
|
||||
# to resolve them all at once.
|
||||
if self.missing:
|
||||
print '*' * 72
|
||||
print "Missing files:"
|
||||
# Instead of just dumping each missing file and all the places we
|
||||
# looked for it, group by common sets of places we looked. Use a
|
||||
# set to store the 'tried' directories, to avoid mismatches due to
|
||||
# reordering -- but since we intend to use the set of 'tried'
|
||||
# directories as a dict key, it must be a frozenset.
|
||||
organize = defaultdict(set)
|
||||
for missingfile in self.missing:
|
||||
organize[frozenset(missingfile.tried)].add(missingfile.pattern)
|
||||
# Now dump all the patterns sought in each group of 'tried'
|
||||
# directories.
|
||||
for tried, patterns in organize.items():
|
||||
print " Could not find in:"
|
||||
for dir in sorted(tried):
|
||||
print " %s" % dir
|
||||
for pattern in sorted(patterns):
|
||||
print " %s" % pattern
|
||||
print '*' * 72
|
||||
raise MissingError('%s patterns could not be found' % len(self.missing))
|
||||
|
||||
def copy_finish(self):
|
||||
pass
|
||||
|
||||
|
|
@ -844,17 +884,23 @@ class LLManifest(object):
|
|||
return count
|
||||
|
||||
try_prefixes = [self.get_src_prefix(), self.get_artwork_prefix(), self.get_build_prefix()]
|
||||
tried=[]
|
||||
count=0
|
||||
while not count and try_prefixes:
|
||||
pfx = try_prefixes.pop(0)
|
||||
for pfx in try_prefixes:
|
||||
try:
|
||||
count = try_path(os.path.join(pfx, src))
|
||||
except MissingError:
|
||||
tried.append(pfx)
|
||||
if not try_prefixes:
|
||||
# no more prefixes left to try
|
||||
print "unable to find '%s'; looked in:\n %s" % (src, '\n '.join(tried))
|
||||
# if we produce MissingError, just try the next prefix
|
||||
continue
|
||||
# If we actually found nonzero files, stop looking
|
||||
if count:
|
||||
break
|
||||
else:
|
||||
# no more prefixes left to try
|
||||
print("\nunable to find '%s'; looked in:\n %s" % (src, '\n '.join(try_prefixes)))
|
||||
self.missing.append(MissingFile(pattern=src, tried=try_prefixes))
|
||||
# At this point 'count' might never have been successfully
|
||||
# assigned! Even if it was, though, we can be sure it is 0.
|
||||
return 0
|
||||
|
||||
print "%d files" % count
|
||||
|
||||
# Let caller check whether we processed as many files as expected. In
|
||||
|
|
@ -865,6 +911,8 @@ class LLManifest(object):
|
|||
self.actions = actions
|
||||
self.construct()
|
||||
# perform finish actions
|
||||
# generic finish first
|
||||
self.finish()
|
||||
for action in self.actions:
|
||||
methodname = action + "_finish"
|
||||
method = getattr(self, methodname, None)
|
||||
|
|
|
|||
|
|
@ -1632,7 +1632,6 @@ list(APPEND viewer_HEADER_FILES ${CMAKE_CURRENT_BINARY_DIR}/exoflickrkeys.h)
|
|||
# </exodus>
|
||||
|
||||
#<FS:LO> Discord rich presence
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/fsdiscordkey.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/fsdiscordkey.h
|
||||
|
|
@ -2145,11 +2144,17 @@ list(APPEND EVENT_HOST_SCRIPTS ${EVENT_HOST_SCRIPT_GLOB_LIST})
|
|||
set(PACKAGE ON CACHE BOOL
|
||||
"Add a package target that builds an installer package.")
|
||||
|
||||
if ( OPENSIM )
|
||||
set( ND_VIEWER_FLAVOR "oss" )
|
||||
else ( OPENSIM )
|
||||
set( ND_VIEWER_FLAVOR "hvk" )
|
||||
endif ( OPENSIM )
|
||||
if (OPENSIM )
|
||||
set(ND_VIEWER_FLAVOR "oss")
|
||||
else (OPENSIM)
|
||||
set(ND_VIEWER_FLAVOR "hvk")
|
||||
endif (OPENSIM)
|
||||
|
||||
if (FMODSTUDIO)
|
||||
set(FMODVERSION "fmodstudio")
|
||||
elseif (FMODEX)
|
||||
set(FMODVERSION "fmodex")
|
||||
endif (FMODSTUDIO)
|
||||
|
||||
if (WINDOWS)
|
||||
set_target_properties(${VIEWER_BINARY_NAME}
|
||||
|
|
@ -2275,6 +2280,7 @@ if (WINDOWS)
|
|||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/copy_touched.bat
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--fmodversion=${FMODVERSION}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
stage_third_party_libs
|
||||
|
|
@ -2337,6 +2343,7 @@ if (WINDOWS)
|
|||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--viewer_flavor=${ND_VIEWER_FLAVOR}
|
||||
--fmodversion=${FMODVERSION}
|
||||
DEPENDS
|
||||
${VIEWER_BINARY_NAME}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
|
|
@ -2507,6 +2514,7 @@ endif (NOT ENABLE_MEDIA_PLUGINS)
|
|||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--viewer_flavor=${ND_VIEWER_FLAVOR}
|
||||
--fmodversion=${FMODVERSION}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
${COPY_INPUT_DEPENDENCIES}
|
||||
|
|
@ -2530,6 +2538,7 @@ endif (NOT ENABLE_MEDIA_PLUGINS)
|
|||
--grid=${GRID}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--fmodversion=${FMODVERSION}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
${COPY_INPUT_DEPENDENCIES}
|
||||
|
|
@ -2612,6 +2621,7 @@ if (DARWIN)
|
|||
--grid=${GRID}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--fmodversion=${FMODVERSION}
|
||||
DEPENDS
|
||||
${VIEWER_BINARY_NAME}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
|
|
@ -2647,6 +2657,7 @@ if (DARWIN)
|
|||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
|
||||
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
|
||||
--viewer_flavor=${ND_VIEWER_FLAVOR}
|
||||
--fmodversion=${FMODVERSION}
|
||||
${SIGNING_SETTING}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
|
|
|
|||
|
|
@ -924,6 +924,20 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
|
|||
params.args.add("-lf");
|
||||
params.args.add(log_folder);
|
||||
|
||||
// set log file basename and .log
|
||||
params.args.add("-lp");
|
||||
params.args.add("SLVoice");
|
||||
params.args.add("-ls");
|
||||
params.args.add(".log");
|
||||
|
||||
// rotate any existing log
|
||||
std::string new_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SLVoice.log");
|
||||
std::string old_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SLVoice.old");
|
||||
if (gDirUtilp->fileExists(new_log))
|
||||
{
|
||||
LLFile::rename(new_log, old_log);
|
||||
}
|
||||
|
||||
std::string shutdown_timeout = gSavedSettings.getString("VivoxShutdownTimeout");
|
||||
if (!shutdown_timeout.empty())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ viewer_dir = os.path.dirname(__file__)
|
|||
# Put it FIRST because some of our build hosts have an ancient install of
|
||||
# indra.util.llmanifest under their system Python!
|
||||
sys.path.insert(0, os.path.join(viewer_dir, os.pardir, "lib", "python"))
|
||||
from indra.util.llmanifest import LLManifest, main, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL, ManifestError
|
||||
from indra.util.llmanifest import LLManifest, main, path_ancestors, CHANNEL_VENDOR_BASE, RELEASE_CHANNEL, ManifestError, MissingError
|
||||
from llbase import llsd
|
||||
|
||||
class ViewerManifest(LLManifest,FSViewerManifest):
|
||||
|
|
@ -164,8 +164,6 @@ class ViewerManifest(LLManifest,FSViewerManifest):
|
|||
|
||||
# <FS:AO> Include firestorm resources
|
||||
with self.prefix(src_dst="fs_resources"):
|
||||
self.path("*.txt")
|
||||
self.path("*.lsl")
|
||||
self.path("*.lsltxt")
|
||||
|
||||
# skins
|
||||
|
|
@ -173,13 +171,12 @@ class ViewerManifest(LLManifest,FSViewerManifest):
|
|||
self.path("skins.xml")
|
||||
# include the entire textures directory recursively
|
||||
with self.prefix(src_dst="*/textures"):
|
||||
self.path("*/*.tga")
|
||||
self.path("*/*.j2c")
|
||||
self.path("*/*.tga") # <FS:Ansariel> Needed for legacy icons
|
||||
self.path("*/*.jpg")
|
||||
self.path("*/*.png")
|
||||
self.path("*.tga")
|
||||
self.path("*.j2c")
|
||||
self.path("*.jpg")
|
||||
self.path("*.jpg") # <FS:Ansariel> Needed for Firestorm
|
||||
self.path("*.png")
|
||||
self.path("textures.xml")
|
||||
self.path("*/xui/*/*.xml")
|
||||
|
|
@ -187,12 +184,10 @@ class ViewerManifest(LLManifest,FSViewerManifest):
|
|||
self.path("*/themes/*/colors.xml")
|
||||
with self.prefix(src_dst="*/themes/*/textures"):
|
||||
self.path("*/*.tga")
|
||||
self.path("*/*.j2c")
|
||||
self.path("*/*.jpg")
|
||||
self.path("*/*.png")
|
||||
self.path("*.tga")
|
||||
self.path("*.j2c")
|
||||
self.path("*.jpg")
|
||||
self.path("*.png")
|
||||
self.path("*/*.xml")
|
||||
|
||||
|
|
@ -209,14 +204,6 @@ class ViewerManifest(LLManifest,FSViewerManifest):
|
|||
self.path("*/*/*.gif")
|
||||
|
||||
|
||||
# local_assets dir (for pre-cached textures)
|
||||
with self.prefix(src_dst="local_assets"):
|
||||
self.path("*.j2c")
|
||||
self.path("*.tga")
|
||||
|
||||
# File in the newview/ directory
|
||||
# self.path("gpu_table.txt")
|
||||
|
||||
#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
|
||||
build_data_dict = {"Type":"viewer","Version":'.'.join(self.args['version']),
|
||||
|
|
@ -581,17 +568,6 @@ class WindowsManifest(ViewerManifest):
|
|||
with self.prefix(src=os.path.join(self.args['build'], os.pardir,
|
||||
'sharedlibs', self.args['configuration'])):
|
||||
|
||||
# Get llcommon and deps. If missing assume static linkage and continue.
|
||||
try:
|
||||
self.path('llcommon.dll')
|
||||
self.path('libapr-1.dll')
|
||||
self.path('libaprutil-1.dll')
|
||||
self.path('libapriconv-1.dll')
|
||||
|
||||
except RuntimeError as err:
|
||||
print err.message
|
||||
print "Skipping llcommon.dll (assuming llcommon was linked statically)"
|
||||
|
||||
# Mesh 3rd party libs needed for auto LOD and collada reading
|
||||
try:
|
||||
self.path("glod.dll")
|
||||
|
|
@ -599,23 +575,19 @@ class WindowsManifest(ViewerManifest):
|
|||
print err.message
|
||||
print "Skipping GLOD library (assumming linked statically)"
|
||||
|
||||
# Get fmodstudio dll, continue if missing
|
||||
try:
|
||||
# Get fmodstudio dll
|
||||
if self.args['fmodversion'].lower() == 'fmodstudio':
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
self.path("fmodL.dll")
|
||||
else:
|
||||
self.path("fmod.dll")
|
||||
except:
|
||||
print "Skipping fmodstudio audio library (assuming other audio engine)"
|
||||
|
||||
# Get fmodex dll, continue if missing
|
||||
try:
|
||||
# Get fmodex dll
|
||||
if self.args['fmodversion'].lower() == 'fmodex':
|
||||
if(self.address_size == 64):
|
||||
self.path("fmodex64.dll")
|
||||
else:
|
||||
self.path("fmodex.dll")
|
||||
except:
|
||||
print "Skipping fmodex audio library (assuming other audio engine)"
|
||||
|
||||
# For textures
|
||||
self.path("openjpeg.dll")
|
||||
|
|
@ -629,16 +601,17 @@ class WindowsManifest(ViewerManifest):
|
|||
self.path("msvcr120.dll")
|
||||
self.path("msvcp120.dll")
|
||||
|
||||
# Vivox runtimes
|
||||
self.path("SLVoice.exe")
|
||||
# SLVoice executable
|
||||
with self.prefix(src=os.path.join(pkgdir, 'bin', 'release')):
|
||||
self.path("SLVoice.exe")
|
||||
|
||||
# Vivox libraries
|
||||
if (self.address_size == 64):
|
||||
self.path("vivoxsdk_x64.dll")
|
||||
self.path("ortp_x64.dll")
|
||||
else:
|
||||
self.path("vivoxsdk.dll")
|
||||
self.path("ortp.dll")
|
||||
self.path("libsndfile-1.dll")
|
||||
self.path("vivoxoal.dll")
|
||||
|
||||
# Security
|
||||
self.path("ssleay32.dll")
|
||||
|
|
@ -666,23 +639,14 @@ class WindowsManifest(ViewerManifest):
|
|||
self.path("growl++.dll")
|
||||
|
||||
# <FS:ND> Copy symbols for breakpad
|
||||
self.path("ssleay32.pdb")
|
||||
self.path("libeay32.pdb")
|
||||
#self.path("ssleay32.pdb")
|
||||
#self.path("libeay32.pdb")
|
||||
#self.path("growl.pdb")
|
||||
#self.path("growl++.pdb")
|
||||
self.path('apr-1.pdb', 'libarp.pdb')
|
||||
self.path('aprutil-1.pdb', 'libaprutil.pdb')
|
||||
#self.path('apr-1.pdb', 'libarp.pdb')
|
||||
#self.path('aprutil-1.pdb', 'libaprutil.pdb')
|
||||
# </FS:ND>
|
||||
|
||||
# For google-perftools tcmalloc allocator.
|
||||
try:
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
self.path('libtcmalloc_minimal-debug.dll')
|
||||
else:
|
||||
self.path('libtcmalloc_minimal.dll')
|
||||
except:
|
||||
print "Skipping libtcmalloc_minimal.dll"
|
||||
|
||||
self.path(src="licenses-win32.txt", dst="licenses.txt")
|
||||
self.path("featuretable.txt")
|
||||
|
||||
|
|
@ -1113,7 +1077,7 @@ class DarwinManifest(ViewerManifest):
|
|||
|
||||
# with self.prefix(src=relpkgdir, dst=""):
|
||||
# self.path("libndofdev.dylib")
|
||||
# self.path("libhunspell-1.3.0.dylib")
|
||||
# self.path("libhunspell-1.3.a")
|
||||
|
||||
# with self.prefix(src_dst="cursors_mac"):
|
||||
# self.path("*.tif")
|
||||
|
|
@ -1160,11 +1124,15 @@ class DarwinManifest(ViewerManifest):
|
|||
# # (source, dest) pair to self.file_list for every expanded
|
||||
# # file processed. Remember its size before the call.
|
||||
# oldlen = len(self.file_list)
|
||||
# self.path(src, dst)
|
||||
# # The dest appended to self.file_list has been prepended
|
||||
# # with self.get_dst_prefix(). Strip it off again.
|
||||
# added = [os.path.relpath(d, self.get_dst_prefix())
|
||||
# for s, d in self.file_list[oldlen:]]
|
||||
# try:
|
||||
# self.path(src, dst)
|
||||
# # The dest appended to self.file_list has been prepended
|
||||
# # with self.get_dst_prefix(). Strip it off again.
|
||||
# added = [os.path.relpath(d, self.get_dst_prefix())
|
||||
# for s, d in self.file_list[oldlen:]]
|
||||
# except MissingError as err:
|
||||
# print >> sys.stderr, "Warning: "+err.msg
|
||||
# added = []
|
||||
# if not added:
|
||||
# print "Skipping %s" % dst
|
||||
# return added
|
||||
|
|
@ -1175,17 +1143,10 @@ class DarwinManifest(ViewerManifest):
|
|||
# # Need to get the llcommon dll from any of the build directories as well.
|
||||
# libfile_parent = self.get_dst_prefix()
|
||||
# libfile = "libllcommon.dylib"
|
||||
# dylibs = path_optional(self.find_existing_file(os.path.join(os.pardir,
|
||||
# "llcommon",
|
||||
# self.args['configuration'],
|
||||
# libfile),
|
||||
# os.path.join(relpkgdir, libfile)),
|
||||
# dst=libfile)
|
||||
|
||||
# dylibs=[]
|
||||
# for libfile in (
|
||||
# "libapr-1.0.dylib",
|
||||
# "libaprutil-1.0.dylib",
|
||||
# "libcollada14dom.dylib",
|
||||
# "libexpat.1.dylib",
|
||||
# "libexception_handler.dylib",
|
||||
# "libGLOD.dylib",
|
||||
|
|
@ -1196,14 +1157,14 @@ class DarwinManifest(ViewerManifest):
|
|||
# ):
|
||||
# dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
|
||||
|
||||
# # SLVoice and vivox lols, no symlinks needed
|
||||
# # SLVoice executable
|
||||
# with self.prefix(src=os.path.join(pkgdir, 'bin', 'release')):
|
||||
# self.path("SLVoice")
|
||||
|
||||
# # Vivox libraries
|
||||
# for libfile in (
|
||||
# 'libortp.dylib',
|
||||
# 'libsndfile.dylib',
|
||||
# 'libvivoxoal.dylib',
|
||||
# 'libvivoxsdk.dylib',
|
||||
# 'libvivoxplatform.dylib',
|
||||
# 'SLVoice',
|
||||
# ):
|
||||
# self.path2basename(relpkgdir, libfile)
|
||||
|
||||
|
|
@ -1357,9 +1318,6 @@ class DarwinManifest(ViewerManifest):
|
|||
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")
|
||||
|
||||
# Growl Frameworks
|
||||
# self.path("../packages/Frameworks/Growl", dst="Frameworks/Growl")
|
||||
|
||||
# most everything goes in the Resources directory
|
||||
with self.prefix(dst="Resources"):
|
||||
super(DarwinManifest, self).construct()
|
||||
|
|
@ -1414,11 +1372,15 @@ class DarwinManifest(ViewerManifest):
|
|||
# (source, dest) pair to self.file_list for every expanded
|
||||
# file processed. Remember its size before the call.
|
||||
oldlen = len(self.file_list)
|
||||
self.path(src, dst)
|
||||
# The dest appended to self.file_list has been prepended
|
||||
# with self.get_dst_prefix(). Strip it off again.
|
||||
added = [os.path.relpath(d, self.get_dst_prefix())
|
||||
for s, d in self.file_list[oldlen:]]
|
||||
try:
|
||||
self.path(src, dst)
|
||||
# The dest appended to self.file_list has been prepended
|
||||
# with self.get_dst_prefix(). Strip it off again.
|
||||
added = [os.path.relpath(d, self.get_dst_prefix())
|
||||
for s, d in self.file_list[oldlen:]]
|
||||
except MissingError as err:
|
||||
print >> sys.stderr, "Warning: "+err.msg
|
||||
added = []
|
||||
if not added:
|
||||
print "Skipping %s" % dst
|
||||
return added
|
||||
|
|
@ -1427,19 +1389,10 @@ class DarwinManifest(ViewerManifest):
|
|||
# in our bundled sub-apps. For each of these we'll create a
|
||||
# symlink from sub-app/Contents/Resources to the real .dylib.
|
||||
# Need to get the llcommon dll from any of the build directories as well.
|
||||
# libfile = "libllcommon.dylib"
|
||||
# dylibs = path_optional(self.find_existing_file(os.path.join(os.pardir,
|
||||
# "llcommon",
|
||||
# self.args['configuration'],
|
||||
# libfile),
|
||||
# os.path.join(relpkgdir, libfile)),
|
||||
# dst=libfile)
|
||||
|
||||
dylibs = []
|
||||
for libfile in (
|
||||
"libapr-1.0.dylib",
|
||||
"libaprutil-1.0.dylib",
|
||||
# "libcollada14dom.dylib",
|
||||
"libexpat.1.dylib",
|
||||
"libexception_handler.dylib",
|
||||
"libGLOD.dylib",
|
||||
|
|
@ -1449,28 +1402,23 @@ class DarwinManifest(ViewerManifest):
|
|||
"libnghttp2.*dylib",
|
||||
"libgrowl.dylib",
|
||||
"libgrowl++.dylib",
|
||||
# "libLeap.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
|
||||
|
||||
# SLVoice and vivox lols, no symlinks needed
|
||||
# SLVoice executable
|
||||
with self.prefix(src=os.path.join(pkgdir, 'bin', 'release')):
|
||||
self.path("SLVoice")
|
||||
|
||||
# Vivox libraries
|
||||
for libfile in (
|
||||
# 'libalut.dylib',
|
||||
# 'libopenal.dylib',
|
||||
'libortp.dylib',
|
||||
# 'libsndfile.dylib',
|
||||
# 'libvivoxoal.dylib',
|
||||
'libvivoxsdk.dylib',
|
||||
'libvivoxplatform.dylib',
|
||||
'SLVoice',
|
||||
):
|
||||
self.path2basename(relpkgdir, libfile)
|
||||
|
||||
# <FS:Ansariel/TS> FIRE-22709: Local voice not working in OpenSim
|
||||
if self.fs_is_opensim():
|
||||
with self.prefix(src=os.path.join(relpkgdir, 'voice_os'), dst="voice_os"):
|
||||
# self.path('libalut.dylib')
|
||||
# self.path('libopenal.dylib')
|
||||
self.path('libortp.dylib')
|
||||
self.path('libsndfile.dylib')
|
||||
self.path('libvivoxoal.dylib')
|
||||
|
|
@ -1482,28 +1430,30 @@ class DarwinManifest(ViewerManifest):
|
|||
# </FS:Ansariel/TS>
|
||||
|
||||
# dylibs that vary based on configuration
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
for libfile in (
|
||||
"libfmodL.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(debpkgdir, libfile), libfile)
|
||||
else:
|
||||
for libfile in (
|
||||
"libfmod.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
|
||||
if self.args['fmodversion'].lower() == 'fmodstudio':
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
for libfile in (
|
||||
"libfmodL.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(debpkgdir, libfile), libfile)
|
||||
else:
|
||||
for libfile in (
|
||||
"libfmod.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
|
||||
|
||||
# dylibs that vary based on configuration
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
for libfile in (
|
||||
"libfmodexL.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(debpkgdir, libfile), libfile)
|
||||
else:
|
||||
for libfile in (
|
||||
"libfmodex.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
|
||||
if self.args['fmodversion'].lower() == 'fmodex':
|
||||
if self.args['configuration'].lower() == 'debug':
|
||||
for libfile in (
|
||||
"libfmodexL.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(debpkgdir, libfile), libfile)
|
||||
else:
|
||||
for libfile in (
|
||||
"libfmodex.dylib",
|
||||
):
|
||||
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
|
||||
|
||||
# our apps
|
||||
executable_path = {}
|
||||
|
|
@ -2207,23 +2157,17 @@ class Linux_i686_Manifest(LinuxManifest):
|
|||
print "tcmalloc files not found, skipping"
|
||||
pass
|
||||
|
||||
try:
|
||||
if self.args['fmodversion'].lower() == 'fmodex':
|
||||
self.path("libfmodex-*.so")
|
||||
self.path("libfmodex.so")
|
||||
self.path("libfmodex.so*")
|
||||
pass
|
||||
except:
|
||||
print "Skipping libfmodex.so - not found"
|
||||
pass
|
||||
|
||||
try:
|
||||
if self.args['fmodversion'].lower() == 'fmodstudio':
|
||||
self.path("libfmod-*.so")
|
||||
self.path("libfmod.so")
|
||||
self.path("libfmod.so*")
|
||||
pass
|
||||
except:
|
||||
print "Skipping libfmodstudio.so - not found"
|
||||
pass
|
||||
|
||||
|
||||
# Vivox runtimes
|
||||
|
|
@ -2234,7 +2178,6 @@ class Linux_i686_Manifest(LinuxManifest):
|
|||
self.path("libsndfile.so.1")
|
||||
#self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
|
||||
self.path("libvivoxsdk.so")
|
||||
self.path("libvivoxplatform.so")
|
||||
|
||||
self.fs_delete_linux_symbols() # <FS:ND/> Delete old syms
|
||||
self.strip_binaries()
|
||||
|
|
@ -2259,30 +2202,17 @@ class Linux_x86_64_Manifest(LinuxManifest):
|
|||
# <FS:TS> No, we don't need to dink with this. A usable library
|
||||
# is now in the slvoice package, and we need to just use it as is.
|
||||
# self.path("libopenal32.so", "libvivoxoal.so.1") # vivox's sdk expects this soname
|
||||
try:
|
||||
if self.args['fmodversion'].lower() == 'fmodex':
|
||||
self.path("libfmodex64-*.so")
|
||||
self.path("libfmodex64.so")
|
||||
self.path("libfmodex64.so*")
|
||||
pass
|
||||
except:
|
||||
print "Skipping libfmodex.so - not found"
|
||||
pass
|
||||
|
||||
try:
|
||||
if self.args['fmodversion'].lower() == 'fmodstudio':
|
||||
self.path("libfmod-*.so")
|
||||
self.path("libfmod.so")
|
||||
self.path("libfmod.so*")
|
||||
pass
|
||||
except:
|
||||
print "Skipping libfmod.so - not found"
|
||||
pass
|
||||
|
||||
self.prefix(src=os.path.join(pkgdir, 'lib', 'release', 'x64'), dst="lib")
|
||||
try:
|
||||
self.path("libLeap.so")
|
||||
except:
|
||||
print "Leap Motion library not found"
|
||||
self.end_prefix("lib")
|
||||
|
||||
with self.prefix(dst="bin"):
|
||||
self.path2basename("../llplugin/slplugin", "SLPlugin")
|
||||
|
|
@ -2343,4 +2273,9 @@ if __name__ == "__main__":
|
|||
dict(name='bugsplat', description="""BugSplat database to which to post crashes,
|
||||
if BugSplat crash reporting is desired""", default=''),
|
||||
]
|
||||
main(extra=extra_arguments)
|
||||
try:
|
||||
main(extra=extra_arguments)
|
||||
except (ManifestError, MissingError) as err:
|
||||
sys.exit("\nviewer_manifest.py failed: "+err.msg)
|
||||
except:
|
||||
raise
|
||||
|
|
|
|||
Loading…
Reference in New Issue