Automated merge with ssh://bitbucket.org/nat_linden/viewer-tools-update

master
Nat Goodspeed 2015-11-02 13:15:20 -05:00
commit 06dfd98521
15 changed files with 17093 additions and 267 deletions

View File

@ -77,121 +77,9 @@ additional_packages = "EDU"
EDU_sourceid = ""
EDU_viewer_channel_suffix = "edu"
# Notifications - to configure email notices, add a setting like this:
# <username>_<reponame>.email = <email-address>
# ========================================
# mesh-development
# ========================================
mesh-development.viewer_channel = "Project Viewer - Mesh"
mesh-development.viewer_grid = aditi
mesh-development.build_debug_release_separately = true
mesh-development.build_CYGWIN_Debug = false
mesh-development.build_viewer_update_version_manager = false
# ========================================
# mesh-development-release-1-candidate
# ========================================
mesh-development-release-1-candidate.viewer_channel = "Project Viewer - Mesh"
mesh-development-release-1-candidate.viewer_grid = agni
mesh-development-release-1-candidate.build_debug_release_separately = true
mesh-development-release-1-candidate.build_CYGWIN_Debug = false
mesh-development-release-1-candidate.build_viewer_update_version_manager = false
# ========================================
# mesh-development-rc
# ========================================
mesh-development-rc.viewer_channel = "Project Viewer - Mesh"
mesh-development-rc.viewer_grid = agni
mesh-development-rc.build_debug_release_separately = true
mesh-development-rc.build_CYGWIN_Debug = false
mesh-development-rc.build_viewer_update_version_manager = false
# ========================================
# mesh-asset-deprecation
# ========================================
mesh-asset-deprecation.viewer_channel = "Project Viewer - Mesh Asset Deprecation"
mesh-asset-deprecation.viewer_grid = aditi
mesh-asset-deprecation.build_debug_release_separately = true
mesh-asset-deprecation.build_CYGWIN_Debug = false
mesh-asset-deprecation.build_viewer_update_version_manager = false
# ========================================
# viewer-mesh
# ========================================
viewer-mesh.build_viewer = true
viewer-mesh.build_server = false
viewer-mesh.build_Linux = true
viewer-mesh.build_hg_bundle = true
viewer-mesh.build_viewer_update_version_manager = false
viewer-mesh.build_Debug = false
viewer-mesh.build_RelWithDebInfo = false
viewer-mesh.viewer_channel = "Project Viewer - Mesh"
viewer-mesh.viewer_grid = aditi
viewer-mesh.email = shining@lists.lindenlab.com
# =================================================================
# asset delivery 2010 projects
# =================================================================
viewer-asset-delivery.viewer_channel = "Second Life Development"
viewer-asset-delivery.build_viewer_update_version_manager = false
viewer-asset-delivery.email = monty@lindenlab.com
viewer-asset-delivery.build_server = false
viewer-asset-delivery.build_server_tests = false
viewer-asset-delivery-metrics.viewer_channel = "Second Life Development"
viewer-asset-delivery-metrics.build_viewer_update_version_manager = false
viewer-asset-delivery-metrics.email = monty@lindenlab.com
viewer-asset-delivery-metrics.build_server = false
viewer-asset-delivery-metrics.build_server_tests = false
# ========================================
# Simon says
# ========================================
simon_viewer-dev-private.public_build = false
simon_viewer-dev-private.email_status_this_is_os = false
# Notifications - to configure email notices use the TeamCity parameter
# setting screen for your project or build configuration to set the
# environment variable 'email' to a space-separated list of email addresses
# ========================================
# Vir
# ========================================
vir-project-1.viewer_channel = "Second Life Release"
# ========================================
# Merov
# ========================================
merov-viewer-maint-2287.viewer_channel = "Second Life Project Merchant Outbox"
merov-viewer-maint-2287.login_channel = "Second Life Project Merchant Outbox"
merov-viewer-maint-2287.build_viewer_update_version_manager = false
merov-viewer-maint-2287.codeticket_add_context = false
# ========================================
# THX-1138 / Runway projects
# ========================================
viewer-thx1138-runway-shared.viewer_channel = "Project Viewer - THX-1138 Runway"
viewer-thx1138-runway-shared.viewer_grid = uma
viewer-thx1138-runway-shared.build_debug_release_separately = true
viewer-thx1138-runway-shared.build_CYGWIN_Debug = false
viewer-thx1138-runway-shared.build_viewer_update_version_manager = false
viewer-thx1138.viewer_channel = "Project Viewer - THX-1138"
viewer-thx1138.viewer_grid = uma
viewer-thx1138.build_debug_release_separately = true
viewer-thx1138.build_CYGWIN_Debug = false
viewer-thx1138.build_viewer_update_version_manager = false
runway-merge.viewer_channel = "Project Viewer - Runway Merge"
runway-merge.viewer_grid = agni
runway-merge.build_debug_release_separately = true
runway-merge.build_CYGWIN_Debug = false
runway-merge.build_viewer_update_version_manager = false
runway.viewer_channel = "Project Viewer - Runway"
runway.viewer_grid = agni
runway.build_debug_release_separately = true
runway.build_CYGWIN_Debug = false
runway.build_viewer_update_version_manager = false
# eof

View File

@ -22,9 +22,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>459cdc8d7c19a8025f98f61db95622ff</string>
<string>fe724581a16ff7bf3f2e261b8c4ee80e</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/sdl_3p-update-sdl/rev/297546/arch/Linux/installer/SDL-1.2.15-linux-297546.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/sdl_3p-update-sdl/rev/301425/arch/Linux/installer/SDL-1.2.15-linux-301425.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -212,9 +212,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>66849777a83cb69cec3c06b07da7cd3d</string>
<string>40bd4dd220749a7f0fc8e4d62e61b4a2</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/297450/arch/Darwin/installer/colladadom-2.3.297450-darwin-297450.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/301371/arch/Darwin/installer/colladadom-2.3.301371-darwin-301371.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -224,9 +224,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>d627c2a679f3afb8d3e090d42f53cd2e</string>
<string>7ff636034665555e4b3d918d86ef9566</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/297450/arch/Linux/installer/colladadom-2.3.297450-linux-297450.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/301371/arch/Linux/installer/colladadom-2.3.301371-linux-301371.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -236,16 +236,16 @@
<key>archive</key>
<map>
<key>hash</key>
<string>220897a1893a188aa9d31efb48909878</string>
<string>24e1fac1fd6feef7915c958687fd7c56</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/297450/arch/CYGWIN/installer/colladadom-2.3.297450-windows-297450.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/301371/arch/CYGWIN/installer/colladadom-2.3.301371-windows-301371.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
<key>version</key>
<string>2.3.297450</string>
<string>2.3.301371</string>
</map>
<key>curl</key>
<map>
@ -266,9 +266,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>d1c5125650a339a5209f429c70f4d395</string>
<string>89db4a1aa22599cf377ae49630b7b5b1</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/297172/arch/Darwin/installer/curl-7.38.0.297172-darwin-297172.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/301717/arch/Darwin/installer/curl-7.42.1.301717-darwin-301717.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -278,9 +278,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>ee6c089ee193e551040d610befc5d1c1</string>
<string>de9e0c855ff6ee30c9e027a70bbef032</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/297172/arch/Linux/installer/curl-7.38.0.297172-linux-297172.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/301717/arch/Linux/installer/curl-7.42.1.301717-linux-301717.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -290,16 +290,16 @@
<key>archive</key>
<map>
<key>hash</key>
<string>fdeca7cbc074a88d2701d74a31d21bd8</string>
<string>98d15713de8c439b7f54cc14f2df07ac</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/297172/arch/CYGWIN/installer/curl-7.38.0.297172-windows-297172.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/301717/arch/CYGWIN/installer/curl-7.42.1.301717-windows-301717.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
<key>version</key>
<string>7.38.0.297172</string>
<string>7.42.1.301717</string>
</map>
<key>db</key>
<map>
@ -850,9 +850,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>0bf69fbc829d964820b798a0494278c9</string>
<string>e294e6ca721e271b4bae8046cfbc3c9b</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-breakpad_3p-update-google-breakpad/rev/298033/arch/Linux/installer/google_breakpad-1413.298033-linux-298033.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-breakpad_3p-update-google-breakpad/rev/298127/arch/Linux/installer/google_breakpad-1413.298127-linux-298127.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -1056,9 +1056,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>5c5b4820999ae9e398801d6a46f45897</string>
<string>0d586709c1a2e4cf433390bbdd2498ed</string>
<key>url</key>
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/havok-source_3p-update-havok-source/rev/297312/arch/Darwin/installer/havok_source-2012.1-darwin-297312.tar.bz2</string>
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/havok-source_3p-update-havok-source/rev/301432/arch/Darwin/installer/havok_source-2012.1-darwin-301432.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -1068,9 +1068,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>6b0f41ddddfa60d8424d8a2e0bc2077d</string>
<string>02c85c2c63c8d002b31382f866ca143b</string>
<key>url</key>
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/havok-source_3p-update-havok-source/rev/296959/arch/Linux/installer/havok_source-2012.1-linux-296959.tar.bz2</string>
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/havok-source_3p-update-havok-source/rev/301432/arch/Linux/installer/havok_source-2012.1-linux-301432.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -1080,9 +1080,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>ab30ae74a665950d73ea559f019ff358</string>
<string>ac8a27020182510fd404177e4a97b70f</string>
<key>url</key>
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/havok-source_3p-update-havok-source/rev/297566/arch/CYGWIN/installer/havok_source-2012.1-windows-297566.tar.bz2</string>
<string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/havok-source_3p-update-havok-source/rev/301432/arch/CYGWIN/installer/havok_source-2012.1-windows-301432.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@ -1164,9 +1164,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>b25a4f480e07c670ffef00c3da578f87</string>
<string>8084ced172704ff09b364f7af82a2d6f</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jsoncpp_3p-update-jsoncpp/rev/297281/arch/Darwin/installer/jsoncpp-0.5.0.297281-darwin-297281.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jsoncpp_3p-update-jsoncpp/rev/297580/arch/Darwin/installer/jsoncpp-0.5.0.297580-darwin-297580.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -1176,9 +1176,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>5b3b5dbf0c82c1046482a74ce9e11c38</string>
<string>910bf12e4b4635170e462b739887cda9</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jsoncpp_3p-update-jsoncpp/rev/297281/arch/Linux/installer/jsoncpp-0.5.0.297281-linux-297281.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jsoncpp_3p-update-jsoncpp/rev/297580/arch/Linux/installer/jsoncpp-0.5.0.297580-linux-297580.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -1368,9 +1368,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>14cb5c8686a472e9e60179e46cd196f7</string>
<string>0d134c36fcd87d00d91c99291906dde9</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/297708/arch/Darwin/installer/libpng-1.6.8.297708-darwin-297708.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/301387/arch/Darwin/installer/libpng-1.6.8.301387-darwin-301387.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -1380,9 +1380,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>6dec32fc2527f8cafd616f9271ff3478</string>
<string>744e22c5fcaaf3483a60e29f217daa9c</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/297051/arch/Linux/installer/libpng-1.6.8.297051-linux-297051.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/301387/arch/Linux/installer/libpng-1.6.8.301387-linux-301387.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -1392,16 +1392,16 @@
<key>archive</key>
<map>
<key>hash</key>
<string>09eb65e66e0230ab01e57e643647a4f1</string>
<string>391158e9b5d92a8b69aeb7478144d2de</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/297708/arch/CYGWIN/installer/libpng-1.6.8.297708-windows-297708.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/301387/arch/CYGWIN/installer/libpng-1.6.8.301387-windows-301387.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
<key>version</key>
<string>1.6.8.297708</string>
<string>1.6.8.301387</string>
</map>
<key>libuuid</key>
<map>
@ -1814,9 +1814,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>b1245d467d5914a266efa16afeb55406</string>
<string>65f58cc0b17ebd29fe2b8bccc6bcbf64</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libndofdev_3p-update-libndofdev/rev/297553/arch/Linux/installer/open_libndofdev-0.3-linux-297553.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libndofdev_3p-update-libndofdev/rev/301464/arch/Linux/installer/open_libndofdev-0.3-linux-301464.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -2470,6 +2470,25 @@
<key>name</key>
<string>ReleaseOS</string>
</map>
<key>Doxygen</key>
<map>
<key>build</key>
<map>
<key>arguments</key>
<array>
<string>Doxyfile</string>
</array>
<key>command</key>
<string>doxygen</string>
</map>
<key>configure</key>
<map>
<key>command</key>
<string>cmake</string>
</map>
<key>name</key>
<string>Doxygen</string>
</map>
</map>
<key>name</key>
<string>common</string>
@ -2480,6 +2499,28 @@
<string>build-darwin-i386</string>
<key>configurations</key>
<map>
<key>Doxygen</key>
<map>
<key>build</key>
<map>
</map>
<key>configure</key>
<map>
<key>options</key>
<array>
<string>-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo</string>
<string>-DWORD_SIZE:STRING=32</string>
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
<string>-DINSTALL_PROPRIETARY=TRUE</string>
</array>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
</map>
<key>name</key>
<string>Doxygen</string>
</map>
<key>RelWithDebInfo</key>
<map>
<key>build</key>
@ -2596,6 +2637,26 @@
<string>build-linux-i686</string>
<key>configurations</key>
<map>
<key>Doxygen</key>
<map>
<key>build</key>
<map>
</map>
<key>configure</key>
<map>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
<key>options</key>
<array>
<string>-G</string>
<string>'Unix Makefiles'</string>
</array>
</map>
<key>name</key>
<string>Doxygen</string>
</map>
<key>RelWithDebInfo</key>
<map>
<key>build</key>

145
build.sh
View File

@ -1,10 +1,13 @@
#!/bin/sh
# This is a the master build script - it is intended to be run by the Linden
# Lab build farm
# It is called by a wrapper script in the shared repository which sets up
# the environment from the various BuildParams files and does all the build
# result post-processing.
# This is the custom build script for the viewer
#
# It must be run by the Linden Lab build farm shared buildscript because
# it relies on the environment that sets up, functions it provides, and
# the build result post-processing it does.
#
# The shared buildscript build.sh invokes this because it is named 'build.sh',
# which is the default custom build script name in buildscripts/hg/BuildParams
#
# PLEASE NOTE:
#
@ -12,7 +15,6 @@
# Cygwin can be tricky....
# * The special style in which python is invoked is intentional to permit
# use of a native python install on windows - which requires paths in DOS form
# * This script relies heavily on parameters defined in BuildParams
check_for()
{
@ -94,13 +96,11 @@ installer_CYGWIN()
pre_build()
{
local variant="$1"
begin_section "Pre$variant"
begin_section "Configure $variant"
[ -n "$master_message_template_checkout" ] \
&& [ -r "$master_message_template_checkout/message_template.msg" ] \
&& template_verifier_master_url="-DTEMPLATE_VERIFIER_MASTER_URL=file://$master_message_template_checkout/message_template.msg"
check_for "Confirm dictionaries are installed before 'autobuild configure'" ${build_dir}/packages/dictionaries
"$autobuild" configure -c $variant -- \
-DPACKAGE:BOOL=ON \
-DRELEASE_CRASH_REPORTING:BOOL=ON \
@ -109,7 +109,7 @@ pre_build()
-DLL_TESTS:BOOL="$run_tests" \
-DTEMPLATE_VERIFIER_OPTIONS:STRING="$template_verifier_options" $template_verifier_master_url
end_section "Pre$variant"
end_section "Configure $variant"
}
package_llphysicsextensions_tpv()
@ -134,7 +134,7 @@ package_llphysicsextensions_tpv()
echo "${autobuild_package_filename}" > $build_dir/llphysicsextensions_package
fi
else
echo "Do not provide llphysicsextensions_tpv for $variant"
record_event "Do not provide llphysicsextensions_tpv for $variant"
llphysicsextensions_package=""
fi
end_section "PhysicsExtensions_TPV"
@ -146,16 +146,15 @@ build()
local variant="$1"
if $build_viewer
then
begin_section "Viewer$variant"
"$autobuild" build --no-configure -c $variant
build_ok=$?
end_section "Viewer$variant"
# Run build extensions
if [ $build_ok -eq 0 -a -d ${build_dir}/packages/build-extensions ]; then
for extension in ${build_dir}/packages/build-extensions/*.sh; do
begin_section "Extension $extension"
. $extension
end_section "Extension $extension"
if [ $build_ok -ne 0 ]; then
break
fi
@ -174,28 +173,6 @@ build()
fi
}
# This is called from the branch independent script upon completion of all platform builds.
build_docs()
{
begin_section "Building Documentation"
begin_section "Autobuild metadata"
if [ -r "$build_dir/autobuild-package.xml" ]
then
upload_item docs "$build_dir/autobuild-package.xml" text/xml
else
record_event "no metadata at '$build_dir/autobuild-package.xml'"
fi
end_section "Autobuild metadata"
if [ "$arch" != "Linux" ]
then
record_dependencies_graph # defined in build.sh
else
echo "TBD - skipping linux graph (probable python version dependency)" 1>&2
fi
end_section "Building Documentation"
}
# Check to see if we were invoked from the wrapper, if not, re-exec ourselves from there
if [ "x$arch" = x ]
then
@ -207,7 +184,7 @@ then
cat <<EOF
This script, if called in a development environment, requires that the branch
independent build script repository be checked out next to this repository.
This repository is located at http://hg.lindenlab.com/parabuild/buildscripts
This repository is located at http://bitbucket.org/lindenlabinternal/sl-buildscripts
EOF
exit 1
fi
@ -246,70 +223,54 @@ do
# Only the last built arch is available for upload
last_built_variant="$variant"
begin_section "Do$variant"
begin_section "$variant"
build_dir=`build_dir_$arch $variant`
build_dir_stubs="$build_dir/win_setup/$variant"
begin_section "PreClean"
begin_section "Initialize Build Directory"
rm -rf "$build_dir"
end_section "PreClean"
mkdir -p "$build_dir"
mkdir -p "$build_dir/tmp"
end_section "Initialize Build Directory"
if pre_build "$variant" "$build_dir" >> "$build_log" 2>&1
then
if $build_link_parallel
then
begin_section BuildParallel
( build "$variant" "$build_dir" > "$build_dir/build.log" 2>&1 ) &
build_processes="$build_processes $!"
end_section BuildParallel
else
begin_section "Build$variant"
begin_section "Build $variant"
build "$variant" "$build_dir" 2>&1 | tee -a "$build_log" | sed -n 's/^ *\(##teamcity.*\)/\1/p'
if `cat "$build_dir/build_ok"`
then
echo so far so good.
if [ "$variant" == "Release" ]
then
if [ -r "$build_dir/autobuild-package.xml" ]
then
begin_section "Autobuild metadata"
upload_item docs "$build_dir/autobuild-package.xml" text/xml
if [ "$arch" != "Linux" ]
then
record_dependencies_graph # defined in buildscripts/hg/bin/build.sh
else
record_event "TBD - no dependency graph for linux (probable python version dependency)" 1>&2
fi
end_section "Autobuild metadata"
else
record_event "no autobuild metadata at '$build_dir/autobuild-package.xml'"
fi
else
record_event "do not record autobuild metadata for $variant"
fi
else
record_failure "Build of \"$variant\" failed."
record_failure "Build of \"$variant\" failed."
fi
end_section "Build$variant"
fi
else
record_failure "Build Prep for \"$variant\" failed."
end_section "Build $variant"
fi
end_section "$variant"
if ! $succeeded
then
record_event "remaining variants skipped due to $variant failure"
break
fi
end_section "Do$variant"
done
build_docs
# If we are building variants in parallel, wait, then collect results.
# This requires that the build dirs are variant specific
if $build_link_parallel && [ x"$build_processes" != x ]
then
begin_section WaitParallel
wait $build_processes
for variant in $variants
do
eval '$build_'"$variant" || continue
eval '$build_'"$arch"_"$variant" || continue
begin_section "Build$variant"
build_dir=`build_dir_$arch $variant`
build_dir_stubs="$build_dir/win_setup/$variant"
tee -a $build_log < "$build_dir/build.log" | sed -n 's/^ *\(##teamcity.*\)/\1/p'
if `cat "$build_dir/build_ok"`
then
echo so far so good.
else
record_failure "Parallel build of \"$variant\" failed."
fi
end_section "Build$variant"
done
end_section WaitParallel
fi
# build debian package
if [ "$arch" == "Linux" ]
then
@ -376,7 +337,7 @@ then
end_section "Upload Debian Repository"
else
echo skipping debian build
echo debian build not enabled
fi
else
echo skipping debian build due to failed build.
@ -438,6 +399,18 @@ then
echo "No llphysicsextensions_package"
fi
;;
Doxygen)
if [ -r "$build_dir/doxygen_warnings.log" ]
then
record_event "Doxygen warnings generated; see doxygen_warnings.log"
upload_item log "$build_dir/doxygen_warnings.log" binary/octet-stream
fi
if [ -d "$build_dir/doxygen/html" ]
then
(cd "$build_dir/doxygen/html"; tar cjf "$build_dir/viewer-doxygen.tar.bz2" .)
upload_item docs "$build_dir/viewer-doxygen.tar.bz2" binary/octet-stream
fi
;;
*)
echo "Skipping mapfile for $last_built_variant"
;;
@ -446,7 +419,9 @@ then
# Run upload extensions
if [ -d ${build_dir}/packages/upload-extensions ]; then
for extension in ${build_dir}/packages/upload-extensions/*.sh; do
begin_section "Upload Extenstion $extension"
. $extension
end_section "Upload Extenstion $extension"
done
fi

View File

@ -11,7 +11,7 @@ summary, see http://creativecommons.org/licenses/by-sa/3.0/.
Notwithstanding the foregoing, all of Linden Lab's trademarks, including
but not limited to the Second Life brand name and Second Life Eye-in-Hand
logo, are subject to our trademark policy at
http://secondlife.com/corporate/trademark/.
http://secondlife.com/corporate/brand/trademark/.
If you distribute any copies or adaptations of the Second Life viewer
artwork or any other works in these files, you must include this Notice

View File

@ -7,7 +7,9 @@ you under the terms of the GNU Lesser General Public License, version 2.1
("LGPL"), unless you have obtained a separate licensing agreement
("Other License"), formally executed by you and Linden Lab. Terms of
the GPL can be found in doc/LGPL-license.txt in this distribution, or
online at http://secondlife.com/developers/opensource/lgplv2_1
online at
https://wiki.secondlife.com/wiki/Linden_Lab_Official:GNU_Lesser_General_Public_License,_version_2.1
By copying, modifying or distributing this software, you acknowledge
that you have read and understood your obligations described above,

View File

@ -91,8 +91,11 @@ endif (LINUX)
add_subdirectory(${VIEWER_PREFIX}newview)
add_dependencies(viewer secondlife-bin)
add_subdirectory(${VIEWER_PREFIX}doxygen EXCLUDE_FROM_ALL)
if (LL_TESTS)
# Define after the custom targets are created so
# individual apps can add themselves as dependencies
add_subdirectory(${INTEGRATION_TESTS_PREFIX}integration_tests)
endif (LL_TESTS)

View File

@ -47,6 +47,8 @@ $/LicenseInfo$
import os
import sys
import errno
import HTMLParser
import re
import signal
import subprocess
@ -148,15 +150,158 @@ def translate_rc(rc):
if rc >= 0:
return "terminated with rc %s" % rc
# Negative rc means the child was terminated by signal -rc.
rc = -rc
for attr in dir(signal):
if attr.startswith('SIG') and getattr(signal, attr) == rc:
strc = attr
break
if sys.platform.startswith("win"):
# From http://stackoverflow.com/questions/20629027/process-finished-with-exit-code-1073741571
# [-1073741571] is the signed integer representation of Microsoft's
# "stack overflow/stack exhaustion" error code 0xC00000FD.
# Anytime you see strange, large negative exit codes in windows, convert
# them to hex and then look them up in the ntstatus error codes
# http://msdn.microsoft.com/en-us/library/cc704588.aspx
# Python bends over backwards to give you all the integer precision
# you need, avoiding truncation. But only with 32-bit signed ints is
# -1073741571 equivalent to 0xC00000FD! Explicitly truncate before
# converting.
hexrc = "0x%X" % (rc & 0xFFFFFFFF)
# At this point, we're only trying to format the rc to make it easier
# for a human being to understand. Any exception here -- file doesn't
# exist, HTML parsing error, unrecognized table structure, unknown key
# -- should NOT kill the script! It should only cause us to shrug and
# present our caller with the best information available.
try:
table = get_windows_table()
symbol, desc = table[hexrc]
except Exception, err:
print >>sys.stderr, "(%s -- carrying on)" % err
return "terminated with rc %s (%s)" % (rc, hexrc)
else:
return "terminated with rc %s: %s: %s" % (hexrc, symbol, desc)
else:
strc = str(rc)
return "terminated by signal %s" % strc
# On Posix, negative rc means the child was terminated by signal -rc.
rc = -rc
for attr in dir(signal):
if attr.startswith('SIG') and getattr(signal, attr) == rc:
strc = attr
break
else:
strc = str(rc)
return "terminated by signal %s" % strc
class TableParser(HTMLParser.HTMLParser):
"""
This HTMLParser subclass is designed to parse the table we know exists
in windows-rcs.html, hopefully without building in too much knowledge of
the specific way that table is currently formatted.
"""
# regular expression matching any string containing only whitespace
whitespace = re.compile(r'\s*$')
def __init__(self):
# Because Python 2.x's HTMLParser is an old-style class, we must use
# old-style syntax to forward the __init__() call -- not super().
HTMLParser.HTMLParser.__init__(self)
# this will collect all the data, eventually
self.table = []
# Stack whose top (last item) indicates where to append current
# element data. When empty, don't collect data at all.
self.dest = []
def handle_starttag(self, tag, attrs):
if tag == "table":
# This is the outermost tag we recognize. Collect nested elements
# within self.table.
self.dest.append(self.table)
elif tag in ("tr", "td"):
# Nested elements whose contents we want to capture as sublists.
# To the list currently designated by the top of the dest stack,
# append a new empty sublist.
self.dest[-1].append([])
# Now push THAT new, empty list as the new top of the dest stack.
self.dest.append(self.dest[-1][-1])
elif tag == "p":
# We could handle <p> ... </p> just like <tr> or <td>, but that
# introduces an unnecessary extra level of nesting. Just skip.
pass
else:
# For any tag we don't recognize (notably <th>), push a new, empty
# list to the top of the dest stack. This new list is NOT
# referenced by anything in self.table; thus, when we pop it, any
# data we've collected inside that list will be discarded.
self.dest.append([])
def handle_endtag(self, tag):
# Because we avoid pushing self.dest for <p> in handle_starttag(), we
# must refrain from popping it for </p> here.
if tag != "p":
# For everything else, including unrecognized tags, pop the dest
# stack, reverting to outer collection.
self.dest.pop()
def handle_startendtag(self, tag, attrs):
# The table of interest contains <td> entries of the form:
# <p>0x00000000<br />STATUS_SUCCESS</p>
# The <br/> is very useful -- we definitely want two different data
# items for "0x00000000" and "STATUS_SUCCESS" -- but we don't need or
# want it to push, then discard, an empty list as it would if we let
# the default HTMLParser.handle_startendtag() call handle_starttag()
# followed by handle_endtag(). Just ignore <br/> or any other
# singleton tag.
pass
def handle_data(self, data):
# Outside the <table> of interest, self.dest is empty. Do not bother
# collecting data when self.dest is empty.
# HTMLParser calls handle_data() with every chunk of whitespace
# between tags. That would be lovely if our eventual goal was to
# reconstitute the original input stream with its existing formatting,
# but for us, whitespace only clutters the table. Ignore it.
if self.dest and not self.whitespace.match(data):
# Here we're within our <table> and we have non-whitespace data.
# Append it to the list designated by the top of the dest stack.
self.dest[-1].append(data)
# cache for get_windows_table()
_windows_table = None
def get_windows_table():
global _windows_table
# If we already loaded _windows_table, no need to load it all over again.
if _windows_table:
return _windows_table
# windows-rcs.html was fetched on 2015-03-24 with the following command:
# curl -o windows-rcs.html \
# https://msdn.microsoft.com/en-us/library/cc704588.aspx
parser = TableParser()
with open(os.path.join(os.path.dirname(__file__), "windows-rcs.html")) as hf:
# We tried feeding the file data to TableParser in chunks, to avoid
# buffering the entire file as a single string. Unfortunately its
# handle_data() cannot tell the difference between distinct calls
# separated by HTML tags, and distinct calls necessitated by a chunk
# boundary. Sigh! Read in the whole file. At the time this was
# written, it was only 500KB anyway.
parser.feed(hf.read())
parser.close()
table = parser.table
# With our parser, any <tr><th>...</th></tr> row leaves a table entry
# consisting only of an empty list. Remove any such.
while table and not table[0]:
table.pop(0)
# We expect rows of the form:
# [['0x00000000', 'STATUS_SUCCESS'],
# ['The operation completed successfully.']]
# The latter list will have multiple entries if Microsoft embedded <br/>
# or <p> ... </p> in the text, in which case joining with '\n' is
# appropriate.
# Turn that into a dict whose key is the hex string, and whose value is
# the pair (symbol, desc).
_windows_table = dict((key, (symbol, '\n'.join(desc)))
for (key, symbol), desc in table)
return _windows_table
if __name__ == "__main__":
from optparse import OptionParser

15157
indra/cmake/windows-rcs.html Normal file

File diff suppressed because it is too large Load Diff

28
indra/doxygen/CMakeLists.txt Executable file
View File

@ -0,0 +1,28 @@
# -*- cmake -*-
# cmake_minimum_required should appear before any
# other commands to guarantee full compatibility
# with the version specified
## prior to 2.8, the add_custom_target commands used in setting the version did not work correctly
cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
set(ROOT_PROJECT_NAME "SecondLife" CACHE STRING
"The root project/makefile/solution name. Defaults to SecondLife.")
project(${ROOT_PROJECT_NAME})
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(Variables)
# add a target to generate API documentation with Doxygen
find_package(Doxygen)
if(DOXYGEN_FOUND)
GET_FILENAME_COMPONENT(DOXYGEN_TOP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. PATH)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
add_custom_target(doc
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
endif(DOXYGEN_FOUND)

1557
indra/doxygen/Doxyfile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@ -134,9 +134,13 @@ if (LL_TESTS)
${BOOST_THREAD_LIBRARY}
)
# If http_proxy is in the current environment (e.g. to fetch s3-proxy
# autobuild packages), suppress it for this integration test: it screws up
# the tests.
LL_ADD_INTEGRATION_TEST(llcorehttp
"${llcorehttp_TEST_SOURCE_FILES}"
"${test_libs}"
"-Dhttp_proxy"
${PYTHON_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llcorehttp_peer.py"
)

View File

@ -1335,16 +1335,14 @@ source_group("CMake Rules" FILES ViewerInstall.cmake)
# the viewer_version.txt file created here is for passing to viewer_manifest and autobuild
# the summary.json file is created for the benefit of the TeamCity builds, where
# it is used to provide descriptive information to the build results page
add_custom_target(generate_viewer_version ALL
COMMAND printf '${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}' > ${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
COMMAND printf '{"Type":"viewer","Version":"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}"}' > ${CMAKE_BINARY_DIR}/summary.json
COMMENT Generating viewer_version.txt for manifest processing
)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt"
"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}\n")
file(WRITE "${CMAKE_BINARY_DIR}/summary.json"
"{\"Type\":\"viewer\",\"Version\":\"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}\"}\n")
set_source_files_properties(
llversioninfo.cpp tests/llversioninfo_test.cpp
PROPERTIES
DEPENDS generate_viewer_version # dummy dependency to force recompile every time
COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" # see BuildVersion.cmake
)
@ -1702,8 +1700,6 @@ if (WINDOWS)
LINK_FLAGS_RELEASE "/FORCE:MULTIPLE /MAP\"secondlife-bin.MAP\" /OPT:REF /LARGEADDRESSAWARE"
)
add_dependencies(${VIEWER_BINARY_NAME} generate_viewer_version)
if(USE_PRECOMPILED_HEADERS)
set_target_properties(
${VIEWER_BINARY_NAME}
@ -2028,8 +2024,6 @@ if (LINUX)
llcommon
)
add_dependencies(${VIEWER_BINARY_NAME} generate_viewer_version)
add_custom_command(
OUTPUT ${product}.tar.bz2
COMMAND ${PYTHON_EXECUTABLE}
@ -2113,8 +2107,6 @@ if (DARWIN)
"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app/Contents/Info.plist"
)
add_dependencies(${VIEWER_BINARY_NAME} generate_viewer_version)
add_custom_command(
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
COMMAND ${PYTHON_EXECUTABLE}
@ -2147,7 +2139,6 @@ if (DARWIN)
if (PACKAGE)
add_custom_target(llpackage ALL DEPENDS ${VIEWER_BINARY_NAME})
add_dependencies(llpackage generate_viewer_version)
add_custom_command(
TARGET llpackage POST_BUILD
@ -2231,8 +2222,7 @@ if (PACKAGE)
DEPENDS generate_breakpad_symbols.py
VERBATIM)
add_custom_target(generate_breakpad_symbols DEPENDS "${VIEWER_SYMBOL_FILE}")
add_dependencies(generate_breakpad_symbols "${VIEWER_BINARY_NAME}" "${VIEWER_COPY_MANIFEST}")
add_custom_target(generate_breakpad_symbols DEPENDS "${VIEWER_SYMBOL_FILE}" "${VIEWER_BINARY_NAME}" "${VIEWER_COPY_MANIFEST}")
add_dependencies(llpackage generate_breakpad_symbols)
endif(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
endif (PACKAGE)

View File

@ -1,6 +1,18 @@
/**
* @file llappviewer.h
* @brief The LLAppViewer class declaration
* @mainpage
*
* This is the sources for the Second Life Viewer;
* information on the open source project is at
* https://wiki.secondlife.com/wiki/Open_Source_Portal
*
* The Mercurial repository for the trunk version is at
* https://bitbucket.org/lindenlab/viewer-release
*
* @section source-license Source License
* @verbinclude LICENSE-source.txt
*
* @section artwork-license Artwork License
* @verbinclude LICENSE-logos.txt
*
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
@ -22,6 +34,9 @@
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*
* @file llappviewer.h
* @brief The LLAppViewer class declaration
*/
#ifndef LL_LLAPPVIEWER_H

View File

@ -656,6 +656,7 @@ private:
* is required to distribute data and perform global actions.
* In pseudo-UML, it looks like:
*
* @verbatim
* Main Thread1
* . .
* . .
@ -698,7 +699,6 @@ private:
* . .
* . .
*
*
* Key:
*
* SRE - Set Region Enqueued. Enqueue a 'Set Region' command in
@ -723,6 +723,7 @@ private:
* global pointers used to find the 'current stats'.
* RSC - Read Stats Collector. Extract collector data cloning it
* (i.e. deep copy) when necessary.
* @endverbatim
*
*/
class LLTextureFetch::TFRequest // : public LLQueuedThread::QueuedRequest

View File

@ -55,7 +55,7 @@ LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter&
"Given [\"keysym\"], [\"keycode\"] or [\"char\"], inject the specified ";
std::string keyExplain =
"(integer keycode values, or keysym string from any addKeyName() call in\n"
"http://hg.secondlife.com/viewer-development/src/tip/indra/llwindow/llkeyboard.cpp )\n";
"http://bitbucket.org/lindenlab/viewer-release/src/tip/indra/llwindow/llkeyboard.cpp )\n";
std::string mask =
"Specify optional [\"mask\"] as an array containing any of \"CTL\", \"ALT\",\n"
"\"SHIFT\" or \"MAC_CONTROL\"; the corresponding modifier bits will be combined\n"
@ -70,7 +70,7 @@ LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter&
"(button values \"LEFT\", \"MIDDLE\", \"RIGHT\")\n";
std::string paramsExplain =
"[\"path\"] is as for LLUI::resolvePath(), described in\n"
"http://hg.secondlife.com/viewer-development/src/tip/indra/llui/llui.h\n"
"http://bitbucket.org/lindenlab/viewer-release/src/tip/indra/llui/llui.h\n"
"If you omit [\"path\"], you must specify both [\"x\"] and [\"y\"].\n"
"If you specify [\"path\"] without both [\"x\"] and [\"y\"], will synthesize (x, y)\n"
"in the center of the LLView selected by [\"path\"].\n"