From fabcf9c8e0e01e01cb9d3d15fc807a5acb330d53 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 11 Jan 2011 15:59:22 -0800 Subject: autobuild configuration to build the viewer (dependencies still handled by install.py) --- autobuild.xml | 322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 322 insertions(+) create mode 100644 autobuild.xml (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml new file mode 100644 index 0000000000..81da56feff --- /dev/null +++ b/autobuild.xml @@ -0,0 +1,322 @@ + + + + installables + + + package_description + + name + viewer_development + platforms + + common + + configurations + + Debug + + build + + command + cmake + options + + --build + . + --config + Debug + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DSTANDALONE:BOOL=OFF + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DFMOD=TRUE + -DINSTALL_PROPRIETARY=TRUE + + + name + Debug + + RelWithDebInfo + + build + + command + cmake + options + + --build + . + --config + RelWithDebInfo + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DSTANDALONE:BOOL=OFF + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DFMOD=TRUE + -DINSTALL_PROPRIETARY=TRUE + + + name + RelWithDebInfo + + Release + + build + + command + cmake + options + + --build + . + --config + Release + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DSTANDALONE:BOOL=OFF + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DFMOD=TRUE + -DINSTALL_PROPRIETARY=TRUE + + + name + Release + + + name + common + + darwin + + build_directory + build-darwin-i386 + configurations + + Debug + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + name + Debug + + RelWithDebInfo + + build + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + default + True + name + RelWithDebInfo + + Release + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + name + Release + + + name + darwin + + linux + + build_directory + build-linux-i686 + configurations + + Debug + + configure + + arguments + + ..\indra + + options + + -G + 'Unix Makefiles' + + + name + Debug + + RelWithDebInfo + + build + + + configure + + arguments + + ..\indra + + options + + -G + 'Unix Makefiles' + + + default + True + name + RelWithDebInfo + + Release + + configure + + arguments + + ..\indra + + options + + -G + 'Unix Makefiles' + + + name + Release + + + name + linux + + windows + + build_directory + build-vc80 + configurations + + Debug + + configure + + arguments + + ..\indra + + options + + -G + "Visual Studio 8 2005" + + + name + Debug + + RelWithDebInfo + + build + + + configure + + arguments + + ..\indra + + options + + -G + "Visual Studio 8 2005" + + + default + True + name + RelWithDebInfo + + Release + + configure + + arguments + + ..\indra + + options + + -G + "Visual Studio 8 2005" + + + name + Release + + + name + windows + + + + type + autobuild + version + 1.2 + + -- cgit v1.3 From 35c259b603718770e89fac9a89ee43a8f7e4dd12 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 12 Jan 2011 09:28:21 -0800 Subject: first pass at packages that need to be installed through autobuild. --- autobuild.xml | 1312 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1312 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 81da56feff..8fa9e56aaf 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3,6 +3,1318 @@ installables + GL + + name + GL + platforms + + darwin + + archive + + hash + 0b7c1d43dc2b39301fef6c05948fb826 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + d85d88088360aee5b67105ad93b5ad16 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + a94538d064cd0a235b2a95389e7e8ee8 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-windows-20101001a.tar.bz2 + + name + windows + + + + SDL + + name + SDL + platforms + + linux + + archive + + hash + 1bd5be9e91ae1ae4a1cfa7649890f72b + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/SDL-1.2.12-linux-20101001.tar.bz2 + + name + linux + + + + apr_suite + + name + apr_suite + platforms + + darwin + + archive + + hash + 4e9cd47faf1e74e1a5bf386dc55dd47e + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.3.7-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + ae785a90f124aa572515fc7b97efc671 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.2.8-linux-20100930.tar.bz2 + + name + linux + + windows + + archive + + hash + 925015cb33630fd73db5dcb6817bf0a2 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.3.8-windows-20101001a.tar.bz2 + + name + windows + + + + ares + + name + ares + platforms + + darwin + + archive + + hash + 577e89e72a6df485ee0c42ef7bfd8c34 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 3bf8f0f3c960cc594b2315b986b948fb + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + 2318e9eef0ea020878759d974a5945df + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-windows-20101001a.tar.bz2 + + name + windows + + + + boost + + name + boost + platforms + + darwin + + archive + + hash + 3a8b4bc2ea3dde26c2a7e1481f039864 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + cb7cbafb06b878adf423db314b1787df + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-linux-20100929a.tar.bz2 + + name + linux + + windows + + archive + + hash + de5559c2c497544b3d0da533390175dc + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-windows-20101001a.tar.bz2 + + name + windows + + + + curl + + name + curl + platforms + + darwin + + archive + + hash + ab6246b72141f39804c67f4536f1cece + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.20.1-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + a9b82d81b483f5e40a3058d165f1aff2 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.20.1-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + a3494e2560b7fe32b25cb19041ba4e2a + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.20.1-windows-20101001a.tar.bz2 + + name + windows + + + + dbghelp + + name + dbghelp + platforms + + windows + + archive + + hash + c5d28b13ce16a46f2e35eb133f7d92e8 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbghelp-6.11.1.404-windows-20101011.tar.bz2 + + name + windows + + + + dbusglib + + name + dbusglib + platforms + + linux + + archive + + hash + bb9734fb6ae797e3fa34af1a4ef1ee7d + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbusglib-linux-20101013.tar.bz2 + + name + linux + + + + elfio + + name + elfio + platforms + + linux + + archive + + hash + d931e16a382aa3a5c99a8dea6b5f8391 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/elfio-1.0.3-linux-20101013.tar.bz2 + + name + linux + + + + expat + + name + expat + platforms + + darwin + + archive + + hash + 594e0d61d115ab06ca11bc84d374d23a + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 7c334794bba026685f967734ca963c85 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + 2af1798aa38dce1b941ef8207f1beb50 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-windows-20101001a.tar.bz2 + + name + windows + + + + fmod + + name + fmod + platforms + + darwin + + archive + + hash + 4521b86ff92c3843e47a58b38e76e667 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 221ec16b66ea2b0d1acb3247ad984bc4 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + 651dd6d4c057e89f989ce0eda447c441 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-windows-20101008.tar.bz2 + + name + windows + + + + fontconfig + + name + fontconfig + platforms + + linux + + archive + + hash + 9ebba6e0a1730992fa0643566f4e23cf + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fontconfig-2.2.3-linux-20100930.tar.bz2 + + name + linux + + + + freeglut + + name + freeglut + platforms + + windows + + archive + + hash + 88c29e73df61ff87c111d55d1b48f12c + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freeglut-2.4.0-windows-20101001a.tar.bz2 + + name + windows + + + + freetype + + name + freetype + platforms + + darwin + + archive + + hash + 753021e66345612b4fc77c711b426f11 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + a13ec6354d3a8a4576efcce895a74ceb + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-linux-2010-02-19a-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + f7bd61490e6290b1981538b744919afd + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-windows-20101001a.tar.bz2 + + name + windows + + + + glh_linear + + name + glh_linear + platforms + + darwin + + archive + + hash + 366f940f2634b0e05954646927620bfd + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 26f2df1f0b0fa01e94e0253e322f3583 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-linux-20101001.tar.bz2 + + name + linux + + windows + + archive + + hash + 57f8be28bbaa2505ae3b59deb2c77cdf + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-windows-20101011.tar.bz2 + + name + windows + + + + glui + + name + glui + platforms + + darwin + + archive + + hash + c3bfca7ad2eb90ea33f3fd6f974ca394 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-darwin-20101004.tar.bz2 + + name + darwin + + windows + + archive + + hash + 1135a4afc4328c68368f550ede28b4dd + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.3.6-windows-freeglut-20101001b.tar.bz2 + + name + windows + + + + google-perftools + + name + google-perftools + platforms + + windows + + archive + + hash + 8108bffe1c814be9d035b47dac3d4541 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-perftools-1.0-windows-20101001b.tar.bz2 + + name + windows + + + + google_breakpad + + name + google_breakpad + platforms + + darwin + + archive + + hash + a3b520488b4f444e20838ba5e570dbfd + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 70def6f5eb4cc1f55f0a18c620405f37 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + dd8fb6814297a073788b58c010e0184d + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-windows-20101018.tar.bz2 + + name + windows + + + + googlemock + + name + googlemock + platforms + + darwin + + archive + + hash + 886ee428f058005ab7f90f61784ec9d9 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 782ca04e56d8eab755adcae297cafa7c + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-linux-20101001.tar.bz2 + + name + linux + + windows + + archive + + hash + ec7f12a339ad8c5628db8f8f8fbfe77f + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-windows-20101001a.tar.bz2 + + name + windows + + + + gstreamer + + name + gstreamer + platforms + + linux + + archive + + hash + ddbc0a64ad788107877fee777403592c + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gstreamer-linux-20101013.tar.bz2 + + name + linux + + + + gtk-atk-pango-glib + + name + gtk-atk-pango-glib + platforms + + linux + + archive + + hash + 03694ade27f53199229c03cbbda89214 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gtk-atk-pango-glib-linux-20101001.tar.bz2 + + name + linux + + windows + + archive + + hash + c257d718abdde8cfe8a0af26175161a7 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gtk-atk-pango-glib-windows-20101001a.tar.bz2 + + name + windows + + + + jpeglib + + name + jpeglib + platforms + + darwin + + archive + + hash + d94de5a98492018144b95a8022ed4e44 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + a059a32904c1c7f47804d744ac2d4925 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + 4a4d88f6ba42fa0acd47881f2d7ed7a7 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-windows-20101001b.tar.bz2 + + name + windows + + + + jsoncpp + + name + jsoncpp + platforms + + darwin + + archive + + hash + c10c28118c578d0674c1fbe59002d0ab + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 7e6b2fc7ad4e12d94d01cc49c22c6f67 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-linux-20101013.tar.bz2 + + name + linux + + windows + + archive + + hash + ac06a8981cf7df3522362850ffb3a531 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-windows-20101011.tar.bz2 + + name + windows + + + + kdu + + name + kdu + platforms + + windows + + archive + + hash + f43ffb2217628a38d6004bdad792e7d2 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-4.2.1-windows-20100930b.tar.bz2 + + name + windows + + + + libpng + + name + libpng + platforms + + darwin + + archive + + hash + 4aa623811aff42df702e8d3fdd848ac3 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + adeeca61be1b8f47ce85660c8c20a904 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + dd0e68bde099def37c6a7527673aa672 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-windows-20101001a.tar.bz2 + + name + windows + + + + libuuid + + name + libuuid + platforms + + linux + + archive + + hash + 2b64ea42d54583ab82f4936ce6ea2a3c + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libuuid-linux-20100930.tar.bz2 + + name + linux + + + + libxml + + name + libxml + platforms + + linux + + archive + + hash + 6414642528f42dac1cd9a012c99cd748 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libxml-2.6.24-linux-20101013.tar.bz2 + + name + linux + + + + llqtwebkit + + name + llqtwebkit + platforms + + darwin + + archive + + hash + 54e179ff85bce44b65f4f186bf4c14b1 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.6%2bcookies-darwin-20101013.tar.bz2 + + name + darwin + + linux + + archive + + hash + c05a33ee8b6f253b5a744596dfc3707d + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20101013.tar.bz2 + + name + linux + + windows + + archive + + hash + 8bb26542f86cb469b2b56d42258e1bad + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-windows-qt4.6-20101001a.tar.bz2 + + name + windows + + + + mesa + + name + mesa + platforms + + linux + + archive + + hash + 1f600840463c7327ea17486821425750 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7.0-linux-20100930.tar.bz2 + + name + linux + + windows + + archive + + hash + 178a79f9af90b16f0a62430f9fe88f28 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7.0-windows-20101001a.tar.bz2 + + name + windows + + + + ndofdev + + name + ndofdev + platforms + + darwin + + archive + + hash + d56bb37233e6f1308fb0a5b8e37a2429 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + c81bacf922bb3b540d92b660364c48ce + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-linux-0.2-20101013.tar.bz2 + + name + linux + + windows + + archive + + hash + 9d4f6c042c27fdab81e00238af7e55f0 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-windows-20101001a.tar.bz2 + + name + windows + + + + ogg-vorbis + + name + ogg-vorbis + platforms + + darwin + + archive + + hash + 510c88fb183556b8c5fba25eb0c3d85e + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.03-1.1.2-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + d4bda5baabfbfbd92ea7bd2a48c7fb8a + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.2.0-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + 61f4987290b90416fdba2cd4c4b2ecf3 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.1.3-1.2.0-windows-20101001a.tar.bz2 + + name + windows + + + + openSSL + + name + openSSL + platforms + + darwin + + archive + + hash + 9cf8e84cb91996616cf627ad18c85442 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8l-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 511cf1c200efe587552b8225dd361dbb + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.7c-linux-20100930.tar.bz2 + + name + linux + + windows + + archive + + hash + 8c5862027b93eafceeaae9e4cef4cfa8 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8j-windows-20101001b.tar.bz2 + + name + windows + + + + openjpeg + + name + openjpeg + platforms + + darwin + + archive + + hash + 972088359b9472a3baf4dda695cbda44 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3.0-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + c34975e8090d861c6e37ea606fd66940 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + 039c65405b2bea7c1bf67cfeb15a67fe + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3-windows-20101001b.tar.bz2 + + name + windows + + + + pth + + name + pth + platforms + + darwin + + archive + + hash + d47d121c8eaed4ac6d8253ceda23b5c9 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-darwin-20101004.tar.bz2 + + name + darwin + + + + quicktime + + name + quicktime + platforms + + windows + + archive + + hash + 045618341689fdc3a5560b75a9890a78 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/quicktime-sdk-windows-7.3-20101001a.tar.bz2 + + name + windows + + + + vivox + + name + vivox + platforms + + darwin + + archive + + hash + 8f517d790d2ec9888c5688e9950fc2d5 + url + http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/vivox-3.1.0001.8821-darwin-20101018.tar.bz2 + + name + darwin + + windows + + archive + + hash + 698449073dbc108e046fef15ce30b1f5 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8821-windows-20101011.tar.bz2 + + name + windows + + + + xmlrpc-epi + + name + xmlrpc-epi + platforms + + darwin + + archive + + hash + 994193ab308ac40994421ca411249b65 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 3580c3729a034adff005a234f3ce6e84 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + ea06e2f1c1ed59a2d2b6cdb6f459d1c0 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-windows-20101001a.tar.bz2 + + name + windows + + + + zlib + + name + zlib + platforms + + darwin + + archive + + hash + 3d1b42e6c3fcfebe00c6b87a0228c0ab + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.1.4-darwin-20101004.tar.bz2 + + name + darwin + + linux + + archive + + hash + 7e2818075e89f0729e869a244eafbbf7 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3dfsg-linux-20100929.tar.bz2 + + name + linux + + windows + + archive + + hash + d1015a07ce0aa9aeeadc6a126cdcdf9f + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3-windows-20101001a.tar.bz2 + + name + windows + + + package_description -- cgit v1.3 From 5d3e7c8e7e0f7173ef9f90a8ed155f564c2e0190 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 12 Jan 2011 11:56:25 -0800 Subject: add licence file information --- autobuild.xml | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8fa9e56aaf..24ac4b2c3a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -5,6 +5,8 @@ GL + license_file + LICENSES/GL.txt name GL platforms @@ -49,6 +51,8 @@ SDL + license_file + LICENSES/SDL.txt name SDL platforms @@ -69,6 +73,8 @@ apr_suite + license_file + LICENSES/apr_suite.txt name apr_suite platforms @@ -113,6 +119,8 @@ ares + license_file + LICENSES/ares.txt name ares platforms @@ -157,6 +165,8 @@ boost + license_file + LICENSES/boost.txt name boost platforms @@ -201,6 +211,8 @@ curl + license_file + LICENSES/curl.txt name curl platforms @@ -245,6 +257,8 @@ dbghelp + license_file + LICENSES/dbghelp.txt name dbghelp platforms @@ -265,6 +279,8 @@ dbusglib + license_file + LICENSES/dbusglib.txt name dbusglib platforms @@ -285,6 +301,8 @@ elfio + license_file + LICENSES/elfio.txt name elfio platforms @@ -305,6 +323,8 @@ expat + license_file + LICENSES/expat.txt name expat platforms @@ -349,6 +369,8 @@ fmod + license_file + LICENSES/fmod.txt name fmod platforms @@ -393,6 +415,8 @@ fontconfig + license_file + LICENSES/fontconfig.txt name fontconfig platforms @@ -413,6 +437,8 @@ freeglut + license_file + LICENSES/freeglut.txt name freeglut platforms @@ -433,6 +459,8 @@ freetype + license_file + LICENSES/freetype.txt name freetype platforms @@ -477,6 +505,8 @@ glh_linear + license_file + LICENSES/glh_linear.txt name glh_linear platforms @@ -521,6 +551,8 @@ glui + license_file + LICENSES/glui.txt name glui platforms @@ -553,6 +585,8 @@ google-perftools + license_file + LICENSES/google.txt name google-perftools platforms @@ -573,6 +607,8 @@ google_breakpad + license_file + LICENSES/google_breakpad.txt name google_breakpad platforms @@ -617,6 +653,8 @@ googlemock + license_file + LICENSES/googlemock.txt name googlemock platforms @@ -661,6 +699,8 @@ gstreamer + license_file + LICENSES/gstreamer.txt name gstreamer platforms @@ -681,6 +721,8 @@ gtk-atk-pango-glib + license_file + LICENSES/gtk.txt name gtk-atk-pango-glib platforms @@ -713,6 +755,8 @@ jpeglib + license_file + LICENSES/jpeglib.txt name jpeglib platforms @@ -757,6 +801,8 @@ jsoncpp + license_file + LICENSES/jsoncpp.txt name jsoncpp platforms @@ -801,6 +847,8 @@ kdu + license_file + LICENSES/kdu.txt name kdu platforms @@ -821,6 +869,8 @@ libpng + license_file + LICENSES/libpng.txt name libpng platforms @@ -865,6 +915,8 @@ libuuid + license_file + LICENSES/libuuid.txt name libuuid platforms @@ -885,6 +937,8 @@ libxml + license_file + LICENSES/libxml.txt name libxml platforms @@ -905,6 +959,8 @@ llqtwebkit + license_file + LICENSES/llqtwebkit.txt name llqtwebkit platforms @@ -949,6 +1005,8 @@ mesa + license_file + LICENSES/mesa.txt name mesa platforms @@ -981,6 +1039,8 @@ ndofdev + license_file + LICENSES/ndofdev.txt name ndofdev platforms @@ -1025,6 +1085,8 @@ ogg-vorbis + license_file + LICENSES/ogg.txt name ogg-vorbis platforms @@ -1069,6 +1131,8 @@ openSSL + license_file + LICENSES/openSSL.txt name openSSL platforms @@ -1113,6 +1177,8 @@ openjpeg + license_file + LICENSES/openjpeg.txt name openjpeg platforms @@ -1157,6 +1223,8 @@ pth + license_file + LICENSES/pth.txt name pth platforms @@ -1177,6 +1245,8 @@ quicktime + license_file + LICENSES/quicktime.txt name quicktime platforms @@ -1197,6 +1267,8 @@ vivox + license_file + LICENSES/apr_suite.txt name vivox platforms @@ -1229,6 +1301,8 @@ xmlrpc-epi + license_file + LICENSES/xmlrpc.txt name xmlrpc-epi platforms @@ -1273,6 +1347,8 @@ zlib + license_file + LICENSES/zlib.txt name zlib platforms -- cgit v1.3 From b7637e58bef73abfced2721d6b697e47b2d9f622 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 13 Jan 2011 13:09:27 -0800 Subject: mac buiding with autobuild and autobuild style packages (just say no to install.py) --- autobuild.xml | 40 +++++++++++++++-- indra/cmake/APR.cmake | 12 ++--- indra/cmake/Copy3rdPartyLibs.cmake | 9 ++-- indra/cmake/DBusGlib.cmake | 2 +- indra/cmake/FindAutobuild.cmake | 41 +++++++++++++++++ indra/cmake/FreeType.cmake | 2 +- indra/cmake/GStreamer010Plugin.cmake | 6 +-- indra/cmake/GooglePerfTools.cmake | 6 ++- indra/cmake/Linking.cmake | 51 +++++++++++++--------- indra/cmake/MonoEmbed.cmake | 4 +- indra/cmake/MySQL.cmake | 6 +-- indra/cmake/OpenGL.cmake | 2 +- indra/cmake/OpenSSL.cmake | 2 +- indra/cmake/Prebuilt.cmake | 42 +++++++++++------- indra/cmake/QuickTimePlugin.cmake | 2 +- indra/cmake/UI.cmake | 4 +- indra/cmake/Variables.cmake | 68 ++++++++++++++++------------- indra/media_plugins/webkit/CMakeLists.txt | 4 +- indra/newview/viewer_manifest.py | 6 +-- indra/test_apps/llplugintest/CMakeLists.txt | 4 +- 20 files changed, 206 insertions(+), 107 deletions(-) create mode 100644 indra/cmake/FindAutobuild.cmake (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 24ac4b2c3a..ff56e7559a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -853,6 +853,18 @@ kdu platforms + darwin + + archive + + hash + 408f1375f5a4d864cfb47b36c8ab6052 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-darwin-20110112.tar.bz2 + + name + darwin + windows archive @@ -970,9 +982,9 @@ archive hash - 54e179ff85bce44b65f4f186bf4c14b1 + d3890220418a66607569fe406ebe24c7 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.6%2bcookies-darwin-20101013.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-darwin-20110113.tar.bz2 name darwin @@ -1265,7 +1277,7 @@ - vivox + slvoice license_file LICENSES/apr_suite.txt @@ -1299,6 +1311,28 @@ + tut + + license_file + LICENSES/tut.txt + name + tut + platforms + + common + + archive + + hash + 5c6d3e606f027e78f056cb77b20f228e + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-2008-11-30-common-20101001.tar.bz2 + + name + common + + + xmlrpc-epi license_file diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake index 180504d286..5b31b0d237 100644 --- a/indra/cmake/APR.cmake +++ b/indra/cmake/APR.cmake @@ -38,21 +38,15 @@ else (STANDALONE) set(APR_selector "a") set(APRUTIL_selector "a") endif (LLCOMMON_LINK_SHARED) - set(APR_LIBRARIES - debug ${ARCH_PREBUILT_DIRS_DEBUG}/libapr-1.${APR_selector} - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libapr-1.${APR_selector} - ) - set(APRUTIL_LIBRARIES - debug ${ARCH_PREBUILT_DIRS_DEBUG}/libaprutil-1.${APRUTIL_selector} - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libaprutil-1.${APRUTIL_selector} - ) + set(APR_LIBRARIES libapr-1.${APR_selector}) + set(APRUTIL_LIBRARIES libaprutil-1.${APRUTIL_selector}) set(APRICONV_LIBRARIES iconv) else (WINDOWS) set(APR_LIBRARIES apr-1) set(APRUTIL_LIBRARIES aprutil-1) set(APRICONV_LIBRARIES iconv) endif (WINDOWS) - set(APR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/apr-1) + set(APR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/apr-1) if (LINUX) if (VIEWER) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 176ae9787e..55a26cf9ef 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -5,6 +5,7 @@ # VisualStudio. include(CMakeCopyIfDifferent) +include(Linking) ################################################################### # set up platform specific lists of files that need to be copied @@ -135,14 +136,10 @@ elseif(DARWIN) libvivoxplatform.dylib libvivoxsdk.dylib ) - # *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/universal-darwin/lib_debug") + set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}") set(debug_files ) - # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables - # or ARCH_PREBUILT_DIRS - set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release") + set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files libapr-1.0.3.7.dylib libapr-1.dylib diff --git a/indra/cmake/DBusGlib.cmake b/indra/cmake/DBusGlib.cmake index cfc4ccd404..33c6343a93 100644 --- a/indra/cmake/DBusGlib.cmake +++ b/indra/cmake/DBusGlib.cmake @@ -10,7 +10,7 @@ elseif (LINUX) use_prebuilt_binary(dbusglib) set(DBUSGLIB_FOUND ON FORCE BOOL) set(DBUSGLIB_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0 + ${LIBS_PREBUILT_DIR}/include/glib-2.0 ) # We don't need to explicitly link against dbus-glib itself, because # the viewer probes for the system's copy at runtime. diff --git a/indra/cmake/FindAutobuild.cmake b/indra/cmake/FindAutobuild.cmake new file mode 100644 index 0000000000..45db2b6ed0 --- /dev/null +++ b/indra/cmake/FindAutobuild.cmake @@ -0,0 +1,41 @@ +# -*- cmake -*- +# +# Find the autobuild tool +# +# Output variables: +# +# AUTOBUILD_EXECUTABLE - path to autobuild or pautobuild executable + +# *TODO - if cmake was executed by autobuild, autobuild will have set the AUTOBUILD env var +# update this to check for that case + +IF (NOT AUTOBUILD_EXECUTABLE) + IF(WIN32) + SET(AUTOBUILD_EXE_NAMES autobuild.cmd autobuild.exe) + ELSE(WIN32) + SET(AUTOBUILD_EXE_NAMES autobuild) + ENDIF(WIN32) + + SET(AUTOBUILD_EXECUTABLE) + FIND_PROGRAM( + AUTOBUILD_EXECUTABLE + NAMES ${AUTOBUILD_EXE_NAMES} + PATHS + ENV PATH + ${CMAKE_SOURCE_DIR}/.. + ${CMAKE_SOURCE_DIR}/../.. + ${CMAKE_SOURCE_DIR}/../../.. + PATH_SUFFIXES "/autobuild/bin/" + ) + + IF (AUTOBUILD_EXECUTABLE) + GET_FILENAME_COMPONENT(_autobuild_name ${AUTOBUILD_EXECUTABLE} NAME_WE) + MESSAGE(STATUS "Using autobuild at: ${AUTOBUILD_EXECUTABLE}") + ELSE (AUTOBUILD_EXECUTABLE) + IF (AUTOBUILD_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find autobuild executable") + ENDIF (AUTOBUILD_FIND_REQUIRED) + ENDIF (AUTOBUILD_EXECUTABLE) + + MARK_AS_ADVANCED(AUTOBUILD_EXECUTABLE) +ENDIF (NOT AUTOBUILD_EXECUTABLE) diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake index 5f1aa26e89..43a9d282d0 100644 --- a/indra/cmake/FreeType.cmake +++ b/indra/cmake/FreeType.cmake @@ -9,7 +9,7 @@ else (STANDALONE) use_prebuilt_binary(freetype) if (LINUX) set(FREETYPE_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + ${LIBS_PREBUILT_DIR}/include) else (LINUX) set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) endif (LINUX) diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake index 0ca432da18..d2d0699bcd 100644 --- a/indra/cmake/GStreamer010Plugin.cmake +++ b/indra/cmake/GStreamer010Plugin.cmake @@ -13,9 +13,9 @@ elseif (LINUX) set(GSTREAMER010_FOUND ON FORCE BOOL) set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL) set(GSTREAMER010_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/gstreamer-0.10 - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0 - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/libxml2 + ${LIBS_PREBUILT_DIR}/include/gstreamer-0.10 + ${LIBS_PREBUILT_DIR}/include/glib-2.0 + ${LIBS_PREBUILT_DIR}/include/libxml2 ) # We don't need to explicitly link against gstreamer itself, because # LLMediaImplGStreamer probes for the system's copy at runtime. diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index 946fc6b375..0ac67fe595 100644 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -4,7 +4,9 @@ include(Prebuilt) if (STANDALONE) include(FindGooglePerfTools) else (STANDALONE) - use_prebuilt_binary(google) + if(NOT DARWIN) + use_prebuilt_binary(google) + endif() if (WINDOWS) use_prebuilt_binary(google-perftools) set(TCMALLOC_LIBRARIES @@ -17,7 +19,7 @@ else (STANDALONE) set(STACKTRACE_LIBRARIES stacktrace) set(PROFILER_LIBRARIES profiler) set(GOOGLE_PERFTOOLS_INCLUDE_DIR - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + ${LIBS_PREBUILT_DIR}/include) set(GOOGLE_PERFTOOLS_FOUND "YES") endif (LINUX) endif (STANDALONE) diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index bca99caf2a..07db6ab257 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -1,32 +1,43 @@ # -*- cmake -*- +include(Variables) + + if (NOT STANDALONE) + set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib) + set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release) + set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug) if (WINDOWS) - set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib) - set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/release) - set(ARCH_PREBUILT_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/debug) - set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs") - set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged executables") + set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs) + set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs) elseif (LINUX) - if (VIEWER) - set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release_client) - else (VIEWER) - set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release) - endif (VIEWER) - set(ARCH_PREBUILT_DIRS_RELEASE ${ARCH_PREBUILT_DIRS}) - set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS}) - set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib CACHE FILEPATH "Location of staged .sos") - set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin CACHE FILEPATH "Location of staged executables") + set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/lib) + set(EXE_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/bin) elseif (DARWIN) - set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release) - set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE}) - set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS_RELEASE}) - set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs") - set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs/\$(CONFIGURATION)" CACHE FILEPATH "Location of staged executables") + set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs) + set(EXE_STAGING_DIR "${CMAKE_BINARY_DIR}/sharedlibs/\$(CONFIGURATION)") endif (WINDOWS) endif (NOT STANDALONE) -link_directories(${ARCH_PREBUILT_DIRS}) +# Autobuild packages must provide 'release' versions of libraries, but may provide versions for +# specific build types. AUTOBUILD_LIBS_INSTALL_DIRS lists first the build type directory and then +# the 'release' directory (as a default fallback). +# *NOTE - we have to take special care to use CMAKE_CFG_INTDIR on IDE generators (like mac and +# windows) and CMAKE_BUILD_TYPE on Makefile based generators (like linux). The reason for this is +# that CMAKE_BUILD_TYPE is essentially meaningless at configuration time for IDE generators and +# CMAKE_CFG_INTDIR is meaningless at build time for Makefile generators +if(WINDOWS OR DARWIN) + # the cmake xcode and VS generators implicitly append ${CMAKE_CFG_INTDIR} to the library paths for us + # fortunately both windows and darwin are case insensitive filesystems so this works. + set(AUTOBUILD_LIBS_INSTALL_DIRS "${AUTOBUILD_INSTALL_DIR}/lib/") +else(WINDOWS OR DARWIN) + # else block is for linux and any other makefile based generators + string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER) + set(AUTOBUILD_LIBS_INSTALL_DIRS ${AUTOBUILD_INSTALL_DIR}/lib/${CMAKE_BUILD_TYPE_LOWER}) +endif(WINDOWS OR DARWIN) + +list(APPEND AUTOBUILD_LIBS_INSTALL_DIRS ${ARCH_PREBUILT_DIRS_RELEASE}) +link_directories(${AUTOBUILD_LIBS_INSTALL_DIRS}) if (LINUX) set(DL_LIBRARY dl) diff --git a/indra/cmake/MonoEmbed.cmake b/indra/cmake/MonoEmbed.cmake index 0f1f23309c..30890aed21 100644 --- a/indra/cmake/MonoEmbed.cmake +++ b/indra/cmake/MonoEmbed.cmake @@ -37,9 +37,9 @@ IF (DARWIN) ELSE (DARWIN) - SET(MONO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + SET(MONO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) SET(GLIB_2_0_PLATFORM_INCLUDE_DIR - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0) + ${LIBS_PREBUILT_DIR}/include/glib-2.0) SET(GLIB_2_0_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/glib-2.0) INCLUDE_DIRECTORIES( diff --git a/indra/cmake/MySQL.cmake b/indra/cmake/MySQL.cmake index e591fbc3d8..218482449d 100644 --- a/indra/cmake/MySQL.cmake +++ b/indra/cmake/MySQL.cmake @@ -7,7 +7,7 @@ use_prebuilt_binary(mysql) if (LINUX) if (WORD_SIZE EQUAL 32 OR DEBIAN_VERSION STREQUAL "3.1") set(MYSQL_LIBRARIES mysqlclient) - set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) else (WORD_SIZE EQUAL 32 OR DEBIAN_VERSION STREQUAL "3.1") # Use the native MySQL library on a 64-bit system. set(MYSQL_FIND_QUIETLY ON) @@ -16,9 +16,9 @@ if (LINUX) endif (WORD_SIZE EQUAL 32 OR DEBIAN_VERSION STREQUAL "3.1") elseif (WINDOWS) set(MYSQL_LIBRARIES mysqlclient) - set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) elseif (DARWIN) - set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) set(MYSQL_LIBRARIES optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libmysqlclient.a debug ${ARCH_PREBUILT_DIRS_DEBUG}/libmysqlclient.a diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake index 6a2b6811af..661666f00d 100644 --- a/indra/cmake/OpenGL.cmake +++ b/indra/cmake/OpenGL.cmake @@ -5,5 +5,5 @@ if (NOT STANDALONE) use_prebuilt_binary(GL) # possible glh_linear should have its own .cmake file instead use_prebuilt_binary(glh_linear) - set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) endif (NOT STANDALONE) diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 81584c09ea..c692b67b49 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -13,7 +13,7 @@ else (STANDALONE) else (WINDOWS) set(OPENSSL_LIBRARIES ssl) endif (WINDOWS) - set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include) + set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) endif (STANDALONE) if (LINUX) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index a91519278c..9b758b03f0 100644 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -1,33 +1,45 @@ # -*- cmake -*- -include(Python) -include(FindSCP) +include(FindAutobuild) macro (use_prebuilt_binary _binary) - if (NOT STANDALONE) + if (NOT DEFINED STANDALONE_${_binary}) + set(STANDALONE_${_binary} ${STANDALONE}) + endif (NOT DEFINED STANDALONE_${_binary}) + + if (NOT STANDALONE_${_binary}) if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed) if(INSTALL_PROPRIETARY) include(FindSCP) if(DEBUG_PREBUILT) - message("cd ${SCRIPTS_DIR} && ${PYTHON_EXECUTABLE} install.py --install-dir=${CMAKE_SOURCE_DIR}/.. --scp=${SCP_EXECUTABLE} ${_binary}") + message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install + --install-dir=${AUTOBUILD_INSTALL_DIR} + #--scp="${SCP_EXECUTABLE}" + --skip-license-check + ${_binary} ") endif(DEBUG_PREBUILT) - execute_process(COMMAND ${PYTHON_EXECUTABLE} - install.py - --install-dir=${CMAKE_SOURCE_DIR}/.. - --scp=${SCP_EXECUTABLE} + execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}" + install + --install-dir=${AUTOBUILD_INSTALL_DIR} + #--scp="${SCP_EXECUTABLE}" + --skip-license-check ${_binary} - WORKING_DIRECTORY ${SCRIPTS_DIR} + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE ${_binary}_installed ) else(INSTALL_PROPRIETARY) if(DEBUG_PREBUILT) - message("cd ${SCRIPTS_DIR} && ${PYTHON_EXECUTABLE} install.py --install-dir=${CMAKE_SOURCE_DIR}/.. ${_binary}") + message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install + --install-dir=${AUTOBUILD_INSTALL_DIR} + --skip-license-check + ${_binary} ") endif(DEBUG_PREBUILT) - execute_process(COMMAND ${PYTHON_EXECUTABLE} - install.py - --install-dir=${CMAKE_SOURCE_DIR}/.. + execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}" + install + --install-dir=${AUTOBUILD_INSTALL_DIR} + --skip-license-check ${_binary} - WORKING_DIRECTORY ${SCRIPTS_DIR} + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE ${_binary}_installed ) endif(INSTALL_PROPRIETARY) @@ -40,5 +52,5 @@ macro (use_prebuilt_binary _binary) "Failed to download or unpack prebuilt '${_binary}'." " Process returned ${${_binary}_installed}.") endif (NOT ${_binary}_installed EQUAL 0) - endif (NOT STANDALONE) + endif (NOT STANDALONE_${_binary}) endmacro (use_prebuilt_binary _binary) diff --git a/indra/cmake/QuickTimePlugin.cmake b/indra/cmake/QuickTimePlugin.cmake index 02f432e3c1..012f4e20d8 100644 --- a/indra/cmake/QuickTimePlugin.cmake +++ b/indra/cmake/QuickTimePlugin.cmake @@ -33,7 +33,7 @@ elseif (WINDOWS) endif (DEBUG_QUICKTIME_LIBRARY AND RELEASE_QUICKTIME_LIBRARY) include_directories( - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/quicktime + ${LIBS_PREBUILT_DIR}/include/quicktime "${QUICKTIME_SDK_DIR}\\CIncludes" ) endif (DARWIN) diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake index f529f5b644..91e5258fb7 100644 --- a/indra/cmake/UI.cmake +++ b/indra/cmake/UI.cmake @@ -51,11 +51,11 @@ else (STANDALONE) endif (LINUX) include_directories ( - ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include + ${LIBS_PREBUILT_DIR}/include ${LIBS_PREBUILT_DIR}/include ) foreach(include ${${LL_ARCH}_INCLUDES}) - include_directories(${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/${include}) + include_directories(${LIBS_PREBUILT_DIR}/include/${include}) endforeach(include) endif (STANDALONE) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 5dc0cabf03..88cfdfc0b9 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -17,6 +17,10 @@ # Relative and absolute paths to subtrees. +if(NOT DEFINED COMMON_CMAKE_DIR) + set(COMMON_CMAKE_DIR "${CMAKE_SOURCE_DIR}/cmake") +endif(NOT DEFINED COMMON_CMAKE_DIR) + set(LIBS_CLOSED_PREFIX) set(LIBS_OPEN_PREFIX) set(LIBS_SERVER_PREFIX) @@ -26,14 +30,26 @@ set(VIEWER_PREFIX) set(INTEGRATION_TESTS_PREFIX) set(LL_TESTS ON CACHE BOOL "Build and run unit and integration tests (disable for build timing runs to reduce variation") -set(LIBS_CLOSED_DIR ${CMAKE_SOURCE_DIR}/${LIBS_CLOSED_PREFIX}) -set(LIBS_OPEN_DIR ${CMAKE_SOURCE_DIR}/${LIBS_OPEN_PREFIX}) +if(LIBS_CLOSED_DIR) + file(TO_CMAKE_PATH "${LIBS_CLOSED_DIR}" LIBS_CLOSED_DIR) +else(LIBS_CLOSED_DIR) + set(LIBS_CLOSED_DIR ${CMAKE_SOURCE_DIR}/${LIBS_CLOSED_PREFIX}) +endif(LIBS_CLOSED_DIR) +if(LIBS_COMMON_DIR) + file(TO_CMAKE_PATH "${LIBS_COMMON_DIR}" LIBS_COMMON_DIR) +else(LIBS_COMMON_DIR) + set(LIBS_COMMON_DIR ${CMAKE_SOURCE_DIR}/${LIBS_OPEN_PREFIX}) +endif(LIBS_COMMON_DIR) +set(LIBS_OPEN_DIR ${LIBS_COMMON_DIR}) + set(LIBS_SERVER_DIR ${CMAKE_SOURCE_DIR}/${LIBS_SERVER_PREFIX}) set(SCRIPTS_DIR ${CMAKE_SOURCE_DIR}/${SCRIPTS_PREFIX}) set(SERVER_DIR ${CMAKE_SOURCE_DIR}/${SERVER_PREFIX}) set(VIEWER_DIR ${CMAKE_SOURCE_DIR}/${VIEWER_PREFIX}) -set(LIBS_PREBUILT_DIR ${CMAKE_SOURCE_DIR}/../libraries CACHE PATH +set(AUTOBUILD_INSTALL_DIR ${CMAKE_BINARY_DIR}/packages) + +set(LIBS_PREBUILT_DIR ${AUTOBUILD_INSTALL_DIR} CACHE PATH "Location of prebuilt libraries.") if (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) @@ -41,6 +57,10 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) set(INSTALL_PROPRIETARY ON CACHE BOOL "Install proprietary binaries") endif (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING + "Build type. One of: Debug Release RelWithDebInfo" FORCE) +endif (NOT CMAKE_BUILD_TYPE) if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(WINDOWS ON BOOL FORCE) @@ -54,20 +74,19 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(LINUX ON BOOl FORCE) # If someone has specified a word size, use that to determine the - # architecture. Otherwise, let the compiler specify the word size. - # Using uname will break under chroots and other cross arch compiles. RC + # architecture. Otherwise, let the architecture specify the word size. if (WORD_SIZE EQUAL 32) set(ARCH i686) elseif (WORD_SIZE EQUAL 64) set(ARCH x86_64) else (WORD_SIZE EQUAL 32) - if(CMAKE_SIZEOF_VOID_P MATCHES 4) - set(ARCH i686) - set(WORD_SIZE 32) - else(CMAKE_SIZEOF_VOID_P MATCHES 4) - set(ARCH x86_64) + execute_process(COMMAND uname -m COMMAND sed s/i.86/i686/ + OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) + if (ARCH STREQUAL x86_64) set(WORD_SIZE 64) - endif(CMAKE_SIZEOF_VOID_P MATCHES 4) + else (ARCH STREQUAL x86_64) + set(WORD_SIZE 32) + endif (ARCH STREQUAL x86_64) endif (WORD_SIZE EQUAL 32) set(LL_ARCH ${ARCH}_linux) @@ -76,25 +95,12 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(DARWIN 1) - - # NOTE: If specifying a different SDK with CMAKE_OSX_SYSROOT at configure - # time you should also specify CMAKE_OSX_DEPLOYMENT_TARGET explicitly, - # otherwise CMAKE_OSX_SYSROOT will be overridden here. We can't just check - # for it being unset, as it gets set to the system default :( - - # Default to building against the 10.4 SDK if no deployment target is - # specified. - if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) - # NOTE: setting -isysroot is NOT adequate: http://lists.apple.com/archives/Xcode-users/2007/Oct/msg00696.html - # see http://public.kitware.com/Bug/view.php?id=9959 + poppy - set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) - set(CMAKE_OSX_DEPLOYMENT_TARGET 10.4) - endif (NOT CMAKE_OSX_DEPLOYMENT_TARGET) - - # GCC 4.2 is incompatible with the MacOSX 10.4 SDK - if (${CMAKE_OSX_SYSROOT} MATCHES "10.4u") - set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0") - endif (${CMAKE_OSX_SYSROOT} MATCHES "10.4u") + + # To support a different SDK update these Xcode settings: + set(CMAKE_OSX_DEPLOYMENT_TARGET 10.5) + set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) + set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.2") + set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "DWARF with dSYM File") # NOTE: To attempt an i386/PPC Universal build, add this on the configure line: # -DCMAKE_OSX_ARCHITECTURES:STRING='i386;ppc' @@ -125,6 +131,7 @@ set(VIEWER ON CACHE BOOL "Build Second Life viewer.") set(VIEWER_CHANNEL "LindenDeveloper" CACHE STRING "Viewer Channel Name") set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for A/B Testing") +set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside") set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.") if (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics) @@ -144,3 +151,4 @@ endif (LINUX AND SERVER AND VIEWER) set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.") source_group("CMake Rules" FILES CMakeLists.txt) + diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt index 3b1f679540..b36291f0e8 100644 --- a/indra/media_plugins/webkit/CMakeLists.txt +++ b/indra/media_plugins/webkit/CMakeLists.txt @@ -121,8 +121,8 @@ if (DARWIN) add_custom_command( TARGET media_plugin_webkit POST_BUILD # OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllqtwebkit.dylib - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/ - DEPENDS media_plugin_webkit ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib + COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/ + DEPENDS media_plugin_webkit ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ) endif (DARWIN) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 338c62b9fb..2500ae2b37 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -566,7 +566,7 @@ class DarwinManifest(ViewerManifest): self.path("Info-SecondLife.plist", dst="Info.plist") # copy additional libs in /Contents/MacOS/ - self.path("../../libraries/universal-darwin/lib_release/libndofdev.dylib", dst="MacOS/libndofdev.dylib") + self.path("../packages/lib/release/libndofdev.dylib", dst="MacOS/libndofdev.dylib") self.path("../viewer_components/updater/scripts/darwin/update_install", "MacOS/update_install") @@ -616,7 +616,7 @@ class DarwinManifest(ViewerManifest): self.path("vivox-runtime/universal-darwin/libvivoxplatform.dylib", "libvivoxplatform.dylib") self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice") - libdir = "../../libraries/universal-darwin/lib_release" + libdir = "../packages/lib/release" dylibs = {} # Need to get the llcommon dll from any of the build directories as well @@ -685,7 +685,7 @@ class DarwinManifest(ViewerManifest): if self.prefix(src="", dst="llplugin"): self.path("../media_plugins/quicktime/" + self.args['configuration'] + "/media_plugin_quicktime.dylib", "media_plugin_quicktime.dylib") self.path("../media_plugins/webkit/" + self.args['configuration'] + "/media_plugin_webkit.dylib", "media_plugin_webkit.dylib") - self.path("../../libraries/universal-darwin/lib_release/libllqtwebkit.dylib", "libllqtwebkit.dylib") + self.path("../packages/lib/release/libllqtwebkit.dylib", "libllqtwebkit.dylib") self.end_prefix("llplugin") diff --git a/indra/test_apps/llplugintest/CMakeLists.txt b/indra/test_apps/llplugintest/CMakeLists.txt index b4043b0fd9..77789230aa 100644 --- a/indra/test_apps/llplugintest/CMakeLists.txt +++ b/indra/test_apps/llplugintest/CMakeLists.txt @@ -379,8 +379,8 @@ endif (DARWIN OR WINDOWS) if (DARWIN) add_custom_command(TARGET llmediaplugintest POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR} - DEPENDS ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib + COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR} + DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ) endif (DARWIN) -- cgit v1.3 From 738c7546087b5c5fa049be0563623221ef5716c6 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Fri, 14 Jan 2011 09:03:22 -0800 Subject: windows autobuildibatized (bye bye install.py...) --- .hgignore | 1 + autobuild.xml | 12 ++++++------ indra/cmake/Copy3rdPartyLibs.cmake | 11 ++++------- indra/cmake/GooglePerfTools.cmake | 4 +--- indra/llaudio/CMakeLists.txt | 1 + indra/newview/CMakeLists.txt | 2 +- indra/newview/viewer_manifest.py | 10 +++++----- indra/test_apps/llplugintest/CMakeLists.txt | 12 ++++++------ 8 files changed, 25 insertions(+), 28 deletions(-) (limited to 'autobuild.xml') diff --git a/.hgignore b/.hgignore index a5b094788a..dbbf8268a9 100644 --- a/.hgignore +++ b/.hgignore @@ -12,6 +12,7 @@ syntax: glob LICENSES indra/.distcc build-darwin-* +build-vc80/ indra/build-vc[0-9]* indra/CMakeFiles indra/lib/mono/1.0/*.dll diff --git a/autobuild.xml b/autobuild.xml index ff56e7559a..45dba8381d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -404,9 +404,9 @@ archive hash - 651dd6d4c057e89f989ce0eda447c441 + b9fa0ef683657090ae66663863ebba74 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-windows-20101008.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/merov_fmod-autobuild/rev/219050/arch/CYGWIN/installer/fmod-3.75-windows-20110113.tar.bz2 name windows @@ -870,9 +870,9 @@ archive hash - f43ffb2217628a38d6004bdad792e7d2 + 0c7b5596c27f511d4957abe35f7f8dee url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-4.2.1-windows-20100930b.tar.bz2 + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-windows-20110113.tar.bz2 name windows @@ -1006,9 +1006,9 @@ archive hash - 8bb26542f86cb469b2b56d42258e1bad + 5af0f88e298ea8b6041e29928f520eda url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-windows-qt4.6-20101001a.tar.bz2 + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llqtwebkit-4.7.1-windows-20110113.tar.bz2 name windows diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 55a26cf9ef..92ebd75006 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -17,7 +17,7 @@ if(WINDOWS) #******************************* # VIVOX - *NOTE: no debug version - set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-win32") + set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(vivox_files SLVoice.exe libsndfile-1.dll @@ -31,9 +31,7 @@ if(WINDOWS) #******************************* # Misc shared 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-win32/lib/debug") + set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}") set(debug_files openjpegd.dll libapr-1.dll @@ -41,14 +39,13 @@ if(WINDOWS) libapriconv-1.dll ) - # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables - # or ARCH_PREBUILT_DIRS - set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release") + set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files openjpeg.dll libapr-1.dll libaprutil-1.dll libapriconv-1.dll + dbghelp.dll ) if(USE_GOOGLE_PERFTOOLS) diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index 0ac67fe595..133ae14d2f 100644 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -4,9 +4,6 @@ include(Prebuilt) if (STANDALONE) include(FindGooglePerfTools) else (STANDALONE) - if(NOT DARWIN) - use_prebuilt_binary(google) - endif() if (WINDOWS) use_prebuilt_binary(google-perftools) set(TCMALLOC_LIBRARIES @@ -15,6 +12,7 @@ else (STANDALONE) set(GOOGLE_PERFTOOLS_FOUND "YES") endif (WINDOWS) if (LINUX) + use_prebuilt_binary(google) set(TCMALLOC_LIBRARIES tcmalloc) set(STACKTRACE_LIBRARIES stacktrace) set(PROFILER_LIBRARIES profiler) diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index 21ec622819..632e5d46e3 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -24,6 +24,7 @@ include_directories( ${VORBIS_INCLUDE_DIRS} ${OPENAL_LIB_INCLUDE_DIRS} ${FREEAULT_LIB_INCLUDE_DIRS} + ${FMOD_INCLUDE_DIR} ) set(llaudio_SOURCE_FILES diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index a61c35abd2..759c8e4045 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1506,7 +1506,7 @@ if (WINDOWS) ${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt ${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt ${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt - ${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.dll + ${ARCH_PREBUILT_DIRS_RELEASE}/dbghelp.dll ${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll ${ARCH_PREBUILT_DIRS_RELEASE}/qtcore4.dll ${ARCH_PREBUILT_DIRS_RELEASE}/qtgui4.dll diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 2500ae2b37..4a1ad6c893 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -299,6 +299,9 @@ class WindowsManifest(ViewerManifest): self.path("vivoxplatform.dll") self.path("vivoxoal.dll") + # For use in crash reporting (generates minidumps) + self.path("dbghelp.dll") + # For google-perftools tcmalloc allocator. try: if self.args['configuration'].lower() == 'debug': @@ -314,9 +317,6 @@ class WindowsManifest(ViewerManifest): self.path("featuretable.txt") self.path("featuretable_xp.txt") - # For use in crash reporting (generates minidumps) - self.path("dbghelp.dll") - self.enable_no_crt_manifest_check() # Media plugins - QuickTime @@ -336,7 +336,7 @@ class WindowsManifest(ViewerManifest): if self.args['configuration'].lower() == 'debug': - if self.prefix(src=os.path.join(os.pardir, os.pardir, 'libraries', 'i686-win32', 'lib', 'debug'), + if self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'debug'), dst="llplugin"): self.path("libeay32.dll") self.path("qtcored4.dll") @@ -367,7 +367,7 @@ class WindowsManifest(ViewerManifest): self.end_prefix() else: - if self.prefix(src=os.path.join(os.pardir, os.pardir, 'libraries', 'i686-win32', 'lib', 'release'), + if self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'release'), dst="llplugin"): self.path("libeay32.dll") self.path("qtcore4.dll") diff --git a/indra/test_apps/llplugintest/CMakeLists.txt b/indra/test_apps/llplugintest/CMakeLists.txt index 77789230aa..d6203ea026 100644 --- a/indra/test_apps/llplugintest/CMakeLists.txt +++ b/indra/test_apps/llplugintest/CMakeLists.txt @@ -389,7 +389,7 @@ if(WINDOWS) # Plugin test library deploy # # Debug config runtime files required for the plugin test mule - set(plugintest_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug") + set(plugintest_debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}") set(plugintest_debug_files libeay32.dll libglib-2.0-0.dll @@ -412,7 +412,7 @@ if(WINDOWS) set(plugin_test_targets ${plugin_test_targets} ${out_targets}) # Debug config runtime files required for the plugin test mule (Qt image format plugins) - set(plugintest_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug/imageformats") + set(plugintest_debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}/imageformats") set(plugintest_debug_files qgifd4.dll qicod4.dll @@ -430,7 +430,7 @@ if(WINDOWS) set(plugin_test_targets ${plugin_test_targets} ${out_targets}) # Debug config runtime files required for the plugin test mule (Qt codec plugins) - set(plugintest_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug/codecs") + set(plugintest_debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}/codecs") set(plugintest_debug_files qcncodecsd4.dll qjpcodecsd4.dll @@ -446,7 +446,7 @@ if(WINDOWS) set(plugin_test_targets ${plugin_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the plugin test mule - set(plugintest_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release") + set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(plugintest_release_files libeay32.dll libglib-2.0-0.dll @@ -478,7 +478,7 @@ if(WINDOWS) set(plugin_test_targets ${plugin_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the plugin test mule (Qt image format plugins) - set(plugintest_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release/imageformats") + set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}/imageformats") set(plugintest_release_files qgif4.dll qico4.dll @@ -504,7 +504,7 @@ if(WINDOWS) set(plugin_test_targets ${plugin_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the plugin test mule (Qt codec plugins) - set(plugintest_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release/codecs") + set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}/codecs") set(plugintest_release_files qcncodecs4.dll qjpcodecs4.dll -- cgit v1.3 From 3150fb0021222fe5e39dd45e82c183ccff8013f0 Mon Sep 17 00:00:00 2001 From: jenn Date: Tue, 18 Jan 2011 09:59:34 -0800 Subject: Added entries to autobuild.xml for 'openal_soft' and 'google' libs on linux. These packages have been rebuilt to use the new package layout (thanks alain!). 'openal_soft' was also renamed to use an underscore in its name rather than a dash. --- autobuild.xml | 64 +++++++++++++++++++++++++++++++++++++++++++++--- indra/cmake/OPENAL.cmake | 2 +- 2 files changed, 62 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 45dba8381d..dc4335bcb6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -583,6 +583,30 @@ + google + + name + google + platforms + + linux + + archive + + hash + 7d9d1b6d32ee273df164f7b7d5f29848 + hash_algorithm + md5 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-0.0.0-linux-20110114.tar.bz2 + + name + linux + + + version + 0.0.0 + google-perftools license_file @@ -1187,6 +1211,32 @@ + openal_soft + + license_file + LICENSES/OPENAL.txt + name + openal_soft + platforms + + linux + + archive + + hash + fccdca18a950ac9363c6fb39118b80e1 + hash_algorithm + md5 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2 + + name + linux + + + version + 3ad86a1c + openjpeg license_file @@ -1614,7 +1664,7 @@ arguments - ..\indra + ../indra options @@ -1634,7 +1684,7 @@ arguments - ..\indra + ../indra options @@ -1653,7 +1703,7 @@ arguments - ..\indra + ../indra options @@ -1664,6 +1714,14 @@ name Release + default + + build + + + name + default + name linux diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake index d01c680ed1..ed483e5aea 100644 --- a/indra/cmake/OPENAL.cmake +++ b/indra/cmake/OPENAL.cmake @@ -15,7 +15,7 @@ if (OPENAL) pkg_check_modules(OPENAL_LIB REQUIRED openal) pkg_check_modules(FREEALUT_LIB REQUIRED freealut) else (STANDALONE) - use_prebuilt_binary(openal-soft) + use_prebuilt_binary(openal_soft) endif (STANDALONE) set(OPENAL_LIBRARIES openal -- cgit v1.3 From bae82a240c1d8b33a4c3e5439a72805decb9bc86 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 18 Jan 2011 10:44:27 -0800 Subject: use platform specific build commands. --- autobuild.xml | 117 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 90 insertions(+), 27 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 45dba8381d..70803961a1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1440,15 +1440,6 @@ build - command - cmake - options - - --build - . - --config - Debug - configure @@ -1472,15 +1463,6 @@ build - command - cmake - options - - --build - . - --config - RelWithDebInfo - configure @@ -1504,15 +1486,6 @@ build - command - cmake - options - - --build - . - --config - Release - configure @@ -1544,6 +1517,16 @@ Debug + build + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + configure arguments @@ -1563,6 +1546,13 @@ build + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + configure @@ -1583,6 +1573,16 @@ Release + build + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + configure arguments @@ -1610,6 +1610,15 @@ Debug + build + + command + make + options + + -j 12 + + configure arguments @@ -1629,6 +1638,12 @@ build + command + make + options + + -j 12 + configure @@ -1649,6 +1664,15 @@ Release + build + + command + make + options + + -j 12 + + configure arguments @@ -1676,6 +1700,20 @@ Debug + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=Debug|Win32" + + configure arguments @@ -1695,6 +1733,17 @@ build + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=RelWithDebInfo|Win32" + configure @@ -1715,6 +1764,20 @@ Release + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=Release|Win32" + + configure arguments -- cgit v1.3 From f38c18bb3d92bf6d1b918e30e21616fa7a9bb578 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 18 Jan 2011 13:28:53 -0800 Subject: reduce mac log spam. --- autobuild.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4926b53f43..30b1c1cace 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1569,6 +1569,13 @@ build + arguments + + | + grep + -v + setenv + command xcodebuild options @@ -1596,6 +1603,13 @@ build + arguments + + | + grep + -v + setenv + command xcodebuild options @@ -1625,6 +1639,13 @@ build + arguments + + | + grep + -v + setenv + command xcodebuild options -- cgit v1.3 From 19293991b708b90bbe75c86f7a6b0861d741b57a Mon Sep 17 00:00:00 2001 From: jenn Date: Tue, 18 Jan 2011 16:27:18 -0800 Subject: Added 'slvoice' (vivox) to autobuild.xml for linux. This is version 3.1 of the lib; viewer was using version 3.2, but this version has been rebuilt using the new package layout. Hopefully it will work, though we may need to convert version 3.2 if it does not. Updated Copy3rdParyLibs.cmake paths for linux installation of vivox files. --- autobuild.xml | 14 +++++++++++++- indra/cmake/Copy3rdPartyLibs.cmake | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 30b1c1cace..f2a8bc10bf 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1330,7 +1330,7 @@ slvoice license_file - LICENSES/apr_suite.txt + LICENSES/slvoice.txt name vivox platforms @@ -1347,6 +1347,18 @@ name darwin + linux + + archive + + hash + 827ebbcddb31516e7e40a37374a52ebf + url + http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/vivox-3.1.0001.8821-linux-20101018.tar.bz2 + + name + linux + windows archive diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 2e8bb04db1..9741d4f890 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -155,9 +155,9 @@ elseif(DARWIN) elseif(LINUX) # linux is weird, multiple side by side configurations aren't supported # and we don't seem to have any debug shared libs built yet anyways... - set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}") + set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}/debug") set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}") - set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}") + set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}/release") set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(vivox_files -- cgit v1.3 From c4713b4f9fb873c3cdc07b80d78f6354a92cd424 Mon Sep 17 00:00:00 2001 From: jenn Date: Tue, 18 Jan 2011 17:18:29 -0800 Subject: Added 'kdu' to autobuild.xml for linux. --- autobuild.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f2a8bc10bf..d1e5244de6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -901,6 +901,18 @@ name windows + linux + + archive + + hash + ed3e58899a424684dad49c94ba3813e7 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-linux-20101124.tar.bz2 + + name + linux + libpng -- cgit v1.3 From a339c948b554070d900aaaca8e6df10694282672 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 19 Jan 2011 12:11:54 -0800 Subject: update google-breakpad package; fix call to dump symbols. --- autobuild.xml | 12 ++++++------ indra/newview/CMakeLists.txt | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f2a8bc10bf..ad30389723 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -642,9 +642,9 @@ archive hash - a3b520488b4f444e20838ba5e570dbfd + 5937f12de19ce4fa394048f22557b6c5 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-darwin-20101004.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-darwin-20110119.tar.bz2 name darwin @@ -654,9 +654,9 @@ archive hash - 70def6f5eb4cc1f55f0a18c620405f37 + aa48259e567b8a55e932570e975201e0 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20100929.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110119.tar.bz2 name linux @@ -666,9 +666,9 @@ archive hash - dd8fb6814297a073788b58c010e0184d + 506c870d37b3f7696171e4180c8bf821 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-windows-20101018.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-windows-20110119.tar.bz2 name windows diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 759c8e4045..b5cb067061 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1870,7 +1870,7 @@ if (PACKAGE) "${VIEWER_DIST_DIR}" "${VIEWER_EXE_GLOBS}" "${VIEWER_LIB_GLOB}" - "${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/bin/dump_syms" + "${AUTOBUILD_INSTALL_DIR}/bin/dump_syms" "${VIEWER_SYMBOL_FILE}" DEPENDS generate_breakpad_symbols.py VERBATIM) -- cgit v1.3 From 00f8de066680fc87b4001da0ab3be6e3f99b186f Mon Sep 17 00:00:00 2001 From: jenn Date: Wed, 19 Jan 2011 14:14:40 -0800 Subject: Update 'kdu' for linux in autobuild.xml. Old version had deprectated package structure. --- autobuild.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d1e5244de6..008e0c79b7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -889,29 +889,29 @@ name darwin - windows + linux archive hash - 0c7b5596c27f511d4957abe35f7f8dee + 9742279dfbe57be7a6aed12d60045459 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-windows-20110113.tar.bz2 + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-linux-20110119.tar.bz2 name - windows + linux - linux + windows archive hash - ed3e58899a424684dad49c94ba3813e7 + 0c7b5596c27f511d4957abe35f7f8dee url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-linux-20101124.tar.bz2 + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-windows-20110113.tar.bz2 name - linux + windows -- cgit v1.3 From f6197abb0960a04e9776c7e11862019ba869b30d Mon Sep 17 00:00:00 2001 From: jenn Date: Wed, 19 Jan 2011 16:21:10 -0800 Subject: Updated google_breakpad package on linux in autobuild.xml. Previously omitted a necessary include file. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d692576fd9..757b155ec1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -654,9 +654,9 @@ archive hash - aa48259e567b8a55e932570e975201e0 + 239e5be637bb6282a297a8636ef3c77e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110119.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110119a.tar.bz2 name linux -- cgit v1.3 From 3cae4f41a0aeb21748fc46087080b88e331741e4 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 20 Jan 2011 11:25:16 -0800 Subject: update curl library used. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 757b155ec1..623433bcb1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -222,9 +222,9 @@ archive hash - ab6246b72141f39804c67f4536f1cece + 74bfe7b46705f4d5f82abe08e1aeef28 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.20.1-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/218645/arch/Darwin/installer/curl-7.21.1-darwin-20110107.tar.bz2 name darwin @@ -234,9 +234,9 @@ archive hash - a9b82d81b483f5e40a3058d165f1aff2 + ea3c7ca3ea58ffce52e1551def78e077 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.20.1-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/218645/arch/Linux/installer/curl-7.21.1-linux-20110107.tar.bz2 name linux @@ -246,9 +246,9 @@ archive hash - a3494e2560b7fe32b25cb19041ba4e2a + 0677e39648cae1bd3c1f158a942187aa url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.20.1-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/218645/arch/CYGWIN/installer/curl-7.21.1-windows-20110107.tar.bz2 name windows -- cgit v1.3 From 785d3ce4252e9c5061d4d0af67ad495f7c3d1c32 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 20 Jan 2011 14:15:09 -0800 Subject: update slvoice library on mac. --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 623433bcb1..71f7fb38f7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1344,7 +1344,7 @@ license_file LICENSES/slvoice.txt name - vivox + slvoice platforms darwin @@ -1352,9 +1352,9 @@ archive hash - 8f517d790d2ec9888c5688e9950fc2d5 + e19576af3c0affc71293d8f0bcce2606 url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/vivox-3.1.0001.8821-darwin-20101018.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-darwin-20110120.tar.bz2 name darwin -- cgit v1.3 From ea8c2b1fa19804ecc55de0274cdd53eceb7f73ce Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 20 Jan 2011 14:32:03 -0800 Subject: update curl lib to fixed archive. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 71f7fb38f7..3449c40ea6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -222,9 +222,9 @@ archive hash - 74bfe7b46705f4d5f82abe08e1aeef28 + 445c558d312a195f015eab324af5aba9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/218645/arch/Darwin/installer/curl-7.21.1-darwin-20110107.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219358/arch/Darwin/installer/curl-7.21.1-darwin-20110120.tar.bz2 name darwin @@ -234,9 +234,9 @@ archive hash - ea3c7ca3ea58ffce52e1551def78e077 + f862e4a9f65f2d57c7bd0815302b021c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/218645/arch/Linux/installer/curl-7.21.1-linux-20110107.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219358/arch/Linux/installer/curl-7.21.1-linux-20110120.tar.bz2 name linux @@ -246,9 +246,9 @@ archive hash - 0677e39648cae1bd3c1f158a942187aa + f57a98c83ae6f62655c78f158ee93fc6 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/218645/arch/CYGWIN/installer/curl-7.21.1-windows-20110107.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219358/arch/CYGWIN/installer/curl-7.21.1-windows-20110120.tar.bz2 name windows -- cgit v1.3 From e59a2f94c75a8c7c9e0b6177443a244dd84692e6 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 20 Jan 2011 15:06:53 -0800 Subject: update slvoice package. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3449c40ea6..efbd08cdf4 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1376,9 +1376,9 @@ archive hash - 698449073dbc108e046fef15ce30b1f5 + 44f84b3b45f7067a104a7c34d50d62f0 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.1.0001.8821-windows-20101011.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-windows-20110120.tar.bz2 name windows -- cgit v1.3 From e421ffa3a7c952c1ff3e209f8ebf94ed02aeecc2 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 20 Jan 2011 15:16:02 -0800 Subject: update linux slvoice pacakge. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3449c40ea6..a4a7be47e4 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1364,9 +1364,9 @@ archive hash - 827ebbcddb31516e7e40a37374a52ebf + 53fefed8120d7c6a0eb6778edae6fa32 url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/vivox-3.1.0001.8821-linux-20101018.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-linux-20110120.tar.bz2 name linux -- cgit v1.3 From 67fdd528fddc4dd3bf6d1281a119cad8046f5a04 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 20 Jan 2011 16:17:15 -0800 Subject: update mac and linux curl packages to use expected lib layout. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a4a7be47e4..bee0ab6b78 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -222,9 +222,9 @@ archive hash - 445c558d312a195f015eab324af5aba9 + 89b89ad923816317e1a3be963b406f27 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219358/arch/Darwin/installer/curl-7.21.1-darwin-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219379/arch/Darwin/installer/curl-7.21.1-darwin-20110120.tar.bz2 name darwin @@ -234,9 +234,9 @@ archive hash - f862e4a9f65f2d57c7bd0815302b021c + 49d4ac6773a585ad13190746db1e6e85 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219358/arch/Linux/installer/curl-7.21.1-linux-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219379/arch/Linux/installer/curl-7.21.1-linux-20110121.tar.bz2 name linux -- cgit v1.3 From 00c9123919b011aeb107dd44078e7c21ef0836c8 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 20 Jan 2011 16:59:33 -0800 Subject: add license information derived from istall.xml --- autobuild.xml | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index bee0ab6b78..340f774a9e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -5,6 +5,8 @@ GL + license + GL license_file LICENSES/GL.txt name @@ -51,6 +53,8 @@ SDL + license + lgpl license_file LICENSES/SDL.txt name @@ -73,6 +77,8 @@ apr_suite + license + apache license_file LICENSES/apr_suite.txt name @@ -119,6 +125,8 @@ ares + license + c-ares license_file LICENSES/ares.txt name @@ -165,6 +173,8 @@ boost + license + boost license_file LICENSES/boost.txt name @@ -211,6 +221,8 @@ curl + license + curl license_file LICENSES/curl.txt name @@ -257,6 +269,8 @@ dbghelp + license + MSDTW license_file LICENSES/dbghelp.txt name @@ -279,6 +293,8 @@ dbusglib + license + AFL2.1 license_file LICENSES/dbusglib.txt name @@ -301,6 +317,8 @@ elfio + license + lgpl license_file LICENSES/elfio.txt name @@ -323,6 +341,8 @@ expat + license + mit license_file LICENSES/expat.txt name @@ -369,6 +389,8 @@ fmod + license + fmod license_file LICENSES/fmod.txt name @@ -415,6 +437,8 @@ fontconfig + license + mit license_file LICENSES/fontconfig.txt name @@ -437,6 +461,8 @@ freeglut + license + mit license_file LICENSES/freeglut.txt name @@ -459,6 +485,8 @@ freetype + license + freetype license_file LICENSES/freetype.txt name @@ -505,6 +533,8 @@ glh_linear + license + glh_linear license_file LICENSES/glh_linear.txt name @@ -551,6 +581,8 @@ glui + license + lgpl license_file LICENSES/glui.txt name @@ -585,6 +617,8 @@ google + license + mit name google platforms @@ -609,6 +643,8 @@ google-perftools + license + bsd license_file LICENSES/google.txt name @@ -631,6 +667,8 @@ google_breakpad + license + bsd license_file LICENSES/google_breakpad.txt name @@ -677,6 +715,8 @@ googlemock + license + bsd license_file LICENSES/googlemock.txt name @@ -723,6 +763,8 @@ gstreamer + license + lgpl license_file LICENSES/gstreamer.txt name @@ -745,6 +787,8 @@ gtk-atk-pango-glib + license + lgpl license_file LICENSES/gtk.txt name @@ -779,6 +823,8 @@ jpeglib + license + jpeglib license_file LICENSES/jpeglib.txt name @@ -825,6 +871,8 @@ jsoncpp + license + jsoncpp license_file LICENSES/jsoncpp.txt name @@ -871,6 +919,8 @@ kdu + license + kdu license_file LICENSES/kdu.txt name @@ -917,6 +967,8 @@ libpng + license + libpng license_file LICENSES/libpng.txt name @@ -963,6 +1015,8 @@ libuuid + license + lgpl license_file LICENSES/libuuid.txt name @@ -985,6 +1039,8 @@ libxml + license + mit license_file LICENSES/libxml.txt name @@ -1007,6 +1063,8 @@ llqtwebkit + license + lgpl license_file LICENSES/llqtwebkit.txt name @@ -1053,6 +1111,8 @@ mesa + license + mesa license_file LICENSES/mesa.txt name @@ -1087,6 +1147,8 @@ ndofdev + license + linden license_file LICENSES/ndofdev.txt name @@ -1133,6 +1195,8 @@ ogg-vorbis + license + ogg-vorbis license_file LICENSES/ogg.txt name @@ -1179,6 +1243,8 @@ openSSL + license + openSSL license_file LICENSES/openSSL.txt name @@ -1225,6 +1291,8 @@ openal_soft + license + lgpl license_file LICENSES/OPENAL.txt name @@ -1251,6 +1319,8 @@ openjpeg + license + openjpeg license_file LICENSES/openjpeg.txt name @@ -1297,6 +1367,8 @@ pth + license + lgpl license_file LICENSES/pth.txt name @@ -1319,6 +1391,8 @@ quicktime + license + quicktime license_file LICENSES/quicktime.txt name @@ -1341,6 +1415,8 @@ slvoice + license + vivox license_file LICENSES/slvoice.txt name @@ -1387,6 +1463,8 @@ tut + license + bsd license_file LICENSES/tut.txt name @@ -1409,6 +1487,8 @@ xmlrpc-epi + license + xmlrpc-epi license_file LICENSES/xmlrpc.txt name @@ -1455,6 +1535,8 @@ zlib + license + zlib license_file LICENSES/zlib.txt name -- cgit v1.3 From 6dd086794f5cf319fca1736a5803423b58d79d0b Mon Sep 17 00:00:00 2001 From: "Mark Palange (Mani)" Date: Mon, 24 Jan 2011 12:04:49 -0800 Subject: Updated boost lib --- autobuild.xml | 12 ++++++------ indra/cmake/Boost.cmake | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 340f774a9e..30e78729dd 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -210,9 +210,9 @@ archive hash - de5559c2c497544b3d0da533390175dc + 98be22c8833aa2bca184b9fa09fbb82b url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/219456/arch/CYGWIN/installer/boost-1.45.0-windows-20110124.tar.bz2 name windows @@ -1880,7 +1880,7 @@ windows build_directory - build-vc80 + build-vc100 configurations Debug @@ -1908,7 +1908,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" name @@ -1939,7 +1939,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" default @@ -1972,7 +1972,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" name diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 0b7eb7e99b..b9c047a764 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -37,17 +37,17 @@ else (STANDALONE) else(MSVC80) # MSVC 10.0 config set(BOOST_PROGRAM_OPTIONS_LIBRARY - optimized libboost_program_options-vc100-mt - debug libboost_program_options-vc100-mt-gd) + optimized libboost_program_options-vc100-mt-${BOOST_VERSION} + debug libboost_program_options-vc100-mt-gd-${BOOST_VERSION}) set(BOOST_REGEX_LIBRARY - optimized libboost_regex-vc100-mt - debug libboost_regex-vc100-mt-gd) + optimized libboost_regex-vc100-mt-${BOOST_VERSION} + debug libboost_regex-vc100-mt-gd-${BOOST_VERSION}) set(BOOST_SYSTEM_LIBRARY - optimized libboost_system-vc100-mt - debug libboost_system-vc100-mt-gd) + optimized libboost_system-vc100-mt-${BOOST_VERSION} + debug libboost_system-vc100-mt-gd-${BOOST_VERSION}) set(BOOST_FILESYSTEM_LIBRARY - optimized libboost_filesystem-vc100-mt - debug libboost_filesystem-vc100-mt-gd) + optimized libboost_filesystem-vc100-mt-${BOOST_VERSION} + debug libboost_filesystem-vc100-mt-gd-${BOOST_VERSION}) endif (MSVC80) elseif (DARWIN) set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-xgcc40-mt) -- cgit v1.3 From ed8aef42e1a6b4a8efa796e24dda252b1a743a74 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 26 Jan 2011 09:07:20 -0800 Subject: windows uses llqtwebkit now published on s3. --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 9cda6ff165..30e07bb12c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1102,7 +1102,7 @@ hash 5af0f88e298ea8b6041e29928f520eda url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llqtwebkit-4.7.1-windows-20110113.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110113.tar.bz2 name windows -- cgit v1.3 From 216c3b47716f6eb5ebf1713c77fc6a6bb6f43abe Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 26 Jan 2011 15:57:48 -0800 Subject: adding OpenSource* and OpenSourceStandAlone* configurations. --- autobuild.xml | 894 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 750 insertions(+), 144 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 30e07bb12c..2352f9e579 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1598,43 +1598,674 @@ configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + Debug + + OpenSourceDebug + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + OpenSourceDebug + + OpenSourceRelWithDebInfo + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + OpenSourceRelWithDebInfo + + OpenSourceRelease + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + OpenSourceRelease + + OpenSourceStandAloneDebug + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + OpenSourceStandAloneDebug + + OpenSourceStandAloneRelWithDebInfo + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + OpenSourceStandAloneRelWithDebInfo + + OpenSourceStandAloneRelease + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + OpenSourceStandAloneRelease + + RelWithDebInfo + + build + + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + RelWithDebInfo + + Release + + build + + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + Release + + + name + common + + darwin + + build_directory + build-darwin-i386 + configurations + + Debug + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + + + name + Debug + + OpenSourceDebug + + build + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceDebug + + OpenSourceRelWithDebInfo + + build + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceRelWithDebInfo + + OpenSourceRelease + + build + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceRelease + + OpenSourceStandAloneDebug + + build + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceStandAloneDebug + + OpenSourceStandAloneRelWithDebInfo + + build + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceStandAloneRelWithDebInfo + + OpenSourceStandAloneRelease + + build + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceStandAloneRelease + + RelWithDebInfo + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + + + default + True + name + RelWithDebInfo + + Release + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + + + name + Release + + + name + darwin + + linux + + build_directory + build-linux-i686 + configurations + + Debug + + build + + command + make + options + + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + + + name + Debug + + OpenSourceDebug + + build + + command + make + options + + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceDebug + + OpenSourceRelWithDebInfo + + build + + command + make + options + + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceRelWithDebInfo + + OpenSourceRelease + + build + + command + make + options + + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceRelease + + OpenSourceStandAloneDebug + + build command - cmake + make options - -DCMAKE_BUILD_TYPE:STRING=Debug - -DSTANDALONE:BOOL=OFF - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DFMOD=TRUE - -DINSTALL_PROPRIETARY=TRUE + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Debug + OpenSourceStandAloneDebug - RelWithDebInfo + OpenSourceStandAloneRelWithDebInfo build + command + make + options + + -j 12 + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceStandAloneRelWithDebInfo + + OpenSourceStandAloneRelease + + build command - cmake + make options - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + OpenSourceStandAloneRelease + + RelWithDebInfo + + build + + command + make + options + + -j 12 + + + configure + + options + + -G + 'Unix Makefiles' -DSTANDALONE:BOOL=OFF - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DFMOD=TRUE -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + default + True name RelWithDebInfo @@ -1642,33 +2273,43 @@ build + command + make + options + + -j 12 + configure - command - cmake options - -DCMAKE_BUILD_TYPE:STRING=Release + -G + 'Unix Makefiles' -DSTANDALONE:BOOL=OFF - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DFMOD=TRUE -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE name Release + default + + build + + + name + default + name - common + linux - darwin + windows build_directory - build-darwin-i386 + build-vc80 configurations Debug @@ -1677,213 +2318,181 @@ arguments - | - grep - -v - setenv + SecondLife.sln command - xcodebuild + BuildConsole options - -configuration Debug - -project SecondLife.xcodeproj + /build + "/cfg=Debug|Win32" configure - arguments - - ../indra - options -G - 'Xcode' + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE name Debug - RelWithDebInfo + OpenSourceDebug build arguments - | - grep - -v - setenv + SecondLife.sln command - xcodebuild + devenv.com options - -configuration RelWithDebInfo - -project SecondLife.xcodeproj + /build + Debug configure - arguments - - ../indra - options -G - 'Xcode' + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE - default - True name - RelWithDebInfo + OpenSourceDebug - Release + OpenSourceRelWithDebInfo build arguments - | - grep - -v - setenv + SecondLife.sln command - xcodebuild + devenv.com options - -configuration Release - -project SecondLife.xcodeproj + /build + RelWithDebInfo configure - arguments - - ../indra - options -G - 'Xcode' + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Release + OpenSourceRelWithDebInfo - - name - darwin - - linux - - build_directory - build-linux-i686 - configurations - - Debug + OpenSourceRelease build + arguments + + SecondLife.sln + command - make + devenv.com options - -j 12 + /build + Release configure - arguments - - ../indra - options -G - 'Unix Makefiles' + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Debug + OpenSourceRelease - RelWithDebInfo + OpenSourceStandAloneDebug build + arguments + + SecondLife.sln + command - make + devenv.com options - -j 12 + /build + Debug configure - arguments - - ../indra - options -G - 'Unix Makefiles' + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE - default - True name - RelWithDebInfo + OpenSourceStandAloneDebug - Release + OpenSourceStandAloneRelWithDebInfo build + arguments + + SecondLife.sln + command - make + devenv.com options - -j 12 + /build + RelWithDebInfo configure - arguments - - ../indra - options -G - 'Unix Makefiles' + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Release - - default - - build - - - name - default + OpenSourceStandAloneRelWithDebInfo - - name - linux - - windows - - build_directory - build-vc80 - configurations - - Debug + OpenSourceStandAloneRelease build @@ -1892,27 +2501,26 @@ SecondLife.sln command - BuildConsole + devenv.com options /build - "/cfg=Debug|Win32" + Release configure - arguments - - ..\indra - options -G - "Visual Studio 8 2005" + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=TRUE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Debug + OpenSourceStandAloneRelease RelWithDebInfo @@ -1932,14 +2540,13 @@ configure - arguments - - ..\indra - options -G - "Visual Studio 8 2005" + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE default @@ -1965,14 +2572,13 @@ configure - arguments - - ..\indra - options -G - "Visual Studio 8 2005" + 'Visual Studio 8 2005' + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE name -- cgit v1.3 From 5833672c5c10722e92137fb1f439df5045e4a9e6 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Wed, 26 Jan 2011 16:09:40 -0800 Subject: fix quoting of vs8 generator string. --- autobuild.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2352f9e579..7ca481f275 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2333,7 +2333,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=OFF -DINSTALL_PROPRIETARY=TRUE -DFMOD=TRUE @@ -2363,7 +2363,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2393,7 +2393,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2423,7 +2423,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2453,7 +2453,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=TRUE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2483,7 +2483,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=TRUE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2513,7 +2513,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=TRUE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2543,7 +2543,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=OFF -DINSTALL_PROPRIETARY=TRUE -DFMOD=TRUE @@ -2575,7 +2575,7 @@ options -G - 'Visual Studio 8 2005' + "Visual Studio 8 2005" -DSTANDALONE:BOOL=OFF -DINSTALL_PROPRIETARY=TRUE -DFMOD=TRUE -- cgit v1.3 From 287143080b2df79ef6ce2e09fdf1dfaede479dcf Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 27 Jan 2011 14:57:20 -0800 Subject: use patched llqtwebkit library on windows. --- .hgignore | 1 + autobuild.xml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/.hgignore b/.hgignore index e10049c68c..51b864651b 100644 --- a/.hgignore +++ b/.hgignore @@ -14,6 +14,7 @@ indra/.distcc build-linux-* build-darwin-* build-vc80/ +build-vc100/ indra/build-vc[0-9]* indra/CMakeFiles indra/lib/mono/1.0/*.dll diff --git a/autobuild.xml b/autobuild.xml index 7c70229f13..63f650b90d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1100,9 +1100,9 @@ archive hash - 5af0f88e298ea8b6041e29928f520eda + 77889b3d6aae9419ee973b326337738b url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llqtwebkit-4.7.1-windows-20110113.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110127a.tar.bz2 name windows -- cgit v1.3 From 3895be8e25e74abd16a14803c8a0288df7c42a4b Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 27 Jan 2011 17:16:27 -0800 Subject: update to use patched quicktime package --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 63f650b90d..25c598362c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1404,9 +1404,9 @@ archive hash - 045618341689fdc3a5560b75a9890a78 + 52e49ab6937b09882389da0dbaec17f5 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/quicktime-sdk-windows-7.3-20101001a.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/quicktime-7.3-windows-20110127.tar.bz2 name windows -- cgit v1.3 From f05f2412b2d193b4c767fd30e1e1ef1a3dd404c8 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Mon, 31 Jan 2011 12:31:36 -0800 Subject: patches to use new jsoncpp lib on windows --- autobuild.xml | 8 ++++---- indra/cmake/JsonCpp.cmake | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 25c598362c..dc6ccc2817 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -704,9 +704,9 @@ archive hash - 506c870d37b3f7696171e4180c8bf821 + 320972cefe728e668b0dc6356eeda58f url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-windows-20110119.tar.bz2 + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/google_breakpad-0.0.0-rev599-windows-20110128.tar.bz2 name windows @@ -908,9 +908,9 @@ archive hash - ac06a8981cf7df3522362850ffb3a531 + 53f1e3ff386daa25ff1e88df4b5c6941 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-windows-20101011.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-windows-20110131.tar.bz2 name windows diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 7dd565be7c..5d571e734a 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -11,8 +11,8 @@ else (STANDALONE) use_prebuilt_binary(jsoncpp) if (WINDOWS) set(JSONCPP_LIBRARIES - debug json_vc80d - optimized json_vc80) +# debug json_vc100_libmt + optimized json_vc100_libmt) elseif (DARWIN) set(JSONCPP_LIBRARIES json_mac-universal-gcc_libmt) elseif (LINUX) -- cgit v1.3 From 8adcaa147de9e8dabaf6e64fbd8af0ccc61c4519 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 31 Jan 2011 15:19:49 -0800 Subject: update mac and linux json libs. --- autobuild.xml | 8 ++++---- indra/cmake/JsonCpp.cmake | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index dc6ccc2817..28e5f23217 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -884,9 +884,9 @@ archive hash - c10c28118c578d0674c1fbe59002d0ab + de8b96120c274e052abb4f692861be46 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220079/arch/Darwin/installer/jsoncpp-0.5.0-darwin-20110131.tar.bz2 name darwin @@ -896,9 +896,9 @@ archive hash - 7e6b2fc7ad4e12d94d01cc49c22c6f67 + db7826354e60fb4ae14bf40258c088af url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-linux-20101013.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220079/arch/Linux/installer/jsoncpp-0.5.0-linux-20110131.tar.bz2 name linux diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 5d571e734a..d878f70a17 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -14,9 +14,9 @@ else (STANDALONE) # debug json_vc100_libmt optimized json_vc100_libmt) elseif (DARWIN) - set(JSONCPP_LIBRARIES json_mac-universal-gcc_libmt) + set(JSONCPP_LIBRARIES libjson_linux-gcc-4.0.1_libmt) elseif (LINUX) - set(JSONCPP_LIBRARIES jsoncpp) + set(JSONCPP_LIBRARIES libjson_linux-gcc-4.3.2_libmt) endif (WINDOWS) set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/jsoncpp) endif (STANDALONE) -- cgit v1.3 From 48bf6b19b36a3ff3f5b3d440d511a0e3dba3d768 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Mon, 31 Jan 2011 15:55:42 -0800 Subject: build uses latest jsoncpp package with new layout. --- autobuild.xml | 4 ++-- indra/cmake/JsonCpp.cmake | 2 +- indra/newview/lltranslate.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index dc6ccc2817..60ba91d89a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -908,9 +908,9 @@ archive hash - 53f1e3ff386daa25ff1e88df4b5c6941 + a668a4ddfe20a078d720d7a4fca205bd url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-windows-20110131.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-windows-20110131a.tar.bz2 name windows diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 5d571e734a..27cb22024e 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -18,5 +18,5 @@ else (STANDALONE) elseif (LINUX) set(JSONCPP_LIBRARIES jsoncpp) endif (WINDOWS) - set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/jsoncpp) + set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/json) endif (STANDALONE) diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp index 8ccfdb071b..7731a98778 100644 --- a/indra/newview/lltranslate.cpp +++ b/indra/newview/lltranslate.cpp @@ -39,7 +39,7 @@ #include "llversioninfo.h" #include "llviewercontrol.h" -#include "jsoncpp/reader.h" +#include "reader.h" // These two are concatenated with the language specifiers to form a complete Google Translate URL const char* LLTranslate::m_GoogleURL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="; -- cgit v1.3 From cbffa57351cdbdd189cf8251fdab0b62690fa33a Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Fri, 4 Feb 2011 12:52:36 -0800 Subject: fix linking to llqtwebkit. --- autobuild.xml | 34 ++++++++++++++++++++++++----- indra/cmake/WebKitLibPlugin.cmake | 1 + indra/llcommon/tests/llsdserialize_test.cpp | 2 +- 3 files changed, 31 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f8b03b3b75..2f9048cb44 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -606,9 +606,9 @@ archive hash - 1135a4afc4328c68368f550ede28b4dd + ba33d49b86528e1897b9857f245176fb url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.3.6-windows-freeglut-20101001b.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs//glui-2.36-windows-20110203.tar.bz2 name windows @@ -1066,7 +1066,7 @@ license lgpl license_file - LICENSES/llqtwebkit.txt + LICENSES/LLQTWEBKIT_LICENSE.txt name llqtwebkit platforms @@ -1100,9 +1100,9 @@ archive hash - 77889b3d6aae9419ee973b326337738b + 5744e07b1b775afd259f3916a436c54c url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110127a.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110204.tar.bz2 name windows @@ -1389,6 +1389,30 @@ + qt + + license + LGPL + license_file + LICENSES/qt.txt + name + qt + platforms + + windows + + archive + + hash + 5ebf518be8ca8913265d791096e21445 + url + file:///cygwin/home/Alain/projects/qt/qt-4.7.1-windows-20110203.tar.bz2 + + name + windows + + + quicktime license diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 1f5b0f5d84..1cc02c1cac 100644 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -35,6 +35,7 @@ else (STANDALONE) endif (STANDALONE) if (WINDOWS) + use_prebuilt_binary(qt) set(WEBKIT_PLUGIN_LIBRARIES debug llqtwebkitd debug QtWebKitd4 diff --git a/indra/llcommon/tests/llsdserialize_test.cpp b/indra/llcommon/tests/llsdserialize_test.cpp index 770443da1d..7b4c7d6a48 100644 --- a/indra/llcommon/tests/llsdserialize_test.cpp +++ b/indra/llcommon/tests/llsdserialize_test.cpp @@ -452,7 +452,7 @@ namespace tut checkRoundTrip(msg + " nested arrays", v); v = LLSD::emptyMap(); - fillmap(v, 10, 6); // 10^6 maps + fillmap(v, 10, 3); // 10^6 maps checkRoundTrip(msg + " many nested maps", v); } -- cgit v1.3 From 7e19ef5b4fa3c6e3d453794ada52cfe8abc9bc33 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Sun, 6 Feb 2011 08:50:06 -0500 Subject: OPEN-1 WORKAROUND - create a VCexpressRelWithDebInfo for compiling with VS Express --- autobuild.xml | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7ca481f275..2aa9b5c3d6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1658,6 +1658,29 @@ name OpenSourceRelWithDebInfo + + VCexpressRelWithDebInfo + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + VCexpressRelWithDebInfo + + OpenSourceRelease configure @@ -2402,6 +2425,37 @@ name OpenSourceRelWithDebInfo + + VCexpressRelWithDebInfo + + build + + arguments + + SecondLife.sln + + command + vcbuild.exe + options + + RelWithDebInfo + + + configure + + options + + -G + "Visual Studio Express 8 2005" + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + VCexpressRelWithDebInfo + + OpenSourceRelease build -- cgit v1.3 From 82d9e1b73e37fc48409324f7e4cd32ee6d789637 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Sun, 6 Feb 2011 09:56:09 -0500 Subject: OPEN-1 WORKAROUND revert change to cmake string for VS 8 --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2aa9b5c3d6..5d07c035e6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2446,7 +2446,7 @@ options -G - "Visual Studio Express 8 2005" + "Visual Studio 8 2005" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE -- cgit v1.3 From 0c6de5c6cca4fae213b050e2ac9b15c5d16d8db6 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Sun, 6 Feb 2011 10:09:58 -0500 Subject: OPEN-1 WORKAROUND correct build arguments for VS Express --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 5d07c035e6..e1733ac9ae 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2432,13 +2432,13 @@ arguments - SecondLife.sln + "RelWithDebInfo|Win32" command vcbuild.exe options - RelWithDebInfo + "RelWithDebInfo|Win32" configure -- cgit v1.3 From eb68b5fa0a669192375aab919931b54fa7e80801 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Sun, 6 Feb 2011 10:37:42 -0500 Subject: OPEN-1 WORKAROUND correct build arguments again for VS Express --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index e1733ac9ae..cceb197f0e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2438,7 +2438,7 @@ vcbuild.exe options - "RelWithDebInfo|Win32" + SecondLife.sln configure -- cgit v1.3 From ed4661b60789757c8830596a0e16a69d16263976 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Mon, 7 Feb 2011 10:00:33 -0800 Subject: update packages. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2f9048cb44..3314b31141 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -474,9 +474,9 @@ archive hash - 88c29e73df61ff87c111d55d1b48f12c + 6315d27fdea14a99cdb40ac7f0259916 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freeglut-2.4.0-windows-20101001a.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freeglut-2.6.0-windows-20110204.tar.bz2 name windows @@ -606,9 +606,9 @@ archive hash - ba33d49b86528e1897b9857f245176fb + a34cf9a671fc33607748ba23eecb612d url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs//glui-2.36-windows-20110203.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-windows-20110204.tar.bz2 name windows @@ -1404,9 +1404,9 @@ archive hash - 5ebf518be8ca8913265d791096e21445 + d2c2377438d96a2635ea08fda243f8ab url - file:///cygwin/home/Alain/projects/qt/qt-4.7.1-windows-20110203.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-qt/rev/220364/arch/CYGWIN/installer/qt-4.7.1-windows-20110204.tar.bz2 name windows -- cgit v1.3 From ceeffc6c929c58ffcaf921df44d38fde0a916c90 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Mon, 7 Feb 2011 12:56:58 -0800 Subject: use up to date openssl package. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3314b31141..72bdefa61b 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1280,9 +1280,9 @@ archive hash - 8c5862027b93eafceeaae9e4cef4cfa8 + 3e1847f7c38b4c78d8f594d269e96340 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8j-windows-20101001b.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220197/arch/CYGWIN/installer/openssl-0.9.8q-windows-20110202.tar.bz2 name windows -- cgit v1.3 From c2bfa25299c798b811c50b2f6f793d3a9bb914dd Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Mon, 7 Feb 2011 16:46:18 -0800 Subject: update pacageing of msvc?100.dll's; use latest qt package with all needed libs. --- autobuild.xml | 4 +-- indra/cmake/Copy3rdPartyLibs.cmake | 56 ++++++++++++++++++++++++++++++++++++++ indra/newview/viewer_manifest.py | 28 +++++++++++-------- 3 files changed, 74 insertions(+), 14 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 72bdefa61b..237ea4ad8d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1404,9 +1404,9 @@ archive hash - d2c2377438d96a2635ea08fda243f8ab + ad536aebb28e578164f58e3f7b53bbb1 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-qt/rev/220364/arch/CYGWIN/installer/qt-4.7.1-windows-20110204.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-qt/rev/220494/arch/CYGWIN/installer/qt-4.7.1-windows-20110207.tar.bz2 name windows diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 1f6fe6fedf..938cec3800 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -119,6 +119,62 @@ if (MSVC80) set(third_party_targets ${third_party_targets} ${out_targets}) endif (EXISTS ${release_msvc8_redist_path}) +elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010 + FIND_PATH(debug_msvc10_redist_path msvcr100d.dll + PATHS + ${MSVC_DEBUG_REDIST_PATH} + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC100.DebugCRT + NO_DEFAULT_PATH + NO_DEFAULT_PATH + ) + + if(EXISTS ${debug_msvc10_redist_path}) + set(debug_msvc10_files + msvcr100d.dll + msvcp100d.dll + ) + + copy_if_different( + ${debug_msvc10_redist_path} + "${SHARED_LIB_STAGING_DIR_DEBUG}" + out_targets + ${debug_msvc10_files} + ) + set(third_party_targets ${third_party_targets} ${out_targets}) + + endif () + + FIND_PATH(release_msvc10_redist_path msvcr100.dll + PATHS + ${MSVC_REDIST_PATH} + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC100.CRT + NO_DEFAULT_PATH + NO_DEFAULT_PATH + ) + + if(EXISTS ${release_msvc10_redist_path}) + set(release_msvc10_files + msvcr100.dll + msvcp100.dll + ) + + copy_if_different( + ${release_msvc10_redist_path} + "${SHARED_LIB_STAGING_DIR_RELEASE}" + out_targets + ${release_msvc10_files} + ) + set(third_party_targets ${third_party_targets} ${out_targets}) + + copy_if_different( + ${release_msvc10_redist_path} + "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}" + out_targets + ${release_msvc10_files} + ) + set(third_party_targets ${third_party_targets} ${out_targets}) + + endif () endif (MSVC80) elseif(DARWIN) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index b803a55110..2c8d4bc6d5 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -174,6 +174,9 @@ class WindowsManifest(ViewerManifest): return ''.join(self.channel().split()) + '.exe' def test_msvcrt_and_copy_action(self, src, dst): + # Skip this test as of VS2010 + return + # This is used to test a dll manifest. # It is used as a temporary override during the construct method from test_win32_manifest import test_assembly_binding @@ -193,6 +196,9 @@ class WindowsManifest(ViewerManifest): print "Doesn't exist:", src def test_for_no_msvcrt_manifest_and_copy_action(self, src, dst): + # Skip this test as of VS2010 + return + # This is used to test that no manifest for the msvcrt exists. # It is used as a temporary override during the construct method from test_win32_manifest import test_assembly_binding @@ -282,13 +288,11 @@ class WindowsManifest(ViewerManifest): # These need to be installed as a SxS assembly, currently a 'private' assembly. # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx if self.args['configuration'].lower() == 'debug': - self.path("msvcr80d.dll") - self.path("msvcp80d.dll") - self.path("Microsoft.VC80.DebugCRT.manifest") + self.path("msvcr100d.dll") + self.path("msvcp80d.dll") else: - self.path("msvcr80.dll") - self.path("msvcp80.dll") - self.path("Microsoft.VC80.CRT.manifest") + self.path("msvcr100.dll") + self.path("msvcp100.dll") # Vivox runtimes self.path("SLVoice.exe") @@ -390,12 +394,12 @@ class WindowsManifest(ViewerManifest): self.end_prefix() # For WebKit/Qt plugin runtimes (codec/character encoding plugins) - if self.prefix(src="codecs", dst="codecs"): - self.path("qcncodecs4.dll") - self.path("qjpcodecs4.dll") - self.path("qkrcodecs4.dll") - self.path("qtwcodecs4.dll") - self.end_prefix() +# if self.prefix(src="codecs", dst="codecs"): +# self.path("qcncodecs4.dll") +# self.path("qjpcodecs4.dll") +# self.path("qkrcodecs4.dll") +# self.path("qtwcodecs4.dll") +# self.end_prefix() self.end_prefix() -- cgit v1.3 From 9251d95205e8c5d9ac4be4992cc1ab88cf07e58b Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 10 Feb 2011 14:41:00 -0500 Subject: OPEN-1: (partial) use environment when building with Visual Studio Express --- autobuild.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index cceb197f0e..ec332a81bb 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2438,6 +2438,7 @@ vcbuild.exe options + /u SecondLife.sln -- cgit v1.3 From 38a2af923561f8865976843c58a21f851695c9c2 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 10 Feb 2011 17:26:16 -0800 Subject: various fixes to get the debug build working; don't look for or copy msvc*80.dll's. --- autobuild.xml | 34 +++++----------------------------- indra/cmake/JsonCpp.cmake | 2 +- indra/cmake/WebKitLibPlugin.cmake | 1 - indra/newview/CMakeLists.txt | 15 ++++++--------- indra/newview/viewer_manifest.py | 2 +- 5 files changed, 13 insertions(+), 41 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 237ea4ad8d..eaf976ff8f 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -908,9 +908,9 @@ archive hash - a668a4ddfe20a078d720d7a4fca205bd + afff2018e6a887c281b072eecdd9343e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-windows-20110131a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220579/arch/CYGWIN/installer/jsoncpp-0.5.0-windows-20110208.tar.bz2 name windows @@ -1066,7 +1066,7 @@ license lgpl license_file - LICENSES/LLQTWEBKIT_LICENSE.txt + LICENSES/llqtwebkit.txt name llqtwebkit platforms @@ -1100,9 +1100,9 @@ archive hash - 5744e07b1b775afd259f3916a436c54c + 7865b9c3a5d9f9424af56d5d05b82de9 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110204.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/alain_llqtwebkit/rev/220864/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110210.tar.bz2 name windows @@ -1389,30 +1389,6 @@ - qt - - license - LGPL - license_file - LICENSES/qt.txt - name - qt - platforms - - windows - - archive - - hash - ad536aebb28e578164f58e3f7b53bbb1 - url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-qt/rev/220494/arch/CYGWIN/installer/qt-4.7.1-windows-20110207.tar.bz2 - - name - windows - - - quicktime license diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 4a129d7115..5e6672ecd4 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -11,7 +11,7 @@ else (STANDALONE) use_prebuilt_binary(jsoncpp) if (WINDOWS) set(JSONCPP_LIBRARIES -# debug json_vc100_libmt + debug json_vc100debug_libmt.lib optimized json_vc100_libmt) elseif (DARWIN) set(JSONCPP_LIBRARIES libjson_linux-gcc-4.0.1_libmt) diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 1cc02c1cac..1f5b0f5d84 100644 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -35,7 +35,6 @@ else (STANDALONE) endif (STANDALONE) if (WINDOWS) - use_prebuilt_binary(qt) set(WEBKIT_PLUGIN_LIBRARIES debug llqtwebkitd debug QtWebKitd4 diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index ef1d05a779..abba6f134d 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1488,15 +1488,12 @@ if (WINDOWS) ${SHARED_LIB_STAGING_DIR}/Release/fmod.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmod.dll ${SHARED_LIB_STAGING_DIR}/Debug/fmod.dll - ${SHARED_LIB_STAGING_DIR}/Release/msvcr80.dll - ${SHARED_LIB_STAGING_DIR}/Release/msvcp80.dll - ${SHARED_LIB_STAGING_DIR}/Release/Microsoft.VC80.CRT.manifest - ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/msvcr80.dll - ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/msvcp80.dll - ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest - ${SHARED_LIB_STAGING_DIR}/Debug/msvcr80d.dll - ${SHARED_LIB_STAGING_DIR}/Debug/msvcp80d.dll - ${SHARED_LIB_STAGING_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest + ${SHARED_LIB_STAGING_DIR}/Release/msvcr100.dll + ${SHARED_LIB_STAGING_DIR}/Release/msvcp100.dll + ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/msvcr100.dll + ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/msvcp100.dll + ${SHARED_LIB_STAGING_DIR}/Debug/msvcr100d.dll + ${SHARED_LIB_STAGING_DIR}/Debug/msvcp100d.dll ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/SLVoice.exe ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk.dll ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp.dll diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index ed7422433e..c11e5ed429 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -289,7 +289,7 @@ class WindowsManifest(ViewerManifest): # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx if self.args['configuration'].lower() == 'debug': self.path("msvcr100d.dll") - self.path("msvcp80d.dll") + self.path("msvcp100d.dll") else: self.path("msvcr100.dll") self.path("msvcp100.dll") -- cgit v1.3 From 18a49e58eab990482bbb307146e84c943288879b Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Fri, 11 Feb 2011 15:18:11 -0800 Subject: update curl and dependent installed archies to vs2010 builds. --- autobuild.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index eaf976ff8f..2c33606a3e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -128,7 +128,7 @@ license c-ares license_file - LICENSES/ares.txt + LICENSES/c-ares.txt name ares platforms @@ -162,9 +162,9 @@ archive hash - 2318e9eef0ea020878759d974a5945df + 1dcec6babd249a2597114d4ac226c461 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/220963/arch/CYGWIN/installer/ares-1.7.1-windows-20110211.tar.bz2 name windows @@ -258,9 +258,9 @@ archive hash - f57a98c83ae6f62655c78f158ee93fc6 + fea96aa2a7d513397317194f3d6c979b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219358/arch/CYGWIN/installer/curl-7.21.1-windows-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/220996/arch/CYGWIN/installer/curl-7.21.1-windows-20110211.tar.bz2 name windows @@ -1280,9 +1280,9 @@ archive hash - 3e1847f7c38b4c78d8f594d269e96340 + 774c7f0a0312bee3054757a623e227bc url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220197/arch/CYGWIN/installer/openssl-0.9.8q-windows-20110202.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220986/arch/CYGWIN/installer/openssl-0.9.8q-windows-20110211.tar.bz2 name windows @@ -1572,9 +1572,9 @@ archive hash - d1015a07ce0aa9aeeadc6a126cdcdf9f + 5852192646681817fc3c3a8c95e91c1e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-zlib/rev/220983/arch/CYGWIN/installer/zlib-1.2.5-windows-20110211.tar.bz2 name windows -- cgit v1.3 From 8af932de1f006d518ddfcf44c8cc2cab344dc802 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Wed, 16 Feb 2011 14:06:50 -0800 Subject: use new packages. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2c33606a3e..9657253138 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -378,9 +378,9 @@ archive hash - 2af1798aa38dce1b941ef8207f1beb50 + e72db1bda49b205ebdf4945d4ed2b8f8 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-expat/rev/221208/arch/CYGWIN/installer/expat-2.0.1-windows-20110215.tar.bz2 name windows @@ -474,9 +474,9 @@ archive hash - 6315d27fdea14a99cdb40ac7f0259916 + 825d5a9bafcc5bfe28dc4c1c4f87c576 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freeglut-2.6.0-windows-20110204.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freeglut/rev/221064/arch/CYGWIN/installer/freeglut-2.6.0-windows-20110214.tar.bz2 name windows @@ -606,9 +606,9 @@ archive hash - a34cf9a671fc33607748ba23eecb612d + e006635a741420a15f40bbdac13bd8d7 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-windows-20110204.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glui/rev/221069/arch/CYGWIN/installer/glui-2.36-windows-20110214.tar.bz2 name windows -- cgit v1.3 From 2ab9ba026e7002613717b1d847225ee103a26260 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 17 Feb 2011 17:49:03 -0800 Subject: update to latest apr_suite package. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 9657253138..4518ef06ec 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -114,9 +114,9 @@ archive hash - 925015cb33630fd73db5dcb6817bf0a2 + 73785c200a5b4ef74a1230b028bb680d url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.3.8-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/221588/arch/CYGWIN/installer/apr_suite-1.4.2-windows-20110217.tar.bz2 name windows -- cgit v1.3 From 14e09f9f799a5c0c660a28a6c0ae5b73a0d1dff8 Mon Sep 17 00:00:00 2001 From: callum Date: Fri, 18 Feb 2011 13:33:58 -0800 Subject: Pull in autobuild derrived jpeglib (version 8c) for Windows MSVC 2010 --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4518ef06ec..4a62681543 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -860,9 +860,9 @@ archive hash - 4a4d88f6ba42fa0acd47881f2d7ed7a7 + a202ec58cef9097c94acfa958ed6da8d url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-windows-20101001b.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/221594/arch/CYGWIN/installer/jpeglib-8c-windows-20110217.tar.bz2 name windows -- cgit v1.3 From efc572339df531cc149d0ddb8f58a692cd796055 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Fri, 18 Feb 2011 16:06:56 -0800 Subject: remove installable mesa for windows; not used. --- autobuild.xml | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4518ef06ec..f0e6ac4287 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1131,18 +1131,6 @@ name linux - windows - - archive - - hash - 178a79f9af90b16f0a62430f9fe88f28 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7.0-windows-20101001a.tar.bz2 - - name - windows - ndofdev -- cgit v1.3 From 7b9d54379f5ede0b046d2263487bb566f1928b23 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 18 Feb 2011 21:29:25 -0500 Subject: use improved packaging for jsoncpp --- autobuild.xml | 12 ++++++------ indra/cmake/JsonCpp.cmake | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3cce930f28..dfd3051ed4 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -884,9 +884,9 @@ archive hash - de8b96120c274e052abb4f692861be46 + 22c2ab6ef046c0c1f6cf674297f3e8ef url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220079/arch/Darwin/installer/jsoncpp-0.5.0-darwin-20110131.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/221698/arch/Darwin/installer/jsoncpp-0.5.0-darwin-20110218.tar.bz2 name darwin @@ -896,9 +896,9 @@ archive hash - db7826354e60fb4ae14bf40258c088af + 20546118096e4828d9f29913ec7d954a url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220079/arch/Linux/installer/jsoncpp-0.5.0-linux-20110131.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/221698/arch/Linux/installer/jsoncpp-0.5.0-linux-20110219.tar.bz2 name linux @@ -908,9 +908,9 @@ archive hash - afff2018e6a887c281b072eecdd9343e + 0959e349c4f7c0b33539269502486737 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220579/arch/CYGWIN/installer/jsoncpp-0.5.0-windows-20110208.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/221698/arch/CYGWIN/installer/jsoncpp-0.5.0-windows-20110218.tar.bz2 name windows diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 96488360a4..7c686eff07 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -14,9 +14,9 @@ else (STANDALONE) debug json_vc100debug_libmt.lib optimized json_vc100_libmt) elseif (DARWIN) - set(JSONCPP_LIBRARIES libjson_linux-gcc-4.0.1_libmt.a) + set(JSONCPP_LIBRARIES libjson_darwin_libmt.a) elseif (LINUX) - set(JSONCPP_LIBRARIES libjson_linux-gcc-4.3.2_libmt) + set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt) endif (WINDOWS) set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/json) endif (STANDALONE) -- cgit v1.3 From ece9940bff81ed148d3fc4ec5b23d02a27429180 Mon Sep 17 00:00:00 2001 From: callum Date: Sat, 19 Feb 2011 09:33:49 -0800 Subject: Pull in FreeType 2.4.4 for Windows (built using AutoBuild) --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3cce930f28..5456d2aea8 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -522,9 +522,9 @@ archive hash - f7bd61490e6290b1981538b744919afd + 271349827b939406162ce42e42cd18e0 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/221707/arch/CYGWIN/installer/freetype-2.4.4-windows-20110218.tar.bz2 name windows -- cgit v1.3 From 531de7491b0e73031538dbb9f5dc0dbea8e5f8e2 Mon Sep 17 00:00:00 2001 From: squire Date: Mon, 21 Feb 2011 18:57:54 -0800 Subject: Changes windows build and PNG cmake to reflect latests libpng builds --- autobuild.xml | 4 ++-- indra/cmake/PNG.cmake | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4518ef06ec..f319f9d852 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1004,9 +1004,9 @@ archive hash - dd0e68bde099def37c6a7527673aa672 + 735a955e6442733e2342ab12c1087488 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/221747/arch/CYGWIN/installer/libpng-1.5.1-windows-20110221.tar.bz2 name windows diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index f6522d9e2f..33fc3e5bac 100644 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -8,6 +8,6 @@ if (STANDALONE) include(FindPNG) else (STANDALONE) use_prebuilt_binary(libpng) - set(PNG_LIBRARIES png12) - set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng12) + set(PNG_LIBRARIES libpng15) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) endif (STANDALONE) -- cgit v1.3 From 0130a0801e001225d41493575b7ea3d8682ce949 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Tue, 22 Feb 2011 10:49:32 -0800 Subject: update google_breakpad archive usage on windows. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3cce930f28..65824b8dd0 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -704,9 +704,9 @@ archive hash - 320972cefe728e668b0dc6356eeda58f + 627c51136e14e64c5d39933f3abd3bdf url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/google_breakpad-0.0.0-rev599-windows-20110128.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/220211/arch/CYGWIN/installer/google_breakpad-0.0.0-rev599-windows-20110218.tar.bz2 name windows -- cgit v1.3 From 62feb3b4bcb172f0668aaba9cb27b3387a7c4336 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Tue, 22 Feb 2011 14:54:28 -0800 Subject: windows uses updated ogg-vorbis archive. --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 84cd28d599..8baa4d70a7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1186,7 +1186,7 @@ license ogg-vorbis license_file - LICENSES/ogg.txt + LICENSES/ogg-vorbis.txt name ogg-vorbis platforms @@ -1220,9 +1220,9 @@ archive hash - 61f4987290b90416fdba2cd4c4b2ecf3 + c8fccf7eeb25fd45cb7e04399c0b83ee url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.1.3-1.2.0-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/221801/arch/CYGWIN/installer/ogg_vorbis-1.1.3-1.2.0-windows-20110222.tar.bz2 name windows -- cgit v1.3 From f939b95d0c7b257a67bfc605d0cd590b3f442df8 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Wed, 23 Feb 2011 15:50:03 -0800 Subject: update windows to use new libndofdev and google-mock archives. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8baa4d70a7..c030ee1117 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -718,7 +718,7 @@ license bsd license_file - LICENSES/googlemock.txt + LICENSES/gmock.txt name googlemock platforms @@ -752,9 +752,9 @@ archive hash - ec7f12a339ad8c5628db8f8f8fbfe77f + 5aaee3bbdff61e6e3cd03c7e726aab48 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-mock/rev/221925/arch/CYGWIN/installer/gmock-1.5.0-windows-20110223.tar.bz2 name windows @@ -1138,7 +1138,7 @@ license linden license_file - LICENSES/ndofdev.txt + LICENSES/libndofdev.txt name ndofdev platforms @@ -1172,9 +1172,9 @@ archive hash - 9d4f6c042c27fdab81e00238af7e55f0 + 3a4bec9562ed6ac53e85abcb1afc5fc0 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libndofdev/rev/221922/arch/CYGWIN/installer/libndofdev-0.1-windows-20110223.tar.bz2 name windows -- cgit v1.3 From 1db3f3b5cede4971049a91f5cb99f76fd0952b54 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 24 Feb 2011 12:27:58 -0800 Subject: integrate xmlrpc-epi into windows build. --- autobuild.xml | 6 +++--- indra/cmake/XmlRpcEpi.cmake | 5 ++++- indra/newview/CMakeLists.txt | 2 ++ 3 files changed, 9 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c030ee1117..9b670e5875 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1478,7 +1478,7 @@ license xmlrpc-epi license_file - LICENSES/xmlrpc.txt + LICENSES/xmlrpc-epi.txt name xmlrpc-epi platforms @@ -1512,9 +1512,9 @@ archive hash - ea06e2f1c1ed59a2d2b6cdb6f459d1c0 + 5181d1a8f2516928ac064d72acf164a4 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-windows-20101001a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-xmlrpc-epi/rev/222021/arch/CYGWIN/installer/xmlrpc_epi-0.54.1-windows-20110224.tar.bz2 name windows diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake index 107d1926ba..5bd4848245 100644 --- a/indra/cmake/XmlRpcEpi.cmake +++ b/indra/cmake/XmlRpcEpi.cmake @@ -9,7 +9,10 @@ if (STANDALONE) else (STANDALONE) use_prebuilt_binary(xmlrpc-epi) if (WINDOWS) - set(XMLRPCEPI_LIBRARIES xmlrpcepi) + set(XMLRPCEPI_LIBRARIES + debug xmlrpc-epid + optimized xmlrpc-epi + ) else (WINDOWS) set(XMLRPCEPI_LIBRARIES xmlrpc-epi) endif (WINDOWS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index db029f9de7..1f07af0608 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -10,6 +10,7 @@ include(DirectX) include(OpenSSL) include(DragDrop) include(ELFIO) +include(EXPAT) include(FMOD) include(OPENAL) include(FindOpenGL) @@ -1681,6 +1682,7 @@ target_link_libraries(${VIEWER_BINARY_NAME} ${SMARTHEAP_LIBRARY} ${UI_LIBRARIES} ${WINDOWS_LIBRARIES} + ${EXPAT_LIBRARIES} ${XMLRPCEPI_LIBRARIES} ${ELFIO_LIBRARIES} ${OPENSSL_LIBRARIES} -- cgit v1.3 From d8944cfef3479d1530bd6ec3ad11c0bc46745000 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Thu, 24 Feb 2011 14:07:03 -0800 Subject: Windows uses updated fmod archive and vs2010 compiled kdu archive. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 9b670e5875..59bfd8704d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -426,9 +426,9 @@ archive hash - b9fa0ef683657090ae66663863ebba74 + d9a9a6ad86895353bcd63374a4c1a91d url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/merov_fmod-autobuild/rev/219050/arch/CYGWIN/installer/fmod-3.75-windows-20110113.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/CYGWIN/installer/fmod-3.75-windows-20110222.tar.bz2 name windows @@ -956,9 +956,9 @@ archive hash - 0c7b5596c27f511d4957abe35f7f8dee + 6cd9f36465ef73a3df34bf2b3bba2ced url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-windows-20110113.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/CYGWIN/installer/kdu-6.4.1-windows-20110218.tar.bz2 name windows -- cgit v1.3 From 2c27d432288c4c678ddee0c839576e759d6b3195 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 24 Feb 2011 15:43:50 -0800 Subject: update to fixed debug google-mock archive. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 59bfd8704d..d407f565d9 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -752,9 +752,9 @@ archive hash - 5aaee3bbdff61e6e3cd03c7e726aab48 + 212701468920519f3989677cea9ca4f1 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-mock/rev/221925/arch/CYGWIN/installer/gmock-1.5.0-windows-20110223.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-mock/rev/222036/arch/CYGWIN/installer/gmock-1.5.0-windows-20110224.tar.bz2 name windows -- cgit v1.3 From b1787a19d37b831de5465c0b0f3b7abd42d99afb Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 24 Feb 2011 21:40:18 -0500 Subject: change to canonical build of the pth lib --- autobuild.xml | 110 ++++++++++++++++++++++++++++------------------------------ 1 file changed, 53 insertions(+), 57 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ec332a81bb..4589ad3076 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1380,9 +1380,9 @@ archive hash - d47d121c8eaed4ac6d8253ceda23b5c9 + 320820c5a886f8daf366ba5fcd264b34 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pth/rev/222035/arch/Darwin/installer/pth-2.0.7-darwin-20110224.tar.bz2 name darwin @@ -1658,29 +1658,6 @@ name OpenSourceRelWithDebInfo - - VCexpressRelWithDebInfo - - configure - - arguments - - ../indra - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - VCexpressRelWithDebInfo - - OpenSourceRelease configure @@ -1813,6 +1790,27 @@ name Release + VCexpressRelWithDebInfo + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + VCexpressRelWithDebInfo + name common @@ -2425,38 +2423,6 @@ name OpenSourceRelWithDebInfo - - VCexpressRelWithDebInfo - - build - - arguments - - "RelWithDebInfo|Win32" - - command - vcbuild.exe - options - - /u - SecondLife.sln - - - configure - - options - - -G - "Visual Studio 8 2005" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - VCexpressRelWithDebInfo - - OpenSourceRelease build @@ -2639,6 +2605,36 @@ name Release + VCexpressRelWithDebInfo + + build + + arguments + + "RelWithDebInfo|Win32" + + command + vcbuild.exe + options + + /u + SecondLife.sln + + + configure + + options + + -G + "Visual Studio 8 2005" + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + VCexpressRelWithDebInfo + name windows -- cgit v1.3 From 7f00a037ee61de0573f00b33ab637794387b2b64 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Fri, 25 Feb 2011 12:36:17 -0500 Subject: update to TeamCity build from https://bitbucket.org/lindenlab/3p-elfio --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4589ad3076..b575eeeb6c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -330,9 +330,9 @@ archive hash - d931e16a382aa3a5c99a8dea6b5f8391 + 031e6315a5c0829c9b9a2ec18aeb7ae3 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/elfio-1.0.3-linux-20101013.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-elfio/rev/222074/arch/Linux/installer/elfio-1.0.3-linux-20110225.tar.bz2 name linux -- cgit v1.3 From 88f507f9ccae33a3fa9b3706a96af5c87db804b5 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Tue, 1 Mar 2011 15:32:35 -0800 Subject: fixes to get openal working on windows. --- autobuild.xml | 12 ++++++++++++ indra/cmake/OPENAL.cmake | 14 +++++++++++--- indra/llaudio/llaudioengine_openal.cpp | 2 ++ indra/llaudio/llaudioengine_openal.h | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8dd2f91718..819bc27c1e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1301,6 +1301,18 @@ name linux + windows + + archive + + hash + 04df406f3e5d04cf176660bdac66c3a1 + url + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openal/rev/222391/arch/CYGWIN/installer/openal-1.12.854-1.1.0-windows-20110301.tar.bz2 + + name + windows + version 3ad86a1c diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake index ed483e5aea..a3e1fb924e 100644 --- a/indra/cmake/OPENAL.cmake +++ b/indra/cmake/OPENAL.cmake @@ -9,6 +9,7 @@ else (LINUX) endif (LINUX) if (OPENAL) + set(OPENAL_LIB_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/AL") if (STANDALONE) include(FindPkgConfig) include(FindOpenAL) @@ -17,10 +18,17 @@ if (OPENAL) else (STANDALONE) use_prebuilt_binary(openal_soft) endif (STANDALONE) - set(OPENAL_LIBRARIES - openal - alut + if(WINDOWS) + set(OPENAL_LIBRARIES + OpenAL32 + alut ) + else() + set(OPENAL_LIBRARIES + openal + alut + ) + endif() endif (OPENAL) if (OPENAL) diff --git a/indra/llaudio/llaudioengine_openal.cpp b/indra/llaudio/llaudioengine_openal.cpp index e352045291..34a057dcc0 100644 --- a/indra/llaudio/llaudioengine_openal.cpp +++ b/indra/llaudio/llaudioengine_openal.cpp @@ -32,6 +32,8 @@ #include "lllistener_openal.h" +const float LLAudioEngine_OpenAL::WIND_BUFFER_SIZE_SEC = 0.05f; + LLAudioEngine_OpenAL::LLAudioEngine_OpenAL() : mWindGen(NULL), diff --git a/indra/llaudio/llaudioengine_openal.h b/indra/llaudio/llaudioengine_openal.h index 258febb1a8..6639d9dfe6 100644 --- a/indra/llaudio/llaudioengine_openal.h +++ b/indra/llaudio/llaudioengine_openal.h @@ -67,7 +67,7 @@ class LLAudioEngine_OpenAL : public LLAudioEngine int mNumEmptyWindALBuffers; static const int MAX_NUM_WIND_BUFFERS = 80; - static const float WIND_BUFFER_SIZE_SEC = 0.05f; // 1/20th sec + static const float WIND_BUFFER_SIZE_SEC; // 1/20th sec }; class LLAudioChannelOpenAL : public LLAudioChannel -- cgit v1.3 From 7093503e26e48b25f6e1ae251dab89191fce8d9f Mon Sep 17 00:00:00 2001 From: Jennifer Leech Date: Tue, 1 Mar 2011 19:54:17 -0800 Subject: Attempting to configure VS2010 to only use one processor core to troubleshoot conflict with TC. --- autobuild.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 819bc27c1e..7ff756dc7e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1961,6 +1961,7 @@ /build "/cfg=Release|Win32" + "/CL_ADD="/m:1"" configure -- cgit v1.3 From 9256402b065acdabc63f76bd71c938edbf65dde2 Mon Sep 17 00:00:00 2001 From: Jennifer Leech Date: Wed, 2 Mar 2011 00:31:38 -0800 Subject: Attempting to modify quoting of build options string to see if this corrects failure to run BuildConsole on TC. --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7ff756dc7e..5ad24958c1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1961,7 +1961,7 @@ /build "/cfg=Release|Win32" - "/CL_ADD="/m:1"" + "/CL_ADD=/m:1" configure -- cgit v1.3 From 899d0d6282c9efa0a16e19b3a5c16389d287ec6b Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Wed, 2 Mar 2011 17:49:59 +0000 Subject: update to jsoncpp built with gcc4.1 --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 5456d2aea8..b65c8fe914 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -896,9 +896,9 @@ archive hash - db7826354e60fb4ae14bf40258c088af + 20546118096e4828d9f29913ec7d954a url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220079/arch/Linux/installer/jsoncpp-0.5.0-linux-20110131.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/221698/arch/Linux/installer/jsoncpp-0.5.0-linux-20110219.tar.bz2 name linux -- cgit v1.3 From 99ba5e2670d04baf641c6d612f253a46f857769e Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Wed, 2 Mar 2011 21:28:26 +0000 Subject: revert to old jsoncpp library on linux to fix build. --- autobuild.xml | 4 ++-- indra/cmake/JsonCpp.cmake | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index b522878671..d9bfe77caa 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -896,9 +896,9 @@ archive hash - 20546118096e4828d9f29913ec7d954a + 7e6b2fc7ad4e12d94d01cc49c22c6f67 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/221698/arch/Linux/installer/jsoncpp-0.5.0-linux-20110219.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-linux-20101013.tar.bz2 name linux diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 96488360a4..9024fa92a7 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -16,7 +16,7 @@ else (STANDALONE) elseif (DARWIN) set(JSONCPP_LIBRARIES libjson_linux-gcc-4.0.1_libmt.a) elseif (LINUX) - set(JSONCPP_LIBRARIES libjson_linux-gcc-4.3.2_libmt) + set(JSONCPP_LIBRARIES libjsoncpp.a) endif (WINDOWS) - set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/json) + set(JSONCPP_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/jsoncpp" "${LIBS_PREBUILT_DIR}/include/json") endif (STANDALONE) -- cgit v1.3 From f680c91a09a4d0560fd8e1065b4427afc3c6e3f3 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Wed, 2 Mar 2011 14:50:49 -0800 Subject: update openjpeg package usage for windows. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 819bc27c1e..a6d594a6b5 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1356,9 +1356,9 @@ archive hash - 039c65405b2bea7c1bf67cfeb15a67fe + ca5765af55f798724d601720afdf6953 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3-windows-20101001b.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openjpeg/rev/222548/arch/CYGWIN/installer/openjpeg-1.4-windows-20110302.tar.bz2 name windows -- cgit v1.3 From 149ace0b1f3f9bb6394aec367da5748bc092ef7a Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Thu, 3 Mar 2011 11:28:06 -0800 Subject: Autobuild : points to the corrected pth package for Mac --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index b575eeeb6c..a09ebc8982 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1380,9 +1380,9 @@ archive hash - 320820c5a886f8daf366ba5fcd264b34 + 2172379794217d0ffba0db09b2ac17bf url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pth/rev/222035/arch/Darwin/installer/pth-2.0.7-darwin-20110224.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pth/rev/222617/arch/Darwin/installer/pth-2.0.7-darwin-20110303.tar.bz2 name darwin -- cgit v1.3 From 9bd9a556087fa1fc2dc68ed807a55c4a35ffc622 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 3 Mar 2011 14:42:48 -0800 Subject: hacky addition of VSTool postprocessing to set startup project and default configuration. --- autobuild.xml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a090833b51..abffc9fe28 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1904,6 +1904,14 @@ arguments ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Debug + --startup + secondlife-bin options @@ -1935,6 +1943,14 @@ arguments ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + RelWithDebInfo + --startup + secondlife-bin options @@ -1961,7 +1977,7 @@ /build "/cfg=Release|Win32" - "/CL_ADD=/m:1" + "/CL_ADD=/m:1" configure @@ -1969,6 +1985,14 @@ arguments ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Release + --startup + secondlife-bin options -- cgit v1.3 From 58e5c8476dfd30f8d303ce5a60db872066008b83 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Thu, 3 Mar 2011 16:15:08 -0800 Subject: update to use new GL archive (includes only headers; that's all that is needed) --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index abffc9fe28..1090453e05 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -42,9 +42,9 @@ archive hash - a94538d064cd0a235b2a95389e7e8ee8 + f8d98cbe78d5aafbc7aaabf840325aaf url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-windows-20101001a.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-0.0.0-windows-20110303.tar.bz2 name windows -- cgit v1.3 From fb8a2aa572624bd49fcbe899ba705c4f9d3ce256 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 3 Mar 2011 16:51:21 -0800 Subject: imported patch mac_archives --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 1090453e05..5851fc3221 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -90,9 +90,9 @@ archive hash - 4e9cd47faf1e74e1a5bf386dc55dd47e + 9868bfa0b6954e4884c49c6f30068c80 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.3.7-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/221588/arch/Darwin/installer/apr_suite-1.4.2-darwin-20110217.tar.bz2 name darwin -- cgit v1.3 From 7285dd9e42ffd58ea51335de96eadadb652f6b49 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Fri, 4 Mar 2011 14:49:20 -0800 Subject: ares, boost, expat, freetype archives updated to latest builds. --- autobuild.xml | 16 ++++++++-------- indra/cmake/APR.cmake | 4 ++-- indra/cmake/Boost.cmake | 10 +++++----- indra/cmake/Copy3rdPartyLibs.cmake | 6 +++--- indra/newview/viewer_manifest.py | 12 ++++++------ 5 files changed, 24 insertions(+), 24 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 5851fc3221..17bb0e91ce 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -138,9 +138,9 @@ archive hash - 577e89e72a6df485ee0c42ef7bfd8c34 + e6caaeea16131e1f2343ecd7765e3147 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/220963/arch/Darwin/installer/ares-1.7.1-darwin-20110217.tar.bz2 name darwin @@ -186,9 +186,9 @@ archive hash - 3a8b4bc2ea3dde26c2a7e1481f039864 + d98078791ce345bf6168ce9ba53ca2d7 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/222752/arch/Darwin/installer/boost-1.45.0-darwin-20110304.tar.bz2 name darwin @@ -354,9 +354,9 @@ archive hash - 594e0d61d115ab06ca11bc84d374d23a + 180e03d0be1f1acfc3244e78742d7bef url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-expat/rev/221695/arch/Darwin/installer/expat-2.0.1-darwin-20110218.tar.bz2 name darwin @@ -498,9 +498,9 @@ archive hash - 753021e66345612b4fc77c711b426f11 + 3e7e133f1fa61d9acabdf01f5494209e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/222716/arch/Darwin/installer/freetype-2.4.4-darwin-20110304.tar.bz2 name darwin diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake index 5b31b0d237..daafa00fe2 100644 --- a/indra/cmake/APR.cmake +++ b/indra/cmake/APR.cmake @@ -32,8 +32,8 @@ else (STANDALONE) ) elseif (DARWIN) if (LLCOMMON_LINK_SHARED) - set(APR_selector "0.3.7.dylib") - set(APRUTIL_selector "0.3.8.dylib") + set(APR_selector "0.dylib") + set(APRUTIL_selector "0.dylib") else (LLCOMMON_LINK_SHARED) set(APR_selector "a") set(APRUTIL_selector "a") diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index b9c047a764..67dc9f0891 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -50,11 +50,11 @@ else (STANDALONE) debug libboost_filesystem-vc100-mt-gd-${BOOST_VERSION}) endif (MSVC80) elseif (DARWIN) - set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-xgcc40-mt) - set(BOOST_REGEX_LIBRARY boost_regex-xgcc40-mt) - set(BOOST_SIGNALS_LIBRARY boost_signals-xgcc40-mt) - set(BOOST_SYSTEM_LIBRARY boost_system-xgcc40-mt) - set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-xgcc40-mt) + set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options) + set(BOOST_REGEX_LIBRARY boost_regex) +# set(BOOST_SIGNALS_LIBRARY boost_signals) + set(BOOST_SYSTEM_LIBRARY boost_system) + set(BOOST_FILESYSTEM_LIBRARY boost_filesystem) elseif (LINUX) set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-gcc41-mt) set(BOOST_REGEX_LIBRARY boost_regex-gcc41-mt) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 0c65229afc..43b0347aa9 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -200,11 +200,11 @@ elseif(DARWIN) ) set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files - libapr-1.0.3.7.dylib + libapr-1.0.dylib libapr-1.dylib - libaprutil-1.0.3.8.dylib + libaprutil-1.0.dylib libaprutil-1.dylib - libexpat.0.5.0.dylib + libexpat.1.5.2.dylib libexpat.dylib libllqtwebkit.dylib libndofdev.dylib diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 3e09b9daa0..9be3aa709b 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -636,9 +636,9 @@ class DarwinManifest(ViewerManifest): dylibs[lib] = True if dylibs["llcommon"]: - for libfile in ("libapr-1.0.3.7.dylib", - "libaprutil-1.0.3.8.dylib", - "libexpat.0.5.0.dylib", + for libfile in ("libapr-1.0.dylib", + "libaprutil-1.0.dylib", + "libexpat.1.5.2.dylib", "libexception_handler.dylib", ): self.path(os.path.join(libdir, libfile), libfile) @@ -667,9 +667,9 @@ class DarwinManifest(ViewerManifest): mac_updater_res_path = self.dst_path_of("mac-updater.app/Contents/Resources") slplugin_res_path = self.dst_path_of("SLPlugin.app/Contents/Resources") for libfile in ("libllcommon.dylib", - "libapr-1.0.3.7.dylib", - "libaprutil-1.0.3.8.dylib", - "libexpat.0.5.0.dylib", + "libapr-1.0.dylib", + "libaprutil-1.0.dylib", + "libexpat.1.5.2.dylib", "libexception_handler.dylib", ): target_lib = os.path.join('../../..', libfile) -- cgit v1.3 From 006674447a3f082ee2e352bc8a201929ad677897 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 09:50:05 -0800 Subject: update darwin freetype archive. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 17bb0e91ce..1b7627fb37 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -498,9 +498,9 @@ archive hash - 3e7e133f1fa61d9acabdf01f5494209e + c0eacb6348e032fbc69cfdc4bd215ee4 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/222716/arch/Darwin/installer/freetype-2.4.4-darwin-20110304.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/222819/arch/Darwin/installer/freetype-2.4.4-darwin-20110307.tar.bz2 name darwin -- cgit v1.3 From 7587b1b3bbcd2c395729d6a203c45e754dd746bf Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 10:43:18 -0800 Subject: update mac google_breakpad archive. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 1b7627fb37..f808339a49 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -692,9 +692,9 @@ archive hash - 239e5be637bb6282a297a8636ef3c77e + 21babc394dbf8572830f2e85adec7b9f url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110119a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/220211/arch/Darwin/installer/google_breakpad-0.0.0-rev599-darwin-20110202.tar.bz2 name linux -- cgit v1.3 From 33927b8451bde10feeda0fc3d3c478b79ef2e0e2 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 11:44:51 -0800 Subject: update libpng and jpeglib archives for mac. --- autobuild.xml | 8 ++++---- indra/cmake/JPEG.cmake | 2 +- indra/cmake/PNG.cmake | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f808339a49..37388a8fa4 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -836,9 +836,9 @@ archive hash - d94de5a98492018144b95a8022ed4e44 + 71bd6efbf508e1f2e7d98a6195a93e9e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/222232/arch/Darwin/installer/jpeglib-8c-darwin-20110228.tar.bz2 name darwin @@ -980,9 +980,9 @@ archive hash - 4aa623811aff42df702e8d3fdd848ac3 + 6fe1adf12d98bce9111f60ee762007b9 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/221851/arch/Darwin/installer/libpng-1.5.1-darwin-20110222.tar.bz2 name darwin diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake index 0f0bbb9564..4f99efd602 100644 --- a/indra/cmake/JPEG.cmake +++ b/indra/cmake/JPEG.cmake @@ -12,7 +12,7 @@ else (STANDALONE) if (LINUX) set(JPEG_LIBRARIES jpeg) elseif (DARWIN) - set(JPEG_LIBRARIES lljpeg) + set(JPEG_LIBRARIES jpeg) elseif (WINDOWS) set(JPEG_LIBRARIES jpeglib) endif (LINUX) diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index 86b7267494..60f749869a 100644 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -11,6 +11,9 @@ else (STANDALONE) if (WINDOWS) set(PNG_LIBRARIES libpng15) set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) + elseif(DARWIN) + set(PNG_LIBRARIES png15) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) else() set(PNG_LIBRARIES png12) set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng12) -- cgit v1.3 From 12c2fd2ef051ca922f0d3076bc8160820980b6e2 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 14:23:09 -0800 Subject: update ogg-vorbis archive usage for darwin. --- autobuild.xml | 4 ++-- indra/llaudio/llaudiodecodemgr.cpp | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 37388a8fa4..0736a6afca 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1196,9 +1196,9 @@ archive hash - 510c88fb183556b8c5fba25eb0c3d85e + 57f32a1a670f06a4dc036eb1164ad9d7 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.03-1.1.2-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/221801/arch/Darwin/installer/ogg_vorbis-1.1.3-1.2.0-darwin-20110222.tar.bz2 name darwin diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index 01dfd03c18..84105ddfca 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -680,4 +680,10 @@ BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid) return FALSE; } - +#ifdef LL_DARWIN +// HACK: to fool the compiler into not emitting unused warnings. +namespace { + const ov_callbacks callback_array[4] = {OV_CALLBACKS_DEFAULT, OV_CALLBACKS_NOCLOSE, OV_CALLBACKS_STREAMONLY, + OV_CALLBACKS_STREAMONLY_NOCLOSE}; +} +#endif -- cgit v1.3 From d9715317b17152c445f6c5933fbeb2c1e0900bba Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 14:54:50 -0800 Subject: update openSSL archive usage for darwin. --- autobuild.xml | 4 ++-- indra/cmake/OpenSSL.cmake | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 0736a6afca..aa3414efc5 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1244,9 +1244,9 @@ archive hash - 9cf8e84cb91996616cf627ad18c85442 + facee34b8bd57ad602157e65a5af1a49 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8l-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220986/arch/Darwin/installer/openssl-0.9.8q-darwin-20110211.tar.bz2 name darwin diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index c692b67b49..5982ee9a49 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -19,5 +19,5 @@ endif (STANDALONE) if (LINUX) set(CRYPTO_LIBRARIES crypto) elseif (DARWIN) - set(CRYPTO_LIBRARIES llcrypto) + set(CRYPTO_LIBRARIES crypto) endif (LINUX) -- cgit v1.3 From e77de9352985079635af4f8f1e18d4ee218d18e7 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 15:09:15 -0800 Subject: update openjpeg archive usage for darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index aa3414efc5..061eec49fe 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1332,9 +1332,9 @@ archive hash - 972088359b9472a3baf4dda695cbda44 + 4be51c7cca7d84831e30b63279df7ae5 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3.0-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openjpeg/rev/222548/arch/Darwin/installer/openjpeg-1.4-darwin-20110302.tar.bz2 name darwin -- cgit v1.3 From 64293a808c9d0d7cae5a0a7aa916c037bc3e3d58 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 15:21:47 -0800 Subject: update pth archive usage for darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 061eec49fe..2e6c503554 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1380,9 +1380,9 @@ archive hash - d47d121c8eaed4ac6d8253ceda23b5c9 + 2172379794217d0ffba0db09b2ac17bf url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pth/rev/222617/arch/Darwin/installer/pth-2.0.7-darwin-20110303.tar.bz2 name darwin -- cgit v1.3 From d107e4b0a760778ee298f988e112b46dacaa4579 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 16:08:56 -0800 Subject: update xmlrpc-epi archive for darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2e6c503554..7c709d7ee9 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1500,9 +1500,9 @@ archive hash - 994193ab308ac40994421ca411249b65 + a3e0fb4b4a51b01690a99747a1cca531 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-xmlrpc-epi/rev/222889/arch/Darwin/installer/xmlrpc_epi-0.54.1-darwin-20110307.tar.bz2 name darwin -- cgit v1.3 From 1f4630a967db381a96b13ad448d29b340b062ef5 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 16:18:09 -0800 Subject: updating zlib archive for darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7c709d7ee9..a8dc98c6c2 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1548,9 +1548,9 @@ archive hash - 3d1b42e6c3fcfebe00c6b87a0228c0ab + 49b8de20f3bb43537f51311894a72de1 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.1.4-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-zlib/rev/220983/arch/Darwin/installer/zlib-1.2.5-darwin-20110211.tar.bz2 name darwin -- cgit v1.3 From 3ebe0dd12bef7e3443ec98c56203f6ed2e850687 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 7 Mar 2011 16:35:08 -0800 Subject: Backed out changeset 7f3922c6bbc4 -- updated linux by mistake. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f808339a49..1b7627fb37 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -692,9 +692,9 @@ archive hash - 21babc394dbf8572830f2e85adec7b9f + 239e5be637bb6282a297a8636ef3c77e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/220211/arch/Darwin/installer/google_breakpad-0.0.0-rev599-darwin-20110202.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110119a.tar.bz2 name linux -- cgit v1.3 From a60bf285b8fcfc3c00d1c96315db5cb6f236bee2 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 8 Mar 2011 09:18:44 -0800 Subject: really update google_breakpad archive usage for darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 513cb76b5f..3a15dfe391 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -680,9 +680,9 @@ archive hash - 5937f12de19ce4fa394048f22557b6c5 + 21babc394dbf8572830f2e85adec7b9f url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-darwin-20110119.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/220211/arch/Darwin/installer/google_breakpad-0.0.0-rev599-darwin-20110202.tar.bz2 name darwin -- cgit v1.3 From b1a71cbcd2a5ea524357f5c64fb3fafce067d85f Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 8 Mar 2011 11:02:10 -0800 Subject: update fmod and kdu archive usage for mac. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3a15dfe391..9fd3430cff 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -402,9 +402,9 @@ archive hash - 4521b86ff92c3843e47a58b38e76e667 + 61ead113e6479452e6b690c84b4e9d30 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-darwin-20101004.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Darwin/installer/fmod-3.75-darwin-20110222.tar.bz2 name darwin @@ -932,9 +932,9 @@ archive hash - 408f1375f5a4d864cfb47b36c8ab6052 + d91e1f483209cd3eba04135c6a59e829 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-darwin-20110112.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/Darwin/installer/kdu-6.4.1-darwin-20110218.tar.bz2 name darwin -- cgit v1.3 From 49698a49de7840783ac12c6c6ccebedd686537f4 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 8 Mar 2011 14:14:57 -0800 Subject: update llqtwebkit usage on darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 9fd3430cff..cb55ea3564 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1076,9 +1076,9 @@ archive hash - d3890220418a66607569fe406ebe24c7 + 0326cb770c7ff995cf822fb330ae9d0c url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-darwin-20110113.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/223111/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110308.tar.bz2 name darwin -- cgit v1.3 From eddf24a00fac10a5c2928b9797393cab8a547971 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 9 Mar 2011 08:58:52 -0800 Subject: update ndofdev archive usage on darwin. --- autobuild.xml | 4 ++-- indra/newview/viewer_manifest.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index cb55ea3564..9cbf89d7db 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1148,9 +1148,9 @@ archive hash - d56bb37233e6f1308fb0a5b8e37a2429 + 674d37d2ba76a2df7f18c47bf50b5d03 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libndofdev/rev/223177/arch/Darwin/installer/libndofdev-0.1-darwin-20110308.tar.bz2 name darwin diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 9be3aa709b..cf7ece2284 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -574,7 +574,7 @@ class DarwinManifest(ViewerManifest): self.path("Info-SecondLife.plist", dst="Info.plist") # copy additional libs in /Contents/MacOS/ - self.path("../packages/lib/release/libndofdev.dylib", dst="MacOS/libndofdev.dylib") + self.path("../packages/lib/release/libndofdev.dylib", dst="Resources/libndofdev.dylib") self.path("../viewer_components/updater/scripts/darwin/update_install", "MacOS/update_install") -- cgit v1.3 From fb86600a33adeb744b877959cafe4d1d063f662b Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 9 Mar 2011 09:26:12 -0800 Subject: update glui archive for darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 9cbf89d7db..13f67dd01a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -594,9 +594,9 @@ archive hash - c3bfca7ad2eb90ea33f3fd6f974ca394 + 2bb7adabbd1fe2c7f99ddc4240842cc4 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-darwin-20101004.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glui/rev/221069/arch/Darwin/installer/glui-2.36-darwin-20110309.tar.bz2 name darwin -- cgit v1.3 From 4947062236f9abe280beac8ba8abea22f3d1d226 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Thu, 10 Mar 2011 00:48:20 +0000 Subject: update apr and sdl archives for linux; added new archive db (needed for linux only). --- autobuild.xml | 34 +++++++++++++++++++++++++++++----- indra/cmake/BerkeleyDB.cmake | 3 ++- indra/cmake/Copy3rdPartyLibs.cmake | 2 +- indra/cmake/LLWindow.cmake | 2 +- indra/newview/viewer_manifest.py | 5 ++++- 5 files changed, 37 insertions(+), 9 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 513cb76b5f..59d72cb9b6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -66,9 +66,9 @@ archive hash - 1bd5be9e91ae1ae4a1cfa7649890f72b + 69ae3b1c9cdb0ebc0d0e1ac8413e3eb7 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/SDL-1.2.12-linux-20101001.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-sdl/rev/223253/arch/Linux/installer/SDL-1.2.14-linux-20110309.tar.bz2 name linux @@ -102,9 +102,9 @@ archive hash - ae785a90f124aa572515fc7b97efc671 + ff62946c518a247c86e1066c1e9a5855 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.2.8-linux-20100930.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/223260/arch/Linux/installer/apr_suite-1.4.2-linux-20110309.tar.bz2 name linux @@ -267,6 +267,30 @@ + db + + license + bsd + license_file + LICENSES/db.txt + name + db + platforms + + linux + + archive + + hash + 8f57c413e0786681cbcb9ed2fb8a6d37 + url + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-db/rev/223263/arch/Linux/installer/db-5.1.25-linux-20110309.tar.bz2 + + name + linux + + + dbghelp license @@ -1977,7 +2001,7 @@ /build "/cfg=Release|Win32" - "/CL_ADD=/m:1" + "/CL_ADD=/m:1" configure diff --git a/indra/cmake/BerkeleyDB.cmake b/indra/cmake/BerkeleyDB.cmake index e3ca0fd77d..57b53f46ff 100644 --- a/indra/cmake/BerkeleyDB.cmake +++ b/indra/cmake/BerkeleyDB.cmake @@ -8,7 +8,8 @@ if (STANDALONE) else (STANDALONE) if (LINUX) # Need to add dependency pthread explicitely to support ld.gold. - set(DB_LIBRARIES db-4.2 pthread) + use_prebuilt_binary(db) + set(DB_LIBRARIES db-5.1 pthread) else (LINUX) set(DB_LIBRARIES db-4.2) endif (LINUX) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 43b0347aa9..81ce7852ff 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -245,7 +245,7 @@ elseif(LINUX) libatk-1.0.so libbreakpad_client.so.0 libcrypto.so.0.9.7 - libdb-4.2.so + libdb-5.1.so libexpat.so libexpat.so.1 libgmock_main.so diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake index a5b9cf47a4..b4bb9a078a 100644 --- a/indra/cmake/LLWindow.cmake +++ b/indra/cmake/LLWindow.cmake @@ -18,7 +18,7 @@ else (STANDALONE) use_prebuilt_binary(SDL) set (SDL_FOUND TRUE) set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux) - set (SDL_LIBRARY SDL) + set (SDL_LIBRARY SDL directfb fusion direct) endif (LINUX AND VIEWER) endif (STANDALONE) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 9be3aa709b..68038121a0 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -934,12 +934,15 @@ class Linux_i686Manifest(LinuxManifest): self.path("libapr-1.so.0") self.path("libaprutil-1.so.0") self.path("libbreakpad_client.so.0.0.0", "libbreakpad_client.so.0") - self.path("libdb-4.2.so") + self.path("libdb-5.1.so") self.path("libcrypto.so.0.9.7") self.path("libexpat.so.1") self.path("libssl.so.0.9.7") self.path("libuuid.so.1") self.path("libSDL-1.2.so.0") + self.path("libdirectfb-1.4.so.5") + self.path("libfusion-1.4.so.5") + self.path("libdirect-1.4.so.5") self.path("libELFIO.so") self.path("libopenjpeg.so.1.3.0", "libopenjpeg.so.1.3") self.path("libalut.so") -- cgit v1.3 From 871677dc0bb391f05c3dadd34e7a41eec241e413 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Thu, 10 Mar 2011 01:31:40 +0000 Subject: ares archive updated for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 0a8742d99a..0e7a6b8ee3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -150,9 +150,9 @@ archive hash - 3bf8f0f3c960cc594b2315b986b948fb + 0745872db83d45f4ab3bdc697d98e264 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/223275/arch/Linux/installer/ares-1.7.1-linux-20110310.tar.bz2 name linux -- cgit v1.3 From acec15e723c066efc6eb1e38c98b7af4e9993809 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Thu, 10 Mar 2011 17:53:15 +0000 Subject: update boost archive usage for linux. --- autobuild.xml | 4 ++-- indra/cmake/Boost.cmake | 9 +-------- 2 files changed, 3 insertions(+), 10 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 0e7a6b8ee3..c85a273a99 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -198,9 +198,9 @@ archive hash - cb7cbafb06b878adf423db314b1787df + a34e7fffdb94a6a4d8a2966b1f216da3 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-linux-20100929a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/223302/arch/Linux/installer/boost-1.45.0-linux-20110310.tar.bz2 name linux diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 67dc9f0891..2135f0584c 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -49,17 +49,10 @@ else (STANDALONE) optimized libboost_filesystem-vc100-mt-${BOOST_VERSION} debug libboost_filesystem-vc100-mt-gd-${BOOST_VERSION}) endif (MSVC80) - elseif (DARWIN) + elseif (DARWIN OR LINUX) set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options) set(BOOST_REGEX_LIBRARY boost_regex) -# set(BOOST_SIGNALS_LIBRARY boost_signals) set(BOOST_SYSTEM_LIBRARY boost_system) set(BOOST_FILESYSTEM_LIBRARY boost_filesystem) - elseif (LINUX) - set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-gcc41-mt) - set(BOOST_REGEX_LIBRARY boost_regex-gcc41-mt) - set(BOOST_SIGNALS_LIBRARY boost_signals-gcc41-mt) - set(BOOST_SYSTEM_LIBRARY boost_system-gcc41-mt) - set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-gcc41-mt) endif (WINDOWS) endif (STANDALONE) -- cgit v1.3 From 33fbb63227fb131d7a161f6fbde142a800995b73 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Thu, 10 Mar 2011 19:05:10 +0000 Subject: update curl archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c85a273a99..df0e8047e4 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -246,9 +246,9 @@ archive hash - 49d4ac6773a585ad13190746db1e6e85 + 65ca0a9b42de855ea574e454ec2e14c3 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219379/arch/Linux/installer/curl-7.21.1-linux-20110121.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/220996/arch/Linux/installer/curl-7.21.1-linux-20110308.tar.bz2 name linux -- cgit v1.3 From 4a8e5d9df9c21884d172741d3a5aec7d94f3914f Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Thu, 10 Mar 2011 21:51:13 +0000 Subject: update dbusglib archive for linux. --- autobuild.xml | 6 +++--- indra/cmake/DBusGlib.cmake | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index df0e8047e4..d5ee780629 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -320,7 +320,7 @@ license AFL2.1 license_file - LICENSES/dbusglib.txt + LICENSES/dbus-glib.txt name dbusglib platforms @@ -330,9 +330,9 @@ archive hash - bb9734fb6ae797e3fa34af1a4ef1ee7d + 94b058b9a81114dc4567bd78e4335425 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbusglib-linux-20101013.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbus_glib-0.76-linux-20110310.tar.bz2 name linux diff --git a/indra/cmake/DBusGlib.cmake b/indra/cmake/DBusGlib.cmake index 33c6343a93..83c08d3350 100644 --- a/indra/cmake/DBusGlib.cmake +++ b/indra/cmake/DBusGlib.cmake @@ -10,7 +10,7 @@ elseif (LINUX) use_prebuilt_binary(dbusglib) set(DBUSGLIB_FOUND ON FORCE BOOL) set(DBUSGLIB_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/include/glib-2.0 + ${LIBS_PREBUILT_DIR}/include/dbus ) # We don't need to explicitly link against dbus-glib itself, because # the viewer probes for the system's copy at runtime. -- cgit v1.3 From f3c54b503a8b2c55dd97e7741f917c972640fc50 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Thu, 10 Mar 2011 22:55:22 +0000 Subject: update expat archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d5ee780629..8ca816db63 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -390,9 +390,9 @@ archive hash - 7c334794bba026685f967734ca963c85 + 9bd79781b58e556ab1c36084ec4a1c0c url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-expat/rev/221695/arch/Linux/installer/expat-2.0.1-linux-20110219.tar.bz2 name linux -- cgit v1.3 From 2ed71097ab67f84b67e575fbcbf790a1a8c56f6d Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 00:16:23 +0000 Subject: fmod archive updated for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8ca816db63..89dcadbcce 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -438,9 +438,9 @@ archive hash - 221ec16b66ea2b0d1acb3247ad984bc4 + 0c61d643db54d2e5999be8254569d8b3 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-linux-20100929.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Linux/installer/fmod-3.75-linux-20110223.tar.bz2 name linux -- cgit v1.3 From 353c54d6682614ad62d73ace66146602d6682584 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 00:27:44 +0000 Subject: update fontconfig archive for linux. --- autobuild.xml | 4 ++-- indra/cmake/Copy3rdPartyLibs.cmake | 1 + indra/newview/viewer_manifest.py | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 89dcadbcce..c326023c51 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -474,9 +474,9 @@ archive hash - 9ebba6e0a1730992fa0643566f4e23cf + d8b08b657247566bde5fd853c7622478 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fontconfig-2.2.3-linux-20100930.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-fontconfig/rev/223389/arch/Linux/installer/fontconfig-2.8.0-linux-20110311.tar.bz2 name linux diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 81ce7852ff..c942fafabd 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -261,6 +261,7 @@ elseif(LINUX) libtcmalloc.so libuuid.so.1 libssl.so.0.9.7 + libfontconfig.so.1.4.4 ) if (FMOD) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index dd347c2778..055bff378d 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -947,6 +947,7 @@ class Linux_i686Manifest(LinuxManifest): self.path("libalut.so") self.path("libopenal.so", "libopenal.so.1") self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname + self.path("libfontconfig.so.1.4.4") try: self.path("libfmod-3.75.so") pass -- cgit v1.3 From 44543756d8b7a9adbaa194697b2ca45e798e1406 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 00:35:10 +0000 Subject: update freetype archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c326023c51..bf3c9aa125 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -534,9 +534,9 @@ archive hash - a13ec6354d3a8a4576efcce895a74ceb + 9b58d1a9c15807a1301e42a313641010 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-linux-2010-02-19a-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/223377/arch/Linux/installer/freetype-2.4.4-linux-20110310.tar.bz2 name linux -- cgit v1.3 From 8c310339e281bc7344e6c7a7eb55cf5baa5debb4 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 01:39:18 +0000 Subject: update google_breakpad archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index bf3c9aa125..ccab09a7ef 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -716,9 +716,9 @@ archive hash - 239e5be637bb6282a297a8636ef3c77e + 204b02a9480c411232255798839431a2 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110119a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/223427/arch/Linux/installer/google_breakpad-0.0.0-rev599-linux-20110311.tar.bz2 name linux -- cgit v1.3 From 9603d73f1f0b13775aa50c08ca04d7711508f533 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 19:32:18 +0000 Subject: update jpeglib archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ccab09a7ef..155810452c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -872,9 +872,9 @@ archive hash - a059a32904c1c7f47804d744ac2d4925 + fa1073ef1181f27e6bc01d571366070b url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/222826/arch/Linux/installer/jpeglib-8c-linux-20110307.tar.bz2 name linux -- cgit v1.3 From 5b87c94fa7c2c991e2f225f0bc59614b8b32e4e0 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 23:39:38 +0000 Subject: update kdu archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 155810452c..ab98824d56 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -968,9 +968,9 @@ archive hash - 9742279dfbe57be7a6aed12d60045459 + fbf8a4f78dff986d7c16b3a0437e033e url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-linux-20110119.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/223538/arch/Linux/installer/kdu-6.4.1-linux-20110311.tar.bz2 name linux -- cgit v1.3 From fcdd82af83093a0e62200be7b1fc44e96fd76d57 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Fri, 11 Mar 2011 23:50:00 +0000 Subject: update libpng archive for linux. --- autobuild.xml | 4 ++-- indra/cmake/PNG.cmake | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ab98824d56..b5c4894841 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1016,9 +1016,9 @@ archive hash - adeeca61be1b8f47ce85660c8c20a904 + 0681ab7e1988dfdbdad7dd9edb7760ee url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/221851/arch/Linux/installer/libpng-1.5.1-linux-20110223.tar.bz2 name linux diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index 60f749869a..913c575672 100644 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -15,7 +15,7 @@ else (STANDALONE) set(PNG_LIBRARIES png15) set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) else() - set(PNG_LIBRARIES png12) - set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng12) + set(PNG_LIBRARIES png15) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15) endif() endif (STANDALONE) -- cgit v1.3 From c41d9949d797312626d44c639766b285111d608b Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Mon, 14 Mar 2011 20:01:31 +0000 Subject: update llqtwebkit usage. --- autobuild.xml | 4 ++-- indra/cmake/WebKitLibPlugin.cmake | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index b5c4894841..2848a7e0f7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1112,9 +1112,9 @@ archive hash - c05a33ee8b6f253b5a744596dfc3707d + f53e2a255d4c4039203de3e4640a2d41 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20101013.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/223655/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110314.tar.bz2 name linux diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 1f5b0f5d84..8fb717cdb8 100644 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -62,10 +62,6 @@ elseif (LINUX) else (STANDALONE) set(WEBKIT_PLUGIN_LIBRARIES llqtwebkit - - qgif - qjpeg - QtWebKit QtOpenGL QtNetwork -- cgit v1.3 From ec0c28ad8383dd6b342a317d15d44015fde15416 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Mon, 14 Mar 2011 20:24:55 +0000 Subject: update ogg-vorbis archive for linux. --- autobuild.xml | 4 ++-- indra/llaudio/llaudiodecodemgr.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2848a7e0f7..5be2a6fa70 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1232,9 +1232,9 @@ archive hash - d4bda5baabfbfbd92ea7bd2a48c7fb8a + 17c000ceef32c0623d038b4c73791bee url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.2.0-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/222841/arch/Linux/installer/ogg_vorbis-1.1.3-1.2.0-linux-20110307.tar.bz2 name linux diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index 84105ddfca..f0b44f97d2 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -680,7 +680,7 @@ BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid) return FALSE; } -#ifdef LL_DARWIN +#if LL_DARWIN || LL_LINUX // HACK: to fool the compiler into not emitting unused warnings. namespace { const ov_callbacks callback_array[4] = {OV_CALLBACKS_DEFAULT, OV_CALLBACKS_NOCLOSE, OV_CALLBACKS_STREAMONLY, -- cgit v1.3 From 72d1febadb5f254eb7199bd26eb04a7553a6e55d Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Mon, 14 Mar 2011 21:18:24 +0000 Subject: update openjpeg archive for linux. --- autobuild.xml | 4 ++-- indra/newview/viewer_manifest.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 5be2a6fa70..cdc724f571 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1368,9 +1368,9 @@ archive hash - c34975e8090d861c6e37ea606fd66940 + fb2382014c79e0049746e4e29bd834f9 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openjpeg/rev/223705/arch/Linux/installer/openjpeg-1.4-linux-20110314.tar.bz2 name linux diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 0574d8c005..229055fdb7 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -943,7 +943,9 @@ class Linux_i686Manifest(LinuxManifest): self.path("libdirectfb-1.4.so.5.0.4") self.path("libfusion-1.4.so.5.0.4") self.path("libdirect-1.4.so.5.0.4") - self.path("libopenjpeg.so.1.3.0", "libopenjpeg.so.1.3") + self.path("libopenjpeg.so.1.4.0") + self.path("libopenjpeg.so.1") + self.path("libopenjpeg.so") self.path("libalut.so") self.path("libopenal.so", "libopenal.so.1") self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname -- cgit v1.3 From 17343b76dfc9351c6a7dc109ea11327306d250cc Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Mon, 14 Mar 2011 22:43:09 +0000 Subject: update openssl archive for linux. --- autobuild.xml | 6 +++--- indra/cmake/Copy3rdPartyLibs.cmake | 4 ++-- indra/newview/viewer_manifest.py | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index cdc724f571..02da077faa 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1258,7 +1258,7 @@ license openSSL license_file - LICENSES/openSSL.txt + LICENSES/openssl.txt name openSSL platforms @@ -1280,9 +1280,9 @@ archive hash - 511cf1c200efe587552b8225dd361dbb + cc159598ef3fcd34fd33a8a0ef846165 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.7c-linux-20100930.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/223711/arch/Linux/installer/openssl-0.9.8q-linux-20110314.tar.bz2 name linux diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index c942fafabd..f1584ff0c4 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -244,7 +244,7 @@ elseif(LINUX) libaprutil-1.so.0 libatk-1.0.so libbreakpad_client.so.0 - libcrypto.so.0.9.7 + libcrypto.so.0.9.8 libdb-5.1.so libexpat.so libexpat.so.1 @@ -260,7 +260,7 @@ elseif(LINUX) libstacktrace.so libtcmalloc.so libuuid.so.1 - libssl.so.0.9.7 + libssl.so.0.9.8 libfontconfig.so.1.4.4 ) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 229055fdb7..addaafa494 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -935,9 +935,9 @@ class Linux_i686Manifest(LinuxManifest): self.path("libaprutil-1.so.0.3.10") self.path("libbreakpad_client.so.0.0.0") self.path("libdb-5.1.so") - self.path("libcrypto.so.0.9.7") + self.path("libcrypto.so.0.9.8") self.path("libexpat.so.1.5.2") - self.path("libssl.so.0.9.7") + self.path("libssl.so.0.9.8") self.path("libuuid.so.1") self.path("libSDL-1.2.so.0.11.3") self.path("libdirectfb-1.4.so.5.0.4") -- cgit v1.3 From f1f57ed5acb0d77d99b75e2021a51ab7d752d21f Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Mon, 14 Mar 2011 23:03:41 +0000 Subject: update xmlrpc-epi archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 02da077faa..11962ce4d7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1536,9 +1536,9 @@ archive hash - 3580c3729a034adff005a234f3ce6e84 + 174ab797440157956eda7061dae37564 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-xmlrpc-epi/rev/223735/arch/Linux/installer/xmlrpc_epi-0.54.1-linux-20110314.tar.bz2 name linux -- cgit v1.3 From e25c56dd670dabf89e189ee76e25d7df3bdf59e6 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Mon, 14 Mar 2011 23:25:23 +0000 Subject: update zlib archive for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 11962ce4d7..e060cc1bd6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1584,9 +1584,9 @@ archive hash - 7e2818075e89f0729e869a244eafbbf7 + 7b4cf3aa2c04937d0a20761516587896 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3dfsg-linux-20100929.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-zlib/rev/223739/arch/Linux/installer/zlib-1.2.5-linux-20110314.tar.bz2 name linux -- cgit v1.3 From 1de3c1e127706ebc6a16f152635d456dcd59c17f Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Tue, 15 Mar 2011 18:12:43 +0000 Subject: update jsoncpp archive on linux. --- autobuild.xml | 4 ++-- indra/cmake/JsonCpp.cmake | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index e060cc1bd6..6dfa7671d3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -920,9 +920,9 @@ archive hash - 7e6b2fc7ad4e12d94d01cc49c22c6f67 + 840cd9455638c0ea52c613cfddd07d5b url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-linux-20101013.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/223959/arch/Linux/installer/jsoncpp-0.5.0-linux-20110315.tar.bz2 name linux diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake index 9024fa92a7..499b00fb44 100644 --- a/indra/cmake/JsonCpp.cmake +++ b/indra/cmake/JsonCpp.cmake @@ -16,7 +16,7 @@ else (STANDALONE) elseif (DARWIN) set(JSONCPP_LIBRARIES libjson_linux-gcc-4.0.1_libmt.a) elseif (LINUX) - set(JSONCPP_LIBRARIES libjsoncpp.a) + set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt.a) endif (WINDOWS) set(JSONCPP_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/jsoncpp" "${LIBS_PREBUILT_DIR}/include/json") endif (STANDALONE) -- cgit v1.3 From 650dd40187d63eb892a313b12d431f6b485e2dde Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Tue, 15 Mar 2011 19:58:25 +0000 Subject: update openal archive for linux. --- autobuild.xml | 4 ++-- indra/newview/viewer_manifest.py | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 6dfa7671d3..8e6ad226f3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1316,11 +1316,11 @@ archive hash - fccdca18a950ac9363c6fb39118b80e1 + 30b9b33fb9320d9b6634e0dbb013b4e7 hash_algorithm md5 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openal/rev/223977/arch/Linux/installer/openal-1.12.854-1.1.0-linux-20110315.tar.bz2 name linux diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index addaafa494..2b756c8dce 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -947,7 +947,11 @@ class Linux_i686Manifest(LinuxManifest): self.path("libopenjpeg.so.1") self.path("libopenjpeg.so") self.path("libalut.so") - self.path("libopenal.so", "libopenal.so.1") + self.path("libalut.so.0") + self.path("libalut.so.0.0.0") + self.path("libopenal.so") + self.path("libopenal.so.1") + self.path("libopenal.so.1.12.854") self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname self.path("libfontconfig.so.1.4.4") try: -- cgit v1.3 From cd8485f9c0535455142f7f979159dcf8027ae93c Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Tue, 15 Mar 2011 20:54:22 +0000 Subject: update uuid archive for linux. --- autobuild.xml | 4 ++-- indra/cmake/Copy3rdPartyLibs.cmake | 2 +- indra/newview/viewer_manifest.py | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8e6ad226f3..11ffd12123 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1052,9 +1052,9 @@ archive hash - 2b64ea42d54583ab82f4936ce6ea2a3c + 873e8e99d29711df2efa30646dca1795 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libuuid-linux-20100930.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libuuid/rev/223995/arch/Linux/installer/uuid-1.6.2-linux-20110315.tar.bz2 name linux diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index f1584ff0c4..169502731d 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -259,7 +259,7 @@ elseif(LINUX) libssl.so libstacktrace.so libtcmalloc.so - libuuid.so.1 + libuuid.so.16.0.22 libssl.so.0.9.8 libfontconfig.so.1.4.4 ) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 2b756c8dce..dad0519a8a 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -938,7 +938,9 @@ class Linux_i686Manifest(LinuxManifest): self.path("libcrypto.so.0.9.8") self.path("libexpat.so.1.5.2") self.path("libssl.so.0.9.8") - self.path("libuuid.so.1") + self.path("libuuid.so") + self.path("libuuid.so.16") + self.path("libuuid.so.16.0.22") self.path("libSDL-1.2.so.0.11.3") self.path("libdirectfb-1.4.so.5.0.4") self.path("libfusion-1.4.so.5.0.4") -- cgit v1.3 From 1f5f03da389af871cdb5366051aeeac7f42294ab Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 16 Mar 2011 09:05:20 -0700 Subject: fix hash for curl archive on darwin. --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 11ffd12123..7a05b01555 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -618,7 +618,7 @@ archive hash - 2bb7adabbd1fe2c7f99ddc4240842cc4 + bd2f84ef8bd308570e2e532a371dc2ef url http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glui/rev/221069/arch/Darwin/installer/glui-2.36-darwin-20110309.tar.bz2 -- cgit v1.3 From 38bdbbd01921e008a5882739992fd8139ec9e1fb Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Wed, 16 Mar 2011 16:06:47 +0000 Subject: rename google archive for linux to google-perftools and update to latest. --- autobuild.xml | 28 +++++++--------------------- indra/cmake/Copy3rdPartyLibs.cmake | 2 +- indra/cmake/GooglePerfTools.cmake | 3 +-- 3 files changed, 9 insertions(+), 24 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 11ffd12123..6bf06212a9 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -639,12 +639,14 @@ - google + google-perftools license - mit + bsd + license_file + LICENSES/google-perftools.txt name - google + google-perftools platforms linux @@ -652,29 +654,13 @@ archive hash - 7d9d1b6d32ee273df164f7b7d5f29848 - hash_algorithm - md5 + cf513fc2eec4a414cc804cf408932a45 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-0.0.0-linux-20110114.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-google-perftools/rev/224046/arch/Linux/installer/google_perftools-1.7-linux-20110315.tar.bz2 name linux - - version - 0.0.0 - - google-perftools - - license - bsd - license_file - LICENSES/google.txt - name - google-perftools - platforms - windows archive diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 169502731d..e2b7d3b888 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -257,8 +257,8 @@ elseif(LINUX) libopenal.so libopenjpeg.so libssl.so - libstacktrace.so libtcmalloc.so + libuuid.so.16 libuuid.so.16.0.22 libssl.so.0.9.8 libfontconfig.so.1.4.4 diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index 133ae14d2f..6c784a3a76 100644 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -12,9 +12,8 @@ else (STANDALONE) set(GOOGLE_PERFTOOLS_FOUND "YES") endif (WINDOWS) if (LINUX) - use_prebuilt_binary(google) + use_prebuilt_binary(google-perftools) set(TCMALLOC_LIBRARIES tcmalloc) - set(STACKTRACE_LIBRARIES stacktrace) set(PROFILER_LIBRARIES profiler) set(GOOGLE_PERFTOOLS_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) -- cgit v1.3 From 12a539c82db8b8a42c6a1fa7c692be39e26219f2 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 16 Mar 2011 13:53:06 -0700 Subject: update to latest curl library (linked to cares). --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 676fae6aa1..ff36c1c9bc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - 89b89ad923816317e1a3be963b406f27 + aaea644191807f51051cefa2fac11069 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/219379/arch/Darwin/installer/curl-7.21.1-darwin-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/224181/arch/Darwin/installer/curl-7.21.1-darwin-20110316.tar.bz2 name darwin -- cgit v1.3 From 2e0543a168255b6577da2e39a1f9a39207028d23 Mon Sep 17 00:00:00 2001 From: Andrew de Laix Date: Wed, 16 Mar 2011 20:54:12 +0000 Subject: update linux to lates curl archive (linked to cares). --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 676fae6aa1..690d62235a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -246,9 +246,9 @@ archive hash - 65ca0a9b42de855ea574e454ec2e14c3 + 2d9377951d99a1aa4735cea8d4b5aa71 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/220996/arch/Linux/installer/curl-7.21.1-linux-20110308.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/224181/arch/Linux/installer/curl-7.21.1-linux-20110316.tar.bz2 name linux -- cgit v1.3 From 6ee772bd424fa59b76c6174fd0fed8f76ff99c93 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 16 Mar 2011 18:09:00 -0700 Subject: Autobuild 2010: clean up argument passing for all configs --- autobuild.xml | 227 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 159 insertions(+), 68 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 590c80f540..686ed466ef 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1609,10 +1609,6 @@ configure - arguments - - ../indra - command cmake options @@ -1630,10 +1626,6 @@ configure - arguments - - ../indra - command cmake options @@ -1651,10 +1643,6 @@ configure - arguments - - ../indra - command cmake options @@ -1672,10 +1660,6 @@ configure - arguments - - ../indra - command cmake options @@ -1693,10 +1677,6 @@ configure - arguments - - ../indra - command cmake options @@ -1714,10 +1694,6 @@ configure - arguments - - ../indra - command cmake options @@ -1735,10 +1711,6 @@ configure - arguments - - ../indra - command cmake options @@ -1759,10 +1731,6 @@ configure - arguments - - ../indra - command cmake options @@ -1783,10 +1751,6 @@ configure - arguments - - ../indra - command cmake options @@ -1804,10 +1768,6 @@ configure - arguments - - ../indra - command cmake options @@ -1852,6 +1812,10 @@ configure + arguments + + ../indra + options -G @@ -1878,6 +1842,10 @@ configure + arguments + + ../indra + options -G @@ -1904,6 +1872,10 @@ configure + arguments + + ../indra + options -G @@ -1930,6 +1902,10 @@ configure + arguments + + ../indra + options -G @@ -1956,6 +1932,10 @@ configure + arguments + + ../indra + options -G @@ -1982,6 +1962,10 @@ configure + arguments + + ../indra + options -G @@ -2008,6 +1992,10 @@ configure + arguments + + ../indra + options -G @@ -2041,6 +2029,10 @@ configure + arguments + + ../indra + options -G @@ -2076,6 +2068,10 @@ configure + arguments + + ../indra + options -G @@ -2111,6 +2107,10 @@ configure + arguments + + ../indra + options -G @@ -2136,6 +2136,10 @@ configure + arguments + + ../indra + options -G @@ -2161,6 +2165,10 @@ configure + arguments + + ../indra + options -G @@ -2186,6 +2194,10 @@ configure + arguments + + ../indra + options -G @@ -2211,6 +2223,10 @@ configure + arguments + + ../indra + options -G @@ -2236,6 +2252,10 @@ configure + arguments + + ../indra + options -G @@ -2261,6 +2281,10 @@ configure + arguments + + ../indra + options -G @@ -2286,6 +2310,10 @@ configure + arguments + + ../indra + options -G @@ -2313,6 +2341,10 @@ configure + arguments + + ../indra + options -G @@ -2361,10 +2393,22 @@ configure + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Debug + --startup + secondlife-bin + options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=OFF -DINSTALL_PROPRIETARY=TRUE -DFMOD=TRUE @@ -2379,15 +2423,7 @@ arguments - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution SecondLife.sln - --config - Debug - --startup - secondlife-bin command devenv.com @@ -2399,6 +2435,18 @@ configure + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Debug + --startup + secondlife-bin + options -G @@ -2429,6 +2477,10 @@ configure + arguments + + ../indra + options -G @@ -2459,6 +2511,10 @@ configure + arguments + + ../indra + options -G @@ -2475,17 +2531,8 @@ build - arguments - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution SecondLife.sln - --config - RelWithDebInfo - --startup - secondlife-bin command devenv.com @@ -2497,6 +2544,18 @@ configure + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + RelWithDebInfo + --startup + secondlife-bin + options -G @@ -2527,6 +2586,10 @@ configure + arguments + + ../indra + options -G @@ -2557,6 +2620,10 @@ configure + arguments + + ../indra + options -G @@ -2587,6 +2654,18 @@ configure + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + RelWithDebInfo + --startup + secondlife-bin + options -G @@ -2620,6 +2699,18 @@ configure + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Release + --startup + secondlife-bin + options -G @@ -2635,6 +2726,16 @@ VCexpressRelWithDebInfo build + + command + vcbuild.exe + options + + /u + SecondLife.sln + + + configure arguments @@ -2648,16 +2749,6 @@ --startup secondlife-bin - command - vcbuild.exe - options - - /u - SecondLife.sln - - - configure - options -G -- cgit v1.3 From 399d0aa76422362dbd9371d8f24d3863d3cabdfa Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 16 Mar 2011 18:30:50 -0700 Subject: Autobuild: fixes an xml error that made configure exit with error --- autobuild.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 686ed466ef..fe35a96882 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2531,6 +2531,7 @@ build + arguments SecondLife.sln -- cgit v1.3 From 3b1dee9abf5e4e220c325438f2da125937d584c1 Mon Sep 17 00:00:00 2001 From: Wolfpup Lowenhar Date: Fri, 18 Mar 2011 08:05:36 -0400 Subject: OPEN-1: OPEN-37: Needed changes in autobuild.xml for OpenSource Developers to be able to use VS2010 Autobuild --- autobuild.xml | 133 +++++++++++++++++++++++++++++++++++++++++++++----- doc/contributions.txt | 2 + 2 files changed, 124 insertions(+), 11 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ba70320d0c..f133c8d07c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1764,10 +1764,15 @@ name Release + VCexpressRelWithDebInfo configure + arguments + + ../indra + command cmake options @@ -1781,6 +1786,53 @@ name VCexpressRelWithDebInfo + + + VC10msbuildRelWithDebInfo + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + VC10msbuildRelWithDebInfo + + + + VC10msbuildRelease + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DUNATTENDED:BOOL=OFF + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + VC10msbuildRelease + + name common @@ -2724,10 +2776,15 @@ name Release + VCexpressRelWithDebInfo build + arguments + + "RelWithDebInfo|Win32" + command vcbuild.exe options @@ -2738,30 +2795,84 @@ configure - arguments + options + + -G + "Visual Studio 8 2005" + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + + name + VCexpressRelWithDebInfo + + + + VC10msbuildRelWithDebInfo + + build + + command + msbuild.exe + options - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution SecondLife.sln - --config - Release - --startup - secondlife-bin + /verbosity:minimal + /t:build + /p:Configuration=RelWithDebInfo + /p:Platform=Win32 + /p:"VCBuildAdditionalOptions= /useenv" + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE + + name + VC10msbuildRelWithDebInfo + + + + VC10msbuildRelease + + build + + command + msbuild.exe + options + + SecondLife.sln + /t:build + /p:Configuration=Release + /p:Platform=Win32 + /p:"VCBuildAdditionalOptions= /useenv" + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE name - VCexpressRelWithDebInfo + VC10msbuildRelease + name windows diff --git a/doc/contributions.txt b/doc/contributions.txt index a947b922ab..9caed38d30 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -833,6 +833,8 @@ Whoops Babii Wilton Lundquist VWR-7682 WolfPup Lowenhar + OPEN-1 + OPEN-37 SNOW-622 SNOW-772 STORM-102 -- cgit v1.3 From dd8c9eb98a86b3d3716719b739480c562f72c880 Mon Sep 17 00:00:00 2001 From: brad kittenbrink Date: Fri, 18 Mar 2011 12:24:04 -0400 Subject: Removal of dbghelp cruft. Reviewed by alain and nat. --- autobuild.xml | 24 ------------------------ indra/cmake/Copy3rdPartyLibs.cmake | 1 - indra/newview/CMakeLists.txt | 3 --- indra/newview/viewer_manifest.py | 4 ---- indra/win_crash_logger/llcrashloggerwindows.cpp | 1 - 5 files changed, 33 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 06f37044e9..76cec04ab0 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -291,30 +291,6 @@ - dbghelp - - license - MSDTW - license_file - LICENSES/dbghelp.txt - name - dbghelp - platforms - - windows - - archive - - hash - c5d28b13ce16a46f2e35eb133f7d92e8 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbghelp-6.11.1.404-windows-20101011.tar.bz2 - - name - windows - - - dbusglib license diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index e2b7d3b888..4698116022 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -47,7 +47,6 @@ if(WINDOWS) libapr-1.dll libaprutil-1.dll libapriconv-1.dll - dbghelp.dll ssleay32.dll libeay32.dll ) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 4c8b3e84a2..0e407d92d3 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1289,8 +1289,6 @@ if (WINDOWS) if (INTEL_MEMOPS_LIBRARY) list(APPEND viewer_LIBRARIES ${INTEL_MEMOPS_LIBRARY}) endif (INTEL_MEMOPS_LIBRARY) - - use_prebuilt_binary(dbghelp) endif (WINDOWS) # Add the xui files. This is handy for searching for xui elements @@ -1499,7 +1497,6 @@ if (WINDOWS) ${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt ${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt ${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt - ${ARCH_PREBUILT_DIRS_RELEASE}/dbghelp.dll ${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll ${ARCH_PREBUILT_DIRS_RELEASE}/qtcore4.dll ${ARCH_PREBUILT_DIRS_RELEASE}/qtgui4.dll diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index b48b0e7a3a..80e47125a0 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -306,10 +306,6 @@ class WindowsManifest(ViewerManifest): self.path("ssleay32.dll") self.path("libeay32.dll") - # For use in crash reporting (generates minidumps) - if self.args['configuration'].lower() != 'debug': - self.path("dbghelp.dll") - # For google-perftools tcmalloc allocator. try: if self.args['configuration'].lower() == 'debug': diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp index 354b7e6cc3..51ff754c27 100644 --- a/indra/win_crash_logger/llcrashloggerwindows.cpp +++ b/indra/win_crash_logger/llcrashloggerwindows.cpp @@ -34,7 +34,6 @@ #include "boost/tokenizer.hpp" -#include "dbghelp.h" #include "indra_constants.h" // CRASH_BEHAVIOR_ASK, CRASH_SETTING_NAME #include "llerror.h" #include "llfile.h" -- cgit v1.3 From df2e9b85f08a752baef3ba7fe7165f1da1e89545 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Fri, 18 Mar 2011 11:49:44 -0700 Subject: update archives to permanent S3 locations. --- autobuild.xml | 116 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 76cec04ab0..dc54f49a31 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -68,7 +68,7 @@ hash 69ae3b1c9cdb0ebc0d0e1ac8413e3eb7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-sdl/rev/223253/arch/Linux/installer/SDL-1.2.14-linux-20110309.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/SDL-1.2.14-linux-20110309.tar.bz2 name linux @@ -92,7 +92,7 @@ hash 9868bfa0b6954e4884c49c6f30068c80 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/221588/arch/Darwin/installer/apr_suite-1.4.2-darwin-20110217.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.4.2-darwin-20110217.tar.bz2 name darwin @@ -104,7 +104,7 @@ hash ff62946c518a247c86e1066c1e9a5855 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/223260/arch/Linux/installer/apr_suite-1.4.2-linux-20110309.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.4.2-linux-20110309.tar.bz2 name linux @@ -116,7 +116,7 @@ hash 73785c200a5b4ef74a1230b028bb680d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/221588/arch/CYGWIN/installer/apr_suite-1.4.2-windows-20110217.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.4.2-windows-20110217.tar.bz2 name windows @@ -140,7 +140,7 @@ hash e6caaeea16131e1f2343ecd7765e3147 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/220963/arch/Darwin/installer/ares-1.7.1-darwin-20110217.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-darwin-20110217.tar.bz2 name darwin @@ -200,7 +200,7 @@ hash a34e7fffdb94a6a4d8a2966b1f216da3 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/223302/arch/Linux/installer/boost-1.45.0-linux-20110310.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.45.0-linux-20110310.tar.bz2 name linux @@ -212,7 +212,7 @@ hash 98be22c8833aa2bca184b9fa09fbb82b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/219456/arch/CYGWIN/installer/boost-1.45.0-windows-20110124.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.45.0-windows-20110124.tar.bz2 name windows @@ -236,7 +236,7 @@ hash aaea644191807f51051cefa2fac11069 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/224181/arch/Darwin/installer/curl-7.21.1-darwin-20110316.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.21.1-darwin-20110316.tar.bz2 name darwin @@ -248,7 +248,7 @@ hash 2d9377951d99a1aa4735cea8d4b5aa71 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/224181/arch/Linux/installer/curl-7.21.1-linux-20110316.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.21.1-linux-20110316.tar.bz2 name linux @@ -260,7 +260,7 @@ hash fea96aa2a7d513397317194f3d6c979b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/220996/arch/CYGWIN/installer/curl-7.21.1-windows-20110211.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.21.1-windows-20110211.tar.bz2 name windows @@ -284,7 +284,7 @@ hash 8f57c413e0786681cbcb9ed2fb8a6d37 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-db/rev/223263/arch/Linux/installer/db-5.1.25-linux-20110309.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/db-5.1.25-linux-20110309.tar.bz2 name linux @@ -380,7 +380,7 @@ hash e72db1bda49b205ebdf4945d4ed2b8f8 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-expat/rev/221208/arch/CYGWIN/installer/expat-2.0.1-windows-20110215.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-2.0.1-windows-20110215.tar.bz2 name windows @@ -404,7 +404,7 @@ hash 61ead113e6479452e6b690c84b4e9d30 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Darwin/installer/fmod-3.75-darwin-20110222.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-darwin-20110222.tar.bz2 name darwin @@ -416,7 +416,7 @@ hash 0c61d643db54d2e5999be8254569d8b3 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Linux/installer/fmod-3.75-linux-20110223.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-linux-20110223.tar.bz2 name linux @@ -428,7 +428,7 @@ hash d9a9a6ad86895353bcd63374a4c1a91d url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/CYGWIN/installer/fmod-3.75-windows-20110222.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-windows-20110222.tar.bz2 name windows @@ -452,7 +452,7 @@ hash d8b08b657247566bde5fd853c7622478 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-fontconfig/rev/223389/arch/Linux/installer/fontconfig-2.8.0-linux-20110311.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fontconfig-2.8.0-linux-20110311.tar.bz2 name linux @@ -500,7 +500,7 @@ hash c0eacb6348e032fbc69cfdc4bd215ee4 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/222819/arch/Darwin/installer/freetype-2.4.4-darwin-20110307.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-darwin-20110307.tar.bz2 name darwin @@ -512,7 +512,7 @@ hash 9b58d1a9c15807a1301e42a313641010 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/223377/arch/Linux/installer/freetype-2.4.4-linux-20110310.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-linux-20110310.tar.bz2 name linux @@ -524,7 +524,7 @@ hash 271349827b939406162ce42e42cd18e0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/221707/arch/CYGWIN/installer/freetype-2.4.4-windows-20110218.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-windows-20110218.tar.bz2 name windows @@ -596,7 +596,7 @@ hash bd2f84ef8bd308570e2e532a371dc2ef url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glui/rev/221069/arch/Darwin/installer/glui-2.36-darwin-20110309.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-darwin-20110309.tar.bz2 name darwin @@ -608,7 +608,7 @@ hash e006635a741420a15f40bbdac13bd8d7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glui/rev/221069/arch/CYGWIN/installer/glui-2.36-windows-20110214.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-windows-20110214.tar.bz2 name windows @@ -632,7 +632,7 @@ hash cf513fc2eec4a414cc804cf408932a45 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-google-perftools/rev/224046/arch/Linux/installer/google_perftools-1.7-linux-20110315.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_perftools-1.7-linux-20110315.tar.bz2 name linux @@ -668,7 +668,7 @@ hash 21babc394dbf8572830f2e85adec7b9f url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/220211/arch/Darwin/installer/google_breakpad-0.0.0-rev599-darwin-20110202.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-darwin-20110202.tar.bz2 name darwin @@ -680,7 +680,7 @@ hash 204b02a9480c411232255798839431a2 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/223427/arch/Linux/installer/google_breakpad-0.0.0-rev599-linux-20110311.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20110311.tar.bz2 name linux @@ -692,7 +692,7 @@ hash 627c51136e14e64c5d39933f3abd3bdf url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/220211/arch/CYGWIN/installer/google_breakpad-0.0.0-rev599-windows-20110218.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-windows-20110218.tar.bz2 name windows @@ -740,7 +740,7 @@ hash 212701468920519f3989677cea9ca4f1 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-mock/rev/222036/arch/CYGWIN/installer/gmock-1.5.0-windows-20110224.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gmock-1.5.0-windows-20110224.tar.bz2 name windows @@ -824,7 +824,7 @@ hash 71bd6efbf508e1f2e7d98a6195a93e9e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/222232/arch/Darwin/installer/jpeglib-8c-darwin-20110228.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-8c-darwin-20110228.tar.bz2 name darwin @@ -836,7 +836,7 @@ hash fa1073ef1181f27e6bc01d571366070b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/222826/arch/Linux/installer/jpeglib-8c-linux-20110307.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-8c-linux-20110307.tar.bz2 name linux @@ -848,7 +848,7 @@ hash a202ec58cef9097c94acfa958ed6da8d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/221594/arch/CYGWIN/installer/jpeglib-8c-windows-20110217.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-8c-windows-20110217.tar.bz2 name windows @@ -872,7 +872,7 @@ hash de8b96120c274e052abb4f692861be46 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220079/arch/Darwin/installer/jsoncpp-0.5.0-darwin-20110131.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-darwin-20110131.tar.bz2 name darwin @@ -884,7 +884,7 @@ hash 840cd9455638c0ea52c613cfddd07d5b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/223959/arch/Linux/installer/jsoncpp-0.5.0-linux-20110315.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-linux-20110315.tar.bz2 name linux @@ -896,7 +896,7 @@ hash afff2018e6a887c281b072eecdd9343e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jsoncpp/rev/220579/arch/CYGWIN/installer/jsoncpp-0.5.0-windows-20110208.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-windows-20110208.tar.bz2 name windows @@ -920,7 +920,7 @@ hash d91e1f483209cd3eba04135c6a59e829 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/Darwin/installer/kdu-6.4.1-darwin-20110218.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-darwin-20110218.tar.bz2 name darwin @@ -932,7 +932,7 @@ hash fbf8a4f78dff986d7c16b3a0437e033e url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/223538/arch/Linux/installer/kdu-6.4.1-linux-20110311.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-linux-20110311.tar.bz2 name linux @@ -944,7 +944,7 @@ hash 6cd9f36465ef73a3df34bf2b3bba2ced url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/CYGWIN/installer/kdu-6.4.1-windows-20110218.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-windows-20110218.tar.bz2 name windows @@ -968,7 +968,7 @@ hash 6fe1adf12d98bce9111f60ee762007b9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/221851/arch/Darwin/installer/libpng-1.5.1-darwin-20110222.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.5.1-darwin-20110222.tar.bz2 name darwin @@ -980,7 +980,7 @@ hash 0681ab7e1988dfdbdad7dd9edb7760ee url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/221851/arch/Linux/installer/libpng-1.5.1-linux-20110223.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.5.1-linux-20110223.tar.bz2 name linux @@ -992,7 +992,7 @@ hash 735a955e6442733e2342ab12c1087488 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/221747/arch/CYGWIN/installer/libpng-1.5.1-windows-20110221.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.5.1-windows-20110221.tar.bz2 name windows @@ -1016,7 +1016,7 @@ hash 873e8e99d29711df2efa30646dca1795 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libuuid/rev/223995/arch/Linux/installer/uuid-1.6.2-linux-20110315.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/uuid-1.6.2-linux-20110315.tar.bz2 name linux @@ -1064,7 +1064,7 @@ hash 0326cb770c7ff995cf822fb330ae9d0c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/223111/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110308.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-darwin-20110308.tar.bz2 name darwin @@ -1076,7 +1076,7 @@ hash f53e2a255d4c4039203de3e4640a2d41 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/223655/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110314.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-linux-20110314.tar.bz2 name linux @@ -1088,7 +1088,7 @@ hash 7865b9c3a5d9f9424af56d5d05b82de9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/alain_llqtwebkit/rev/220864/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110210.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110210.tar.bz2 name windows @@ -1136,7 +1136,7 @@ hash 674d37d2ba76a2df7f18c47bf50b5d03 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libndofdev/rev/223177/arch/Darwin/installer/libndofdev-0.1-darwin-20110308.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libndofdev-0.1-darwin-20110308.tar.bz2 name darwin @@ -1160,7 +1160,7 @@ hash 3a4bec9562ed6ac53e85abcb1afc5fc0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libndofdev/rev/221922/arch/CYGWIN/installer/libndofdev-0.1-windows-20110223.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libndofdev-0.1-windows-20110223.tar.bz2 name windows @@ -1184,7 +1184,7 @@ hash 57f32a1a670f06a4dc036eb1164ad9d7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/221801/arch/Darwin/installer/ogg_vorbis-1.1.3-1.2.0-darwin-20110222.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-darwin-20110222.tar.bz2 name darwin @@ -1196,7 +1196,7 @@ hash 17c000ceef32c0623d038b4c73791bee url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/222841/arch/Linux/installer/ogg_vorbis-1.1.3-1.2.0-linux-20110307.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-linux-20110307.tar.bz2 name linux @@ -1208,7 +1208,7 @@ hash c8fccf7eeb25fd45cb7e04399c0b83ee url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/221801/arch/CYGWIN/installer/ogg_vorbis-1.1.3-1.2.0-windows-20110222.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-windows-20110222.tar.bz2 name windows @@ -1232,7 +1232,7 @@ hash facee34b8bd57ad602157e65a5af1a49 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220986/arch/Darwin/installer/openssl-0.9.8q-darwin-20110211.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openssl-0.9.8q-darwin-20110211.tar.bz2 name darwin @@ -1282,7 +1282,7 @@ hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openal/rev/223977/arch/Linux/installer/openal-1.12.854-1.1.0-linux-20110315.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-linux-20110315.tar.bz2 name linux @@ -1294,7 +1294,7 @@ hash 04df406f3e5d04cf176660bdac66c3a1 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openal/rev/222391/arch/CYGWIN/installer/openal-1.12.854-1.1.0-windows-20110301.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-windows-20110301.tar.bz2 name windows @@ -1320,7 +1320,7 @@ hash 4be51c7cca7d84831e30b63279df7ae5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openjpeg/rev/222548/arch/Darwin/installer/openjpeg-1.4-darwin-20110302.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2 name darwin @@ -1332,7 +1332,7 @@ hash fb2382014c79e0049746e4e29bd834f9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openjpeg/rev/223705/arch/Linux/installer/openjpeg-1.4-linux-20110314.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-linux-20110314.tar.bz2 name linux @@ -1344,7 +1344,7 @@ hash ca5765af55f798724d601720afdf6953 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openjpeg/rev/222548/arch/CYGWIN/installer/openjpeg-1.4-windows-20110302.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-windows-20110302.tar.bz2 name windows @@ -1368,7 +1368,7 @@ hash 2172379794217d0ffba0db09b2ac17bf url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pth/rev/222617/arch/Darwin/installer/pth-2.0.7-darwin-20110303.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-darwin-20110303.tar.bz2 name darwin @@ -1488,7 +1488,7 @@ hash a3e0fb4b4a51b01690a99747a1cca531 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-xmlrpc-epi/rev/222889/arch/Darwin/installer/xmlrpc_epi-0.54.1-darwin-20110307.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc_epi-0.54.1-darwin-20110307.tar.bz2 name darwin @@ -1500,7 +1500,7 @@ hash 174ab797440157956eda7061dae37564 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-xmlrpc-epi/rev/223735/arch/Linux/installer/xmlrpc_epi-0.54.1-linux-20110314.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc_epi-0.54.1-linux-20110314.tar.bz2 name linux @@ -1512,7 +1512,7 @@ hash 5181d1a8f2516928ac064d72acf164a4 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-xmlrpc-epi/rev/222021/arch/CYGWIN/installer/xmlrpc_epi-0.54.1-windows-20110224.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc_epi-0.54.1-windows-20110224.tar.bz2 name windows @@ -1536,7 +1536,7 @@ hash 49b8de20f3bb43537f51311894a72de1 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-zlib/rev/220983/arch/Darwin/installer/zlib-1.2.5-darwin-20110211.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.5-darwin-20110211.tar.bz2 name darwin -- cgit v1.3 From 9923f403226d6c014cb40149c2e31b2fce988803 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Fri, 18 Mar 2011 16:23:55 -0700 Subject: Autobuild : fixed merge errors in json hash codes --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c26afea6f3..108e6dc429 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -870,7 +870,7 @@ archive hash - 22c2ab6ef046c0c1f6cf674297f3e8ef + de8b96120c274e052abb4f692861be46 url http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-darwin-20110131.tar.bz2 @@ -894,7 +894,7 @@ archive hash - 0959e349c4f7c0b33539269502486737 + afff2018e6a887c281b072eecdd9343e url http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-windows-20110208.tar.bz2 -- cgit v1.3 From f6961ae23680061674f913eee98b8b12be1d7deb Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Sat, 19 Mar 2011 14:52:08 -0700 Subject: Autobuild : Fix to point all Windows build configs to Visual Studio 10 --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 108e6dc429..1292a02136 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2478,7 +2478,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2546,7 +2546,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2588,7 +2588,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=TRUE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2622,7 +2622,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=TRUE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2656,7 +2656,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=TRUE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE @@ -2774,7 +2774,7 @@ options -G - "Visual Studio 8 2005" + "Visual Studio 10" -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE -- cgit v1.3 From 980f26fff7137138c2f6a87a43d6f47a1a20b31d Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 22 Mar 2011 10:34:22 -0700 Subject: update freetype archive on darwin (downgrade to 2.3.9) --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 1292a02136..d76ea8a777 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -498,9 +498,9 @@ archive hash - c0eacb6348e032fbc69cfdc4bd215ee4 + f93758faf1d06f1427e0ecb846b17d48 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-darwin-20110307.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/224777/arch/Darwin/installer/freetype-2.3.9-darwin-20110322.tar.bz2 name darwin -- cgit v1.3 From f06a9369e57dd1ed9c39f8cb9b03f4756ae206d8 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Tue, 22 Mar 2011 10:36:53 -0700 Subject: update freetype archive on windows (downgrad to 2.3.9) --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 1292a02136..9d0f189940 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -522,9 +522,9 @@ archive hash - 271349827b939406162ce42e42cd18e0 + df9a3c0a572b1f18dce32f5a3caba0ea url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-windows-20110218.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/224777/arch/CYGWIN/installer/freetype-2.3.9-windows-20110322.tar.bz2 name windows -- cgit v1.3 From 616b0a25686b0ffbc5a995a26f27d5f46efc7024 Mon Sep 17 00:00:00 2001 From: "alain@945battery-guestA-183.lindenlab.com" Date: Wed, 23 Mar 2011 10:44:39 -0700 Subject: Updated linux llqtwekit archive and fixed media webkit build and loading (fix CHOP-545). --- autobuild.xml | 4 ++-- indra/cmake/WebKitLibPlugin.cmake | 2 +- indra/media_plugins/webkit/media_plugin_webkit.cpp | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 425a5d37c3..c6c087a6c3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1074,9 +1074,9 @@ archive hash - f53e2a255d4c4039203de3e4640a2d41 + ed7d6cb66e6fcd6dbac41aabe6a0d0c8 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-linux-20110314.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/224858/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110323.tar.bz2 name linux diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 8fb717cdb8..6e8f6cec7f 100644 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -67,7 +67,7 @@ elseif (LINUX) QtNetwork QtGui QtCore - + jscore jpeg fontconfig X11 diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index d6f8ae3e16..e24ee6629e 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -1231,7 +1231,9 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) std::string url = message_in.getValue("url"); if ( 404 == code ) // browser lib only supports 404 right now { - LLQtWebKit::getInstance()->set404RedirectUrl( mBrowserWindowId, url ); +#if LLQTWEBKIT_API_VERSION < 8 + LLQtWebKit::getInstance()->set404RedirectUrl( mBrowserWindowId, url ); +#endif }; } else if(message_name == "set_user_agent") -- cgit v1.3 From d3b192c26f2068383b22f15496500c1f961a72e8 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 23 Mar 2011 13:39:31 -0700 Subject: STORM-1090 : Fix for use of freetype 2.4.4 and switch to freetype 2.4.4 in installables --- autobuild.xml | 8 ++++---- indra/llrender/llfontfreetype.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 425a5d37c3..1292a02136 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -498,9 +498,9 @@ archive hash - f93758faf1d06f1427e0ecb846b17d48 + c0eacb6348e032fbc69cfdc4bd215ee4 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/224777/arch/Darwin/installer/freetype-2.3.9-darwin-20110322.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-darwin-20110307.tar.bz2 name darwin @@ -522,9 +522,9 @@ archive hash - df9a3c0a572b1f18dce32f5a3caba0ea + 271349827b939406162ce42e42cd18e0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/224777/arch/CYGWIN/installer/freetype-2.3.9-windows-20110322.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-windows-20110218.tar.bz2 name windows diff --git a/indra/llrender/llfontfreetype.cpp b/indra/llrender/llfontfreetype.cpp index b84e696e2d..91c8a37022 100644 --- a/indra/llrender/llfontfreetype.cpp +++ b/indra/llrender/llfontfreetype.cpp @@ -482,7 +482,7 @@ void LLFontFreetype::renderGlyph(U32 glyph_index) const if (mFTFace == NULL) return; - int error = FT_Load_Glyph(mFTFace, glyph_index, FT_LOAD_DEFAULT ); + int error = FT_Load_Glyph(mFTFace, glyph_index, FT_LOAD_FORCE_AUTOHINT ); llassert(!error); error = FT_Render_Glyph(mFTFace->glyph, gFontRenderMode); -- cgit v1.3 From 63876746dd80321db569e162347d4dda56004bc4 Mon Sep 17 00:00:00 2001 From: "alain@945battery-guestA-183.lindenlab.com" Date: Wed, 23 Mar 2011 15:27:03 -0700 Subject: update jpeglib archive on linux (now uses correct lib layout fixing erroneous linkage to system jpeg lib). --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c6c087a6c3..543c4e6d1e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -834,9 +834,9 @@ archive hash - fa1073ef1181f27e6bc01d571366070b + dcca1db348831cdb7c6b26dc4076c597 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-8c-linux-20110307.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/224895/arch/Linux/installer/jpeglib-8c-linux-20110323.tar.bz2 name linux -- cgit v1.3 From 9b7fd9034f3e134db402726a2ebf89027b6bbf88 Mon Sep 17 00:00:00 2001 From: "alain@945battery-guestA-183.lindenlab.com" Date: Fri, 25 Mar 2011 13:40:10 -0700 Subject: revert to prior archive to get vivox compatible opealal lib. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c08954bd16..65d9764cc6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1278,11 +1278,11 @@ archive hash - 30b9b33fb9320d9b6634e0dbb013b4e7 + fccdca18a950ac9363c6fb39118b80e1 hash_algorithm md5 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-linux-20110315.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2 name linux -- cgit v1.3 From fe9260239145ed008b3ae94d57a96a86b2ef0179 Mon Sep 17 00:00:00 2001 From: Alain Linden Date: Tue, 29 Mar 2011 16:43:38 -0700 Subject: update windows llqtwebkit archive. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 65d9764cc6..7ed98ce3bb 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1086,9 +1086,9 @@ archive hash - 7865b9c3a5d9f9424af56d5d05b82de9 + 1b1b8e104e39c542d69eb37b5ee81818 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-windows-20110210.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/225249/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110329.tar.bz2 name windows -- cgit v1.3 From 44f418f88680d7920df06d169c0b7c38b1131c86 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Wed, 30 Mar 2011 10:26:16 -0700 Subject: update llqtwebkit archive on darwin. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 65d9764cc6..15a822975e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1062,9 +1062,9 @@ archive hash - 0326cb770c7ff995cf822fb330ae9d0c + 76c1015eafcba5ca9932c3009533b51c url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.7.1-darwin-20110308.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/225273/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110329.tar.bz2 name darwin -- cgit v1.3 From 5620e18f5a9486696fadc96204de5611714512bf Mon Sep 17 00:00:00 2001 From: "alain@945battery-guestA-183.lindenlab.com" Date: Wed, 30 Mar 2011 11:46:24 -0700 Subject: revert to old llqtwebkit on linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 65d9764cc6..a259637a94 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1074,9 +1074,9 @@ archive hash - ed7d6cb66e6fcd6dbac41aabe6a0d0c8 + c05a33ee8b6f253b5a744596dfc3707d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/224858/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110323.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20101013.tar.bz2 name linux -- cgit v1.3 From 7054aaba6d6f044cd835e79e3be898d63ce96def Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Mon, 4 Apr 2011 10:57:13 -0700 Subject: use private locations for fmod and kdu. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4951be63bc..a31d280b6f 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -404,7 +404,7 @@ hash 61ead113e6479452e6b690c84b4e9d30 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-darwin-20110222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Darwin/installer/fmod-3.75-darwin-20110222.tar.bz2 name darwin @@ -416,7 +416,7 @@ hash 0c61d643db54d2e5999be8254569d8b3 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-linux-20110223.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Linux/installer/fmod-3.75-linux-20110223.tar.bz2 name linux @@ -428,7 +428,7 @@ hash d9a9a6ad86895353bcd63374a4c1a91d url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-windows-20110222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/CYGWIN/installer/fmod-3.75-windows-20110222.tar.bz2 name windows @@ -920,7 +920,7 @@ hash d91e1f483209cd3eba04135c6a59e829 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-darwin-20110218.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/Darwin/installer/kdu-6.4.1-darwin-20110218.tar.bz2 name darwin @@ -932,7 +932,7 @@ hash fbf8a4f78dff986d7c16b3a0437e033e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-linux-20110311.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/223538/arch/Linux/installer/kdu-6.4.1-linux-20110311.tar.bz2 name linux @@ -944,7 +944,7 @@ hash 6cd9f36465ef73a3df34bf2b3bba2ced url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-windows-20110218.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/CYGWIN/installer/kdu-6.4.1-windows-20110218.tar.bz2 name windows -- cgit v1.3 From 84df608ade855c9ee4e76b78a8345b7f7ad08db3 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Tue, 5 Apr 2011 14:11:28 -0400 Subject: initial pass at adding new mesh libraries to autobuild. Needs a license review and some other fixes, but autobuild configure completes successfully. --- autobuild.xml | 372 ++++++++++++++++++++++++++++++-------- indra/cmake/GooglePerfTools.cmake | 2 +- indra/newview/CMakeLists.txt | 1 - 3 files changed, 295 insertions(+), 80 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4951be63bc..ec5d7d51ac 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -51,6 +51,54 @@ + GLOD + + license + GLOD + license_file + LICENSES/glod.txt + name + GLOD + platforms + + darwin + + archive + + hash + 3a7263246813ecf9aff5a240892f9641 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glod-1.0pre4-darwin-20101007a.tar.bz2 + + name + darwin + + linux + + archive + + hash + ca7368e9a1baf266b82d910fa8f821bd + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glod-1.0pre4-linux-20100920a.tar.bz2 + + name + linux + + windows + + archive + + hash + e40e1eac81dc57d8724f96fd977a3d58 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glod-1.0pre4-windows-20110330.tar.bz2 + + name + windows + + + SDL license @@ -219,6 +267,54 @@ + colladadom + + license + scea + license_file + LICENSES/scea.txt + name + colladadom + platforms + + darwin + + archive + + hash + 86de85fa85aa58b5ee550a6a3c77a7d3 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/colladadom-2.1-darwin-20101117.tar.bz2 + + name + darwin + + linux + + archive + + hash + e515afc3fa4dcb00d9fb06fbb6343669 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/colladadom-2.1-linux-20101102.tar.bz2 + + name + linux + + windows + + archive + + hash + c1e79c9d3084727be35ce140db87717e + url + http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/colladadom-2.1-windows-20110223.tar.bz2 + + name + windows + + + curl license @@ -615,42 +711,6 @@ - google-perftools - - license - bsd - license_file - LICENSES/google-perftools.txt - name - google-perftools - platforms - - linux - - archive - - hash - cf513fc2eec4a414cc804cf408932a45 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_perftools-1.7-linux-20110315.tar.bz2 - - name - linux - - windows - - archive - - hash - 8108bffe1c814be9d035b47dac3d4541 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-perftools-1.0-windows-20101001b.tar.bz2 - - name - windows - - - google_breakpad license @@ -1047,6 +1107,102 @@ + llconvexdecomposition + + license + havok + license_file + on_file + name + llconvexdecomposition + platforms + + darwin + + archive + + hash + 47ef880db4aea1a9561194c54fc28433 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.3-darwin-20101222.tar.bz2 + + name + darwin + + linux + + archive + + hash + f63424076d4fadd133950af0cf9c3564 + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.3-linux-20101222.tar.bz2 + + name + linux + + windows + + archive + + hash + 5ae8bab01189c5dbbc6f383c751e031a + url + scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.3-windows-20101222.tar.bz2 + + name + windows + + + + llconvexdecompositionstub + + license + lgpl + license_file + LICENSES/lgpl.txt + name + llconvexdecompositionstub + platforms + + darwin + + archive + + hash + 349fa0e287fb275bbee43ced194a1db1 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-darwin-20101015.tar.bz2 + + name + darwin + + linux + + archive + + hash + dbf4b15e74ce9042e8500720dffc461a + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-linux-20101015a.tar.bz2 + + name + linux + + windows + + archive + + hash + bba9a4dd04fda1b263f34448a044783b + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-windows-20101015.tar.bz2 + + name + windows + + + llqtwebkit license @@ -1351,6 +1507,42 @@ + pcre + + license + bsd + license_file + LICENSES/bsd.txt + name + pcre + platforms + + darwin + + archive + + hash + ef430ae3b9cdba518ad9952e99b12367 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pcre-7.6-darwin-20101102.tar.bz2 + + name + darwin + + linux + + archive + + hash + 86195b0680604fe86cfbbfb921c31dff + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pcre-7.6-linux-20101029.tar.bz2 + + name + linux + + + pth license @@ -1447,6 +1639,42 @@ + tcmalloc + + license + bsd + license_file + LICENSES/google-perftools.txt + name + google-perftools + platforms + + linux + + archive + + hash + cf513fc2eec4a414cc804cf408932a45 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_perftools-1.7-linux-20110315.tar.bz2 + + name + linux + + windows + + archive + + hash + 8108bffe1c814be9d035b47dac3d4541 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-perftools-1.0-windows-20101001b.tar.bz2 + + name + windows + + + tut license @@ -1740,8 +1968,7 @@ name Release - - VCexpressRelWithDebInfo + VC10msbuildRelWithDebInfo configure @@ -1760,11 +1987,9 @@ name - VCexpressRelWithDebInfo + VC10msbuildRelWithDebInfo - - - VC10msbuildRelWithDebInfo + VC10msbuildRelease configure @@ -1776,18 +2001,16 @@ cmake options - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DCMAKE_BUILD_TYPE:STRING=Release -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife name - VC10msbuildRelWithDebInfo + VC10msbuildRelease - - - VC10msbuildRelease + VCexpressRelWithDebInfo configure @@ -1799,16 +2022,15 @@ cmake options - -DCMAKE_BUILD_TYPE:STRING=Release + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife name - VC10msbuildRelease + VCexpressRelWithDebInfo - name common @@ -2752,21 +2974,21 @@ name Release - - VCexpressRelWithDebInfo + VC10msbuildRelWithDebInfo build - arguments - - "RelWithDebInfo|Win32" - command - vcbuild.exe + msbuild.exe options - /u SecondLife.sln + /verbosity:minimal + /t:build + /p:Configuration=RelWithDebInfo + /p:Platform=Win32 + /p:"VCBuildAdditionalOptions= /useenv" + /p:"VCBuildAdditionalOptions= /incremental" configure @@ -2781,11 +3003,9 @@ name - VCexpressRelWithDebInfo + VC10msbuildRelWithDebInfo - - - VC10msbuildRelWithDebInfo + VC10msbuildRelease build @@ -2794,13 +3014,12 @@ options SecondLife.sln - /verbosity:minimal /t:build - /p:Configuration=RelWithDebInfo + /p:Configuration=Release /p:Platform=Win32 /p:"VCBuildAdditionalOptions= /useenv" /p:"VCBuildAdditionalOptions= /incremental" - + configure @@ -2814,25 +3033,23 @@ name - VC10msbuildRelWithDebInfo + VC10msbuildRelease - - - VC10msbuildRelease + VCexpressRelWithDebInfo build + arguments + + "RelWithDebInfo|Win32" + command - msbuild.exe + vcbuild.exe options + /u SecondLife.sln - /t:build - /p:Configuration=Release - /p:Platform=Win32 - /p:"VCBuildAdditionalOptions= /useenv" - /p:"VCBuildAdditionalOptions= /incremental" - + configure @@ -2846,9 +3063,8 @@ name - VC10msbuildRelease + VCexpressRelWithDebInfo - name windows diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index c401245043..5f653c8fb3 100644 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -12,7 +12,7 @@ else (STANDALONE) set(GOOGLE_PERFTOOLS_FOUND "YES") endif (WINDOWS) if (LINUX) - use_prebuilt_binary(google-perftools) + use_prebuilt_binary(tcmalloc) set(TCMALLOC_LIBRARIES tcmalloc_minimal) set(PROFILER_LIBRARIES profiler) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 6b3b1c4bb0..73b4d41895 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1462,7 +1462,6 @@ if (WINDOWS) LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" LINK_FLAGS_RELEASE ${release_flags} ) - LINK_FLAGS_RELEASE "" set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /INCLUDE:__tcmalloc" -- cgit v1.3 From f23bd166fc27bc7b17f54e657c5919f275730fbd Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 5 Apr 2011 16:48:05 -0400 Subject: remove obsolete workaround configurations --- autobuild.xml | 99 +++++++++++------------------------------------------------ 1 file changed, 18 insertions(+), 81 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a31d280b6f..1a9788047e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1740,8 +1740,7 @@ name Release - - VCexpressRelWithDebInfo + VC10msbuildRelWithDebInfo configure @@ -1760,11 +1759,9 @@ name - VCexpressRelWithDebInfo + VC10msbuildRelWithDebInfo - - - VC10msbuildRelWithDebInfo + VC10msbuildRelease configure @@ -1776,18 +1773,16 @@ cmake options - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DCMAKE_BUILD_TYPE:STRING=Release -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife name - VC10msbuildRelWithDebInfo + VC10msbuildRelease - - - VC10msbuildRelease + VCexpressRelWithDebInfo configure @@ -1799,16 +1794,15 @@ cmake options - -DCMAKE_BUILD_TYPE:STRING=Release + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife name - VC10msbuildRelease + VCexpressRelWithDebInfo - name common @@ -2752,7 +2746,16 @@ name Release - + VC10msbuildRelWithDebInfo + + name + VC10msbuildRelWithDebInfo + + VC10msbuildRelease + + name + VC10msbuildRelease + VCexpressRelWithDebInfo build @@ -2783,72 +2786,6 @@ name VCexpressRelWithDebInfo - - - VC10msbuildRelWithDebInfo - - build - - command - msbuild.exe - options - - SecondLife.sln - /verbosity:minimal - /t:build - /p:Configuration=RelWithDebInfo - /p:Platform=Win32 - /p:"VCBuildAdditionalOptions= /useenv" - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - VC10msbuildRelWithDebInfo - - - - VC10msbuildRelease - - build - - command - msbuild.exe - options - - SecondLife.sln - /t:build - /p:Configuration=Release - /p:Platform=Win32 - /p:"VCBuildAdditionalOptions= /useenv" - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - VC10msbuildRelease - - name windows -- cgit v1.3 From 8d452969dbfd5513186425511f7b4eb211278887 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 5 Apr 2011 17:03:40 -0400 Subject: remove unused configurations for standalone, and change open source configuration names from "OpenSource" prefix to "OS" suffix --- autobuild.xml | 593 ++++++++-------------------------------------------------- 1 file changed, 76 insertions(+), 517 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 1a9788047e..a6444b0b86 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1598,7 +1598,7 @@ name Debug - OpenSourceDebug + DebugOS configure @@ -1613,61 +1613,13 @@ name - OpenSourceDebug + DebugOS - OpenSourceRelWithDebInfo - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - OpenSourceRelWithDebInfo - - OpenSourceRelease - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - OpenSourceRelease - - OpenSourceStandAloneDebug + RelWithDebInfo - configure + build - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Debug - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - name - OpenSourceStandAloneDebug - - OpenSourceStandAloneRelWithDebInfo - configure command @@ -1681,30 +1633,10 @@ name - OpenSourceStandAloneRelWithDebInfo + RelWithDebInfo - OpenSourceStandAloneRelease + RelWithDebInfoOS - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - OpenSourceStandAloneRelease - - RelWithDebInfo - - build - - configure command @@ -1718,7 +1650,7 @@ name - RelWithDebInfo + RelWithDebInfoOS Release @@ -1740,35 +1672,10 @@ name Release - VC10msbuildRelWithDebInfo + ReleaseOS configure - arguments - - ../indra - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - VC10msbuildRelWithDebInfo - - VC10msbuildRelease - - configure - - arguments - - ../indra - command cmake options @@ -1780,28 +1687,7 @@ name - VC10msbuildRelease - - VCexpressRelWithDebInfo - - configure - - arguments - - ../indra - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - VCexpressRelWithDebInfo + ReleaseOS name @@ -1850,7 +1736,7 @@ name Debug - OpenSourceDebug + DebugOS build @@ -1878,102 +1764,19 @@ name - OpenSourceDebug + DebugOS - OpenSourceRelWithDebInfo - - build - - command - xcodebuild - options - - -configuration RelWithDebInfo - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceRelWithDebInfo - - OpenSourceRelease - - build - - command - xcodebuild - options - - -configuration Release - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceRelease - - OpenSourceStandAloneDebug + RelWithDebInfo build - - command - xcodebuild - options - - -configuration Debug - -project SecondLife.xcodeproj - - - configure arguments - ../indra - - options - - -G - 'Xcode' - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE + | + grep + -v + setenv - - name - OpenSourceStandAloneDebug - - OpenSourceStandAloneRelWithDebInfo - - build - command xcodebuild options @@ -1992,15 +1795,17 @@ -G 'Xcode' - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + default + True name - OpenSourceStandAloneRelWithDebInfo + RelWithDebInfo - OpenSourceStandAloneRelease + RelWithDebInfoOS build @@ -2008,7 +1813,7 @@ xcodebuild options - -configuration Release + -configuration RelWithDebInfo -project SecondLife.xcodeproj @@ -2022,15 +1827,15 @@ -G 'Xcode' - -DSTANDALONE:BOOL=TRUE + -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE name - OpenSourceStandAloneRelease + RelWithDebInfoOS - RelWithDebInfo + Release build @@ -2045,7 +1850,7 @@ xcodebuild options - -configuration RelWithDebInfo + -configuration Release -project SecondLife.xcodeproj @@ -2064,22 +1869,13 @@ -DFMOD=TRUE - default - True name - RelWithDebInfo + Release - Release + ReleaseOS build - arguments - - | - grep - -v - setenv - command xcodebuild options @@ -2098,13 +1894,13 @@ -G 'Xcode' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Release + ReleaseOS name @@ -2145,7 +1941,7 @@ name Debug - OpenSourceDebug + DebugOS build @@ -2172,9 +1968,9 @@ name - OpenSourceDebug + DebugOS - OpenSourceRelWithDebInfo + RelWithDebInfo build @@ -2195,15 +1991,17 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + default + True name - OpenSourceRelWithDebInfo + RelWithDebInfo - OpenSourceRelease + RelWithDebInfoOS build @@ -2230,96 +2028,9 @@ name - OpenSourceRelease + RelWithDebInfoOS - OpenSourceStandAloneDebug - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceStandAloneDebug - - OpenSourceStandAloneRelWithDebInfo - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceStandAloneRelWithDebInfo - - OpenSourceStandAloneRelease - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceStandAloneRelease - - RelWithDebInfo + Release build @@ -2345,12 +2056,10 @@ -DFMOD=TRUE - default - True name - RelWithDebInfo + Release - Release + ReleaseOS build @@ -2371,13 +2080,13 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE + -DSTANDALONE:BOOL=FALSE + -DINSTALL_PROPRIETARY=FALSE + -DFMOD=FALSE name - Release + ReleaseOS default @@ -2439,7 +2148,7 @@ name Debug - OpenSourceDebug + DebugOS build @@ -2479,77 +2188,9 @@ name - OpenSourceDebug - - OpenSourceRelWithDebInfo - - build - - arguments - - SecondLife.sln - - command - devenv.com - options - - /build - RelWithDebInfo - - - configure - - arguments - - ../indra - - options - - -G - "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceRelWithDebInfo - - OpenSourceRelease - - build - - arguments - - SecondLife.sln - - command - devenv.com - options - - /build - Release - - - configure - - arguments - - ../indra - - options - - -G - "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceRelease + DebugOS - OpenSourceStandAloneDebug + RelWithDebInfo build @@ -2558,11 +2199,11 @@ SecondLife.sln command - devenv.com + BuildConsole options /build - Debug + "/cfg=RelWithDebInfo|Win32" configure @@ -2583,15 +2224,17 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE + -DSTANDALONE:BOOL=OFF + -DINSTALL_PROPRIETARY=TRUE + -DFMOD=TRUE + default + True name - OpenSourceStandAloneDebug + RelWithDebInfo - OpenSourceStandAloneRelWithDebInfo + RelWithDebInfoOS build @@ -2617,91 +2260,13 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=TRUE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE - - - name - OpenSourceStandAloneRelWithDebInfo - - OpenSourceStandAloneRelease - - build - - arguments - - SecondLife.sln - - command - devenv.com - options - - /build - Release - - - configure - - arguments - - ../indra - - options - - -G - "Visual Studio 10" - -DSTANDALONE:BOOL=TRUE + -DSTANDALONE:BOOL=FALSE -DINSTALL_PROPRIETARY=FALSE -DFMOD=FALSE name - OpenSourceStandAloneRelease - - RelWithDebInfo - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=RelWithDebInfo|Win32" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - RelWithDebInfo - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE - - - default - True - name - RelWithDebInfo + RelWithDebInfoOS Release @@ -2746,34 +2311,28 @@ name Release - VC10msbuildRelWithDebInfo - - name - VC10msbuildRelWithDebInfo - - VC10msbuildRelease - - name - VC10msbuildRelease - - VCexpressRelWithDebInfo + ReleaseOS build arguments - "RelWithDebInfo|Win32" + SecondLife.sln command - vcbuild.exe + devenv.com options - /u - SecondLife.sln + /build + Release configure + arguments + + ../indra + options -G @@ -2784,7 +2343,7 @@ name - VCexpressRelWithDebInfo + ReleaseOS name -- cgit v1.3 From 8f0d59cab387b266ce777a0487effeb5da89f1f1 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 6 Apr 2011 05:46:45 -0400 Subject: OPEN-50 (partial): refactor cmake switches to common configurations and default values --- autobuild.xml | 69 ++++++--------------------------------------- indra/cmake/Variables.cmake | 1 + 2 files changed, 10 insertions(+), 60 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a6444b0b86..d78ef2325a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1590,7 +1590,6 @@ options -DCMAKE_BUILD_TYPE:STRING=Debug - -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife @@ -1607,9 +1606,11 @@ options -DCMAKE_BUILD_TYPE:STRING=Debug - -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DUSE_PRECOMPILED_HEADERS=ON + -DFMOD=FALSE name @@ -1627,7 +1628,6 @@ options -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife @@ -1644,9 +1644,11 @@ options -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DUSE_PRECOMPILED_HEADERS=ON + -DFMOD=FALSE name @@ -1664,7 +1666,6 @@ options -DCMAKE_BUILD_TYPE:STRING=Release - -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife @@ -1681,9 +1682,11 @@ options -DCMAKE_BUILD_TYPE:STRING=Release - -DUNATTENDED:BOOL=OFF -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DUSE_PRECOMPILED_HEADERS=ON + -DFMOD=FALSE name @@ -1728,9 +1731,6 @@ -G 'Xcode' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE name @@ -1758,9 +1758,6 @@ -G 'Xcode' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -1795,9 +1792,6 @@ -G 'Xcode' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE default @@ -1827,9 +1821,6 @@ -G 'Xcode' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -1864,9 +1855,6 @@ -G 'Xcode' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE name @@ -1894,9 +1882,6 @@ -G 'Xcode' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -1933,9 +1918,6 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE name @@ -1962,9 +1944,6 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -1991,9 +1970,6 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE default @@ -2022,9 +1998,6 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -2051,9 +2024,6 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE name @@ -2080,9 +2050,6 @@ -G 'Unix Makefiles' - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -2140,9 +2107,6 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE name @@ -2182,9 +2146,6 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -2224,9 +2185,6 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE default @@ -2260,9 +2218,6 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name @@ -2303,9 +2258,6 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=OFF - -DINSTALL_PROPRIETARY=TRUE - -DFMOD=TRUE name @@ -2337,9 +2289,6 @@ -G "Visual Studio 10" - -DSTANDALONE:BOOL=FALSE - -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE name diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 77dd34d122..8c9c375790 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -135,6 +135,7 @@ set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside") set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.") +set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.") if (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics) set(SERVER ON CACHE BOOL "Build Second Life server software.") -- cgit v1.3 From a738dcaa8b3d25a0c2ed0c7dc65c06ce16a69176 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Wed, 6 Apr 2011 13:52:42 -0400 Subject: tcmalloc rename --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ec5d7d51ac..257eb6ec00 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1646,7 +1646,7 @@ license_file LICENSES/google-perftools.txt name - google-perftools + tcmalloc platforms linux -- cgit v1.3 From 1e1fde5eb15c08fb664bd2f6a6f3176e7968b475 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 6 Apr 2011 14:45:27 -0500 Subject: OPEN-58 Ditch GL package for glext.h package since glut.h isn't used anywhere. Probably don't need glext headers for mac or linux as they come in with system updates. --- autobuild.xml | 36 ++++++------------------------------ indra/cmake/OpenGL.cmake | 3 +-- 2 files changed, 7 insertions(+), 32 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ec5d7d51ac..38a6d105b2 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3,48 +3,24 @@ installables - GL + glext license - GL + glext license_file - LICENSES/GL.txt + LICENSES/glext.txt name - GL + glext platforms - darwin - - archive - - hash - 0b7c1d43dc2b39301fef6c05948fb826 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-darwin-20101004.tar.bz2 - - name - darwin - - linux - - archive - - hash - d85d88088360aee5b67105ad93b5ad16 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-linux-20100929.tar.bz2 - - name - linux - windows archive hash - f8d98cbe78d5aafbc7aaabf840325aaf + 5de58ca0fe19abf68b25956762ee0d29 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-0.0.0-windows-20110303.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 name windows diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake index 661666f00d..0a3dd976b4 100644 --- a/indra/cmake/OpenGL.cmake +++ b/indra/cmake/OpenGL.cmake @@ -2,8 +2,7 @@ include(Prebuilt) if (NOT STANDALONE) - use_prebuilt_binary(GL) - # possible glh_linear should have its own .cmake file instead + use_prebuilt_binary(glext) use_prebuilt_binary(glh_linear) set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) endif (NOT STANDALONE) -- cgit v1.3 From 3e5961d1830163a23ac6e813b348e7f50967419a Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 6 Apr 2011 15:54:27 -0400 Subject: Updated llconvexdecomposition library build --- autobuild.xml | 12 ++++++------ indra/cmake/Python.cmake | 0 2 files changed, 6 insertions(+), 6 deletions(-) mode change 100644 => 100755 indra/cmake/Python.cmake (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ec5d7d51ac..65360f1526 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1122,9 +1122,9 @@ archive hash - 47ef880db4aea1a9561194c54fc28433 + 3057f3978dff2b8e1216a19c2fa56604 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.3-darwin-20101222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/225838/arch/Darwin/installer/llconvexdecomposition-0.1-darwin-20110406.tar.bz2 name darwin @@ -1134,9 +1134,9 @@ archive hash - f63424076d4fadd133950af0cf9c3564 + e92c9d621b034b1bf312c60df48fc798 url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.3-linux-20101222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/225838/arch/Linux/installer/llconvexdecomposition-0.1-linux-20110406.tar.bz2 name linux @@ -1146,9 +1146,9 @@ archive hash - 5ae8bab01189c5dbbc6f383c751e031a + d8ecfc647df41d546b1e8c697571e0ea url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.3-windows-20101222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/225838/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110406.tar.bz2 name windows diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake old mode 100644 new mode 100755 -- cgit v1.3 From 31576e2d51214b5f535d9dc01a72f702cdc734a0 Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Wed, 6 Apr 2011 23:26:05 +0100 Subject: OPEN-50 Changing windows build command from 'devenv.com', to 'msbuild.exe' along with associated options and arguments. --- autobuild.xml | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d78ef2325a..b90c6ec2f3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2121,26 +2121,23 @@ SecondLife.sln command - devenv.com + msbuild.exe options - /build - Debug + /p:Configuration=Debug + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" configure arguments - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution SecondLife.sln - --config - Debug - --startup - secondlife-bin options @@ -2201,11 +2198,16 @@ SecondLife.sln command - devenv.com + msbuild.exe options - /build - RelWithDebInfo + /p:Configuration=RelWithDebInfo + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" configure @@ -2272,11 +2274,16 @@ SecondLife.sln command - devenv.com + msbuild.exe options - /build - Release + /p:Configuration=Release + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" configure -- cgit v1.3 From 8cf15f1778e941f8aa33442095f1ad37f793a855 Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Thu, 7 Apr 2011 12:41:43 +0100 Subject: OPEN-50 Adding UNATTENDED=ON to Windows' configurations so that the viewer can be built by all users out-of-the-box. OS Devs with full VS can switch it on if they want, however this is not needed any more for Open Source builds. --- autobuild.xml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index b90c6ec2f3..f71a2621ba 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2143,6 +2143,7 @@ -G "Visual Studio 10" + -DUNATTENDED:BOOL=ON name @@ -2220,6 +2221,7 @@ -G "Visual Studio 10" + -DUNATTENDED:BOOL=ON name @@ -2296,6 +2298,7 @@ -G "Visual Studio 10" + -DUNATTENDED:BOOL=ON name -- cgit v1.3 From b996d6cb6a2c1a98a25007cf68050231b55186ea Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Thu, 7 Apr 2011 12:54:17 +0100 Subject: OPEN-50 Moving common configuration arguments to the common entries. --- autobuild.xml | 48 ++++++++++++------------------------------------ 1 file changed, 12 insertions(+), 36 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f71a2621ba..c14e24d904 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1612,6 +1612,10 @@ -DUSE_PRECOMPILED_HEADERS=ON -DFMOD=FALSE + arguments + + ../indra + name DebugOS @@ -1650,6 +1654,10 @@ -DUSE_PRECOMPILED_HEADERS=ON -DFMOD=FALSE + arguments + + ../indra + name RelWithDebInfoOS @@ -1688,6 +1696,10 @@ -DUSE_PRECOMPILED_HEADERS=ON -DFMOD=FALSE + arguments + + ../indra + name ReleaseOS @@ -1750,10 +1762,6 @@ configure - arguments - - ../indra - options -G @@ -1813,10 +1821,6 @@ configure - arguments - - ../indra - options -G @@ -1874,10 +1878,6 @@ configure - arguments - - ../indra - options -G @@ -1936,10 +1936,6 @@ configure - arguments - - ../indra - options -G @@ -1990,10 +1986,6 @@ configure - arguments - - ../indra - options -G @@ -2042,10 +2034,6 @@ configure - arguments - - ../indra - options -G @@ -2135,10 +2123,6 @@ configure - arguments - - SecondLife.sln - options -G @@ -2213,10 +2197,6 @@ configure - arguments - - ../indra - options -G @@ -2290,10 +2270,6 @@ configure - arguments - - ../indra - options -G -- cgit v1.3 From fa5852a71002eccf6d8083307faac1c51090399b Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Thu, 7 Apr 2011 14:27:39 +0100 Subject: OPEN-50 Changed the default number of job slots, for Linux configurations, to a level (2) that all should be able to manage. --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c14e24d904..3fc0ab5edf 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1931,7 +1931,7 @@ make options - -j 12 + -j 2 configure @@ -1981,7 +1981,7 @@ make options - -j 12 + -j 2 configure @@ -2029,7 +2029,7 @@ make options - -j 12 + -j 2 configure -- cgit v1.3 From d490081fe29adabfd3a2dba81f5e65d90db3fb51 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 8 Apr 2011 17:12:26 -0400 Subject: changes for newer collada build --- autobuild.xml | 52 +++++++++++++++++++------------------- indra/cmake/Copy3rdPartyLibs.cmake | 4 +-- indra/cmake/LLPrimitive.cmake | 4 +-- indra/newview/CMakeLists.txt | 6 ++--- 4 files changed, 33 insertions(+), 33 deletions(-) mode change 100644 => 100755 indra/cmake/Copy3rdPartyLibs.cmake mode change 100644 => 100755 indra/cmake/LLPrimitive.cmake mode change 100644 => 100755 indra/newview/CMakeLists.txt (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ee401cc63a..392cdbabea 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3,30 +3,6 @@ installables - glext - - license - glext - license_file - LICENSES/glext.txt - name - glext - platforms - - windows - - archive - - hash - 5de58ca0fe19abf68b25956762ee0d29 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 - - name - windows - - - GLOD license @@ -282,9 +258,9 @@ archive hash - c1e79c9d3084727be35ce140db87717e + 9667a5cde31fd8957e07b61f643d8404 url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/colladadom-2.1-windows-20110223.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226086/arch/CYGWIN/installer/colladadom-2.2-windows-20110408.tar.bz2 name windows @@ -603,6 +579,30 @@ + glext + + license + glext + license_file + LICENSES/glext.txt + name + glext + platforms + + windows + + archive + + hash + 5de58ca0fe19abf68b25956762ee0d29 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 + + name + windows + + + glh_linear license diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake old mode 100644 new mode 100755 index a301a8d6ba..d4c478c3c7 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -39,7 +39,7 @@ if(WINDOWS) libapriconv-1.dll ssleay32.dll libeay32.dll - libcollada14dom21-d.dll + libcollada14dom22-d.dll glod.dll ) @@ -51,7 +51,7 @@ if(WINDOWS) libapriconv-1.dll ssleay32.dll libeay32.dll - libcollada14dom21.dll + libcollada14dom22.dll glod.dll ) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake old mode 100644 new mode 100755 index 4bdbfe46e2..4d6a84b29e --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -14,8 +14,8 @@ if (WINDOWS) set(LLPRIMITIVE_LIBRARIES debug llprimitive optimized llprimitive - debug libcollada14dom21-d - optimized libcollada14dom21 + debug libcollada14dom22-d + optimized libcollada14dom22 debug libboost_filesystem-d optimized libboost_filesystem debug libboost_system-d diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt old mode 100644 new mode 100755 index 3ed10c08ab..d70f3ec337 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1489,9 +1489,9 @@ if (WINDOWS) ${SHARED_LIB_STAGING_DIR}/Release/glod.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/glod.dll ${SHARED_LIB_STAGING_DIR}/Debug/glod.dll - ${SHARED_LIB_STAGING_DIR}/Release/libcollada14dom21.dll - ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libcollada14dom21.dll - ${SHARED_LIB_STAGING_DIR}/Debug/libcollada14dom21-d.dll + ${SHARED_LIB_STAGING_DIR}/Release/libcollada14dom22.dll + ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libcollada14dom22.dll + ${SHARED_LIB_STAGING_DIR}/Debug/libcollada14dom22-d.dll ${SHARED_LIB_STAGING_DIR}/Release/openjpeg.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/openjpeg.dll ${SHARED_LIB_STAGING_DIR}/Debug/openjpegd.dll -- cgit v1.3 From 0f245490a43544b1687558b070359ef85f15f9ab Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Fri, 8 Apr 2011 19:04:01 -0400 Subject: updating colladadom libraries to use the newly autobuilt versions. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 392cdbabea..8b94cf2077 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - 86de85fa85aa58b5ee550a6a3c77a7d3 + 1bc84a4f4299365120914e3e4dcc5602 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/colladadom-2.1-darwin-20101117.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226114/arch/Darwin/installer/colladadom-2.2-darwin-20110408.tar.bz2 name darwin @@ -246,9 +246,9 @@ archive hash - e515afc3fa4dcb00d9fb06fbb6343669 + 07343df2fcfd6ae73c62bb4099061eb6 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/colladadom-2.1-linux-20101102.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226114/arch/Linux/installer/colladadom-2.2-linux-20110408.tar.bz2 name linux @@ -258,9 +258,9 @@ archive hash - 9667a5cde31fd8957e07b61f643d8404 + 10614d1b7857277ccf6d79e076e22f4c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226086/arch/CYGWIN/installer/colladadom-2.2-windows-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226114/arch/CYGWIN/installer/colladadom-2.2-windows-20110408.tar.bz2 name windows -- cgit v1.3 From 235a4477abfb4875e5d08ce60251b389768319b7 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Fri, 8 Apr 2011 19:54:36 -0400 Subject: updating GLOD libraries to be 2010/autobuild compatible. Linux was manually built as our build machines are having difficulties building it. Will revisit this later. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8b94cf2077..75b0c6823e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -18,9 +18,9 @@ archive hash - 3a7263246813ecf9aff5a240892f9641 + 1eea55da1625518390af4c315a0d43c3 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glod-1.0pre4-darwin-20101007a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226145/arch/Darwin/installer/glod-1.0pre4-darwin-20110408.tar.bz2 name darwin @@ -30,9 +30,9 @@ archive hash - ca7368e9a1baf266b82d910fa8f821bd + 5aeb923a0a50023d0b3a6a8a81cc3d06 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glod-1.0pre4-linux-20100920a.tar.bz2 + https://viewer-source-downloads.s3.amazonaws.com/install_pkgs/glod-1.0pre4-linux-20110408.tar.bz2 name linux @@ -42,9 +42,9 @@ archive hash - e40e1eac81dc57d8724f96fd977a3d58 + 7fd216bdcf9be961a78bfaef31a617f1 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glod-1.0pre4-windows-20110330.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226145/arch/CYGWIN/installer/glod-1.0pre4-windows-20110408.tar.bz2 name windows -- cgit v1.3 From a6d87cbfea7b70e88a4b875d7c9af320c6fe2948 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Fri, 8 Apr 2011 21:18:35 -0400 Subject: updated colladadom package with header files in the correct location. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 75b0c6823e..73a49d742d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - 1bc84a4f4299365120914e3e4dcc5602 + d2b666a8eec1cadc81152ae94cad249f url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226114/arch/Darwin/installer/colladadom-2.2-darwin-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226180/arch/Darwin/installer/colladadom-2.2-darwin-20110408.tar.bz2 name darwin @@ -246,9 +246,9 @@ archive hash - 07343df2fcfd6ae73c62bb4099061eb6 + 414a7db51edbbb9e5fabb2dbea4c19a0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226114/arch/Linux/installer/colladadom-2.2-linux-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226180/arch/Linux/installer/colladadom-2.2-linux-20110409.tar.bz2 name linux @@ -258,9 +258,9 @@ archive hash - 10614d1b7857277ccf6d79e076e22f4c + 7d8819dd334ccccc2b82747565fa6077 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226114/arch/CYGWIN/installer/colladadom-2.2-windows-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226180/arch/CYGWIN/installer/colladadom-2.2-windows-20110408.tar.bz2 name windows -- cgit v1.3 From 86a66cea7482428f8314a49d1b8ea2a1b2bad687 Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Sat, 9 Apr 2011 16:44:02 +0100 Subject: OPEN-50 Adding missing options for VC Release build --- autobuild.xml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3fc0ab5edf..76e551938a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1676,6 +1676,9 @@ -DCMAKE_BUILD_TYPE:STRING=Release -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DUSE_PRECOMPILED_HEADERS=ON + -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE name -- cgit v1.3 From 675e0cfd993ca6fab5843bf7ad0254e5e14254fc Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Mon, 11 Apr 2011 14:12:49 -0500 Subject: Use tcmalloc from 3p-google-perftools on windows --- autobuild.xml | 8 ++++---- scripts/messages/message_template.msg.sha1 | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 73a49d742d..d12bb1d3f7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -42,9 +42,9 @@ archive hash - 7fd216bdcf9be961a78bfaef31a617f1 + c4ae6cddc04e0b2908a301726a53922c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226145/arch/CYGWIN/installer/glod-1.0pre4-windows-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226194/arch/CYGWIN/installer/glod-1.0pre4-windows-20110408.tar.bz2 name windows @@ -1642,9 +1642,9 @@ archive hash - 8108bffe1c814be9d035b47dac3d4541 + 8308f7bd68bb7083655753b7abe7225f url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-perftools-1.0-windows-20101001b.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226287/arch/CYGWIN/installer/google_perftools-1.7-windows-20110411.tar.bz2 name windows diff --git a/scripts/messages/message_template.msg.sha1 b/scripts/messages/message_template.msg.sha1 index 41e70011af..6486d92851 100644 --- a/scripts/messages/message_template.msg.sha1 +++ b/scripts/messages/message_template.msg.sha1 @@ -1 +1 @@ -ce3be58f4ea395c272fcfa3e6b6dad027c188e0d \ No newline at end of file +465164e1a07f63d68c4ad1f00c19805dfb6ee2d7 \ No newline at end of file -- cgit v1.3 From d4ac1fec779437136d19421076ee7fdf3575207f Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Mon, 11 Apr 2011 21:04:02 +0100 Subject: OPEN-50 Moved USE_PRECOMPILED_HEADERS=ON from common, to Windows only settings as it doesn't appear to be used by others. --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 76e551938a..4acad499a9 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1609,7 +1609,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DUSE_PRECOMPILED_HEADERS=ON -DFMOD=FALSE arguments @@ -1651,7 +1650,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DUSE_PRECOMPILED_HEADERS=ON -DFMOD=FALSE arguments @@ -1696,7 +1694,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DUSE_PRECOMPILED_HEADERS=ON -DFMOD=FALSE arguments @@ -2131,6 +2128,7 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON name @@ -2205,6 +2203,7 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON name @@ -2278,6 +2277,7 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON name -- cgit v1.3 From a32080afac1316154282e4ad2361af6bdce5e2a5 Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Mon, 11 Apr 2011 21:24:04 +0100 Subject: OPEN-50 Removing unnecessary FMOD=FALSE from common. INSTALL_PROPRIETARY=FALSE covers this. --- autobuild.xml | 3 --- 1 file changed, 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4acad499a9..1352e92ecc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1609,7 +1609,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE arguments @@ -1650,7 +1649,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE arguments @@ -1694,7 +1692,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DFMOD=FALSE arguments -- cgit v1.3 From 8fbe2bc2d6eebb6d225e59e25fae36137bca0418 Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Mon, 11 Apr 2011 21:27:24 +0100 Subject: OPEN-50 Adding settings to Windows for controlling proprietary libs. This allows quictime to be used. Additionally, once a solution for FMOD is found this can also be enabled. --- autobuild.xml | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 1352e92ecc..c5ec4b98ea 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2126,6 +2126,9 @@ "Visual Studio 10" -DUNATTENDED:BOOL=ON -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE name @@ -2201,6 +2204,9 @@ "Visual Studio 10" -DUNATTENDED:BOOL=ON -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE name @@ -2275,6 +2281,9 @@ "Visual Studio 10" -DUNATTENDED:BOOL=ON -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE name -- cgit v1.3 From 36d528e5dfb8ff8d5a349a023c2ebb95c5efb158 Mon Sep 17 00:00:00 2001 From: "niel@nirvana.planescape.home" Date: Mon, 11 Apr 2011 21:29:50 +0100 Subject: OPEN-50 Adding LL_RELEASE_FOR_DOWNLOAD to ReleaseOS's common settings. --- autobuild.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c5ec4b98ea..a9ab71da29 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1692,6 +1692,7 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE + -DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES arguments -- cgit v1.3 From b13b6ef014c251b77a42e40c3fa08ccd05326f16 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Tue, 12 Apr 2011 12:07:45 -0500 Subject: New tcmalloc. --- autobuild.xml | 8 ++++---- indra/llmath/lloctree.h | 10 +--------- 2 files changed, 5 insertions(+), 13 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d12bb1d3f7..fee61b7f2d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1630,9 +1630,9 @@ archive hash - cf513fc2eec4a414cc804cf408932a45 + e2e260409cbd9ac95bfbce929d88accb url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_perftools-1.7-linux-20110315.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226424/arch/Linux/installer/google_perftools-1.7-linux-20110412.tar.bz2 name linux @@ -1642,9 +1642,9 @@ archive hash - 8308f7bd68bb7083655753b7abe7225f + f68604547012e92db912b324c69fbeac url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226287/arch/CYGWIN/installer/google_perftools-1.7-windows-20110411.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226424/arch/CYGWIN/installer/google_perftools-1.7-windows-20110412.tar.bz2 name windows diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h index fdfc24f8b7..49e84cf1b4 100644 --- a/indra/llmath/lloctree.h +++ b/indra/llmath/lloctree.h @@ -580,19 +580,11 @@ public: } protected: - typedef enum - { - CENTER = 0, - SIZE = 1, - MAX = 2, - MIN = 3 - } eDName; - LLVector4a mCenter; LLVector4a mSize; LLVector4a mMax; LLVector4a mMin; - + oct_node* mParent; U8 mOctant; -- cgit v1.3 From 2027eb8c2bfdc7952fc613f0642192e0c807ec07 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Tue, 12 Apr 2011 12:27:03 -0500 Subject: Backed out changeset: c5a0cc9abf49 --- autobuild.xml | 8 ++++---- indra/llmath/lloctree.h | 10 +++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index fee61b7f2d..d12bb1d3f7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1630,9 +1630,9 @@ archive hash - e2e260409cbd9ac95bfbce929d88accb + cf513fc2eec4a414cc804cf408932a45 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226424/arch/Linux/installer/google_perftools-1.7-linux-20110412.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_perftools-1.7-linux-20110315.tar.bz2 name linux @@ -1642,9 +1642,9 @@ archive hash - f68604547012e92db912b324c69fbeac + 8308f7bd68bb7083655753b7abe7225f url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226424/arch/CYGWIN/installer/google_perftools-1.7-windows-20110412.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226287/arch/CYGWIN/installer/google_perftools-1.7-windows-20110411.tar.bz2 name windows diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h index 49e84cf1b4..fdfc24f8b7 100644 --- a/indra/llmath/lloctree.h +++ b/indra/llmath/lloctree.h @@ -580,11 +580,19 @@ public: } protected: + typedef enum + { + CENTER = 0, + SIZE = 1, + MAX = 2, + MIN = 3 + } eDName; + LLVector4a mCenter; LLVector4a mSize; LLVector4a mMax; LLVector4a mMin; - + oct_node* mParent; U8 mOctant; -- cgit v1.3 From e0c509d4634960ba33be3ce744110934b381ba4d Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 12 Apr 2011 14:39:31 -0400 Subject: updated builds used for pcre, collada on mac --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d12bb1d3f7..43d297df6d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - d2b666a8eec1cadc81152ae94cad249f + cb307f03a17941333bee13495450107c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226180/arch/Darwin/installer/colladadom-2.2-darwin-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226422/arch/Darwin/installer/colladadom-2.2-darwin-20110412.tar.bz2 name darwin @@ -1498,9 +1498,9 @@ archive hash - ef430ae3b9cdba518ad9952e99b12367 + cb04654cdfe93e3c8d16fef0c475e2bb url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pcre-7.6-darwin-20101102.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/226370/arch/Darwin/installer/pcre-7.6-darwin-20110411.tar.bz2 name darwin -- cgit v1.3 From 12f9f521ee6baeb39b403dfe15168de7ecfd9349 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 13 Apr 2011 13:43:32 -0500 Subject: Fix for bad default setting and libpng using /GL --- autobuild.xml | 4 ++-- indra/newview/app_settings/settings.xml | 2 +- indra/newview/llpolymesh.cpp | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 43d297df6d..03db2f8d49 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1026,9 +1026,9 @@ archive hash - 735a955e6442733e2342ab12c1087488 + f194ba857ca8dd86483a3ef24535d0db url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.5.1-windows-20110221.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/226532/arch/CYGWIN/installer/libpng-1.5.1-windows-20110413.tar.bz2 name windows diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 37a9c7304d..73f63458a3 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -7178,7 +7178,7 @@ Type Boolean Value - 1.0 + 0 RenderLocalLights diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp index 24f84b2ddf..4b2c569cc3 100644 --- a/indra/newview/llpolymesh.cpp +++ b/indra/newview/llpolymesh.cpp @@ -768,9 +768,9 @@ LLPolyMesh::LLPolyMesh(LLPolyMeshSharedData *shared_data, LLPolyMesh *reference_ // Allocate memory without initializing every vector // NOTE: This makes asusmptions about the size of LLVector[234] int nverts = mSharedData->mNumVertices; - int nfloats = nverts * (2*4 + 3*3 + 2 + 4); - //use 16 byte aligned vertex data to make LLPolyMesh SSE friendly - mVertexData = (F32*) malloc(nfloats*4); + int nfloats = nverts * (2*4 + 3*3 + 2 + 4); + //use 16 byte aligned vertex data to make LLPolyMesh SSE friendly + mVertexData = (F32*) malloc(nfloats*4); int offset = 0; mCoords = (LLVector4*)(mVertexData + offset); offset += 4*nverts; mNormals = (LLVector4*)(mVertexData + offset); offset += 4*nverts; -- cgit v1.3 From 7b62a960d102a3e48cd3f21d000f6789b224ae85 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 13 Apr 2011 16:50:11 -0400 Subject: merge --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 03db2f8d49..e1e009ab59 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - cb307f03a17941333bee13495450107c + 4d07ad210dbf4532e145206bd8e89a18 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226422/arch/Darwin/installer/colladadom-2.2-darwin-20110412.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226539/arch/Darwin/installer/colladadom-2.2-darwin-20110413.tar.bz2 name darwin -- cgit v1.3 From 6db302578a40bba7eaca9f4f22bb7215b77fdc3a Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 13 Apr 2011 16:58:04 -0400 Subject: newer glod, colladadom builds on mac --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index e1e009ab59..46b1fa2ff6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -18,9 +18,9 @@ archive hash - 1eea55da1625518390af4c315a0d43c3 + 7c546f54f6ed654f713c778af3925dd4 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226145/arch/Darwin/installer/glod-1.0pre4-darwin-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226566/arch/Darwin/installer/glod-1.0pre4-darwin-20110413.tar.bz2 name darwin @@ -234,9 +234,9 @@ archive hash - 4d07ad210dbf4532e145206bd8e89a18 + cff08178fc9720ab37646e142edeaa6d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226539/arch/Darwin/installer/colladadom-2.2-darwin-20110413.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226567/arch/Darwin/installer/colladadom-2.2-darwin-20110413.tar.bz2 name darwin -- cgit v1.3 From bf366253328846b60dbe85c49de08dbab96d741f Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 13 Apr 2011 16:33:41 -0500 Subject: Fix for bad fmod URL's --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 03db2f8d49..9b035eea66 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -452,7 +452,7 @@ hash 61ead113e6479452e6b690c84b4e9d30 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-darwin-20110222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Darwin/installer/fmod-3.75-darwin-20110222.tar.bz2 name darwin @@ -464,7 +464,7 @@ hash 0c61d643db54d2e5999be8254569d8b3 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-linux-20110223.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/Linux/installer/fmod-3.75-linux-20110223.tar.bz2 name linux @@ -476,7 +476,7 @@ hash d9a9a6ad86895353bcd63374a4c1a91d url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fmod-3.75-windows-20110222.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-fmod-private/rev/221852/arch/CYGWIN/installer/fmod-3.75-windows-20110222.tar.bz2 name windows -- cgit v1.3 From dbb7cd6910f382eece23321ad4521ea015afe014 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 13 Apr 2011 16:40:20 -0500 Subject: Fix for bad kdu URLs --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index eb8f57e467..d1066d473e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -956,7 +956,7 @@ hash d91e1f483209cd3eba04135c6a59e829 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-darwin-20110218.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/Darwin/installer/kdu-6.4.1-darwin-20110218.tar.bz2 name darwin @@ -968,7 +968,7 @@ hash fbf8a4f78dff986d7c16b3a0437e033e url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-linux-20110311.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/223538/arch/Linux/installer/kdu-6.4.1-linux-20110311.tar.bz2 name linux @@ -980,7 +980,7 @@ hash 6cd9f36465ef73a3df34bf2b3bba2ced url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/kdu-6.4.1-windows-20110218.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-kdu-private/rev/221672/arch/CYGWIN/installer/kdu-6.4.1-windows-20110218.tar.bz2 name windows -- cgit v1.3 From 7dfa297be16716f637f8aaaf5ea53f1a2baf09bc Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Wed, 13 Apr 2011 18:08:21 -0600 Subject: update to use the latest collada lib, which is built on the 32bit pcre lib. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d1066d473e..3d5460733d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - cff08178fc9720ab37646e142edeaa6d + 2222b901f310c1806847293789d69ac7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226567/arch/Darwin/installer/colladadom-2.2-darwin-20110413.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226584/arch/Darwin/installer/colladadom-2.2-darwin-20110413.tar.bz2 name darwin @@ -246,9 +246,9 @@ archive hash - 414a7db51edbbb9e5fabb2dbea4c19a0 + fb9765a9774b80e57f841dfad3438b1e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226180/arch/Linux/installer/colladadom-2.2-linux-20110409.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226584/arch/Linux/installer/colladadom-2.2-linux-20110413.tar.bz2 name linux @@ -258,9 +258,9 @@ archive hash - 7d8819dd334ccccc2b82747565fa6077 + a9f548eb6f9aaf292508a8b09c7f2f73 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226180/arch/CYGWIN/installer/colladadom-2.2-windows-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226584/arch/CYGWIN/installer/colladadom-2.2-windows-20110413.tar.bz2 name windows -- cgit v1.3 From b4b3c4f763bb3d39c91fbabb5d1a9cb2f178aa1a Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Thu, 14 Apr 2011 11:56:33 -0500 Subject: Include glext headers on linux. --- autobuild.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 3d5460733d..841c546ae7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -601,6 +601,18 @@ name windows + linux + + archive + + hash + 5de58ca0fe19abf68b25956762ee0d29 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 + + name + windows + glh_linear -- cgit v1.3 From 4d395e9e625c4a65bc30550d921e15c54e3445f3 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Thu, 14 Apr 2011 12:22:01 -0500 Subject: Linux not windows (whoops) --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 841c546ae7..d68b8270bc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -611,7 +611,7 @@ http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 name - windows + linux -- cgit v1.3 From 4f3b3abb87acff98d05a7312c07689a8c8de62e8 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Thu, 14 Apr 2011 12:36:30 -0500 Subject: autobuild doesn't like comments? --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d68b8270bc..d1bba181f1 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -607,7 +607,7 @@ hash 5de58ca0fe19abf68b25956762ee0d29 - url + url http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 name -- cgit v1.3 From 6ec5e332fb0830559a4c335619cc77e64db15fc4 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Thu, 14 Apr 2011 13:24:21 -0500 Subject: Linux build should use 3p-google-perftools build result --- BuildParams | 1 + autobuild.xml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/BuildParams b/BuildParams index 9a5a6bdf41..c0edb35b09 100755 --- a/BuildParams +++ b/BuildParams @@ -94,6 +94,7 @@ mesh-development.viewer_channel = "Project Viewer - Mesh" mesh-development.login_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 # ======================================== diff --git a/autobuild.xml b/autobuild.xml index d1bba181f1..28222c8e61 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1642,9 +1642,9 @@ archive hash - cf513fc2eec4a414cc804cf408932a45 + dde928cb24d22a267004a8c17669ba65 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_perftools-1.7-linux-20110315.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/226426/arch/Linux/installer/google_perftools-1.7-linux-20110412.tar.bz2 name linux -- cgit v1.3 From 77575dae62772e3de4edfb98ca3e3328ea2dc6db Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Thu, 14 Apr 2011 14:43:56 -0600 Subject: update to use 32-bit pcre lib for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 28222c8e61..413d4576ae 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1522,9 +1522,9 @@ archive hash - 86195b0680604fe86cfbbfb921c31dff + 18854c815c6f960e22add25cf1ff93d4 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pcre-7.6-linux-20101029.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/226572/arch/Linux/installer/pcre-7.6-linux-20110413.tar.bz2 name linux -- cgit v1.3 From 6b49a5f67cce5e08009387e62ffe778709e2cbbf Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Thu, 14 Apr 2011 15:18:49 -0600 Subject: update to the latest glod lib for linux. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 413d4576ae..c36de32dcc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -30,9 +30,9 @@ archive hash - 5aeb923a0a50023d0b3a6a8a81cc3d06 + f09061c7eabcf701b79c883027376ef2 url - https://viewer-source-downloads.s3.amazonaws.com/install_pkgs/glod-1.0pre4-linux-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226566/arch/Linux/installer/glod-1.0pre4-linux-20110413.tar.bz2 name linux -- cgit v1.3 From ed2f4797da8a0437c46b26bc213838ef9fa19be8 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Thu, 14 Apr 2011 17:19:25 -0600 Subject: update linux glod lib to change 226657. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c36de32dcc..4e36c1e4d6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -30,9 +30,9 @@ archive hash - f09061c7eabcf701b79c883027376ef2 + 18c708163d2a669bc3c030b05b4ebe61 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226566/arch/Linux/installer/glod-1.0pre4-linux-20110413.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226657/arch/Linux/installer/glod-1.0pre4-linux-20110414.tar.bz2 name linux -- cgit v1.3 From a0359e324130330d72f985ba8804034cf88d4931 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 15 Apr 2011 10:34:23 -0400 Subject: updated to new llconvexdecomposition build (now with 100% more vs2010) --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d1bba181f1..a3ea3e9563 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -589,7 +589,7 @@ glext platforms - windows + linux archive @@ -599,9 +599,9 @@ http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 name - windows + linux - linux + windows archive @@ -611,7 +611,7 @@ http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glext-68-windows-20110406.tar.bz2 name - linux + windows @@ -1134,9 +1134,9 @@ archive hash - d8ecfc647df41d546b1e8c697571e0ea + 1447d72644ad74e74a057483b33dc0d2 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/225838/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110406.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/226659/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110414.tar.bz2 name windows -- cgit v1.3 From fcfb70f01d46e5a7f7716c81ce7ad9667a99e3ed Mon Sep 17 00:00:00 2001 From: prep linden Date: Fri, 15 Apr 2011 10:47:44 -0400 Subject: License update --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d12bb1d3f7..8b3f824d39 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -224,7 +224,7 @@ license scea license_file - LICENSES/scea.txt + LICENSES/collada.txt name colladadom platforms @@ -740,7 +740,7 @@ license bsd license_file - LICENSES/gmock.txt + LICENSES/googlemock.txt name googlemock platforms @@ -1488,7 +1488,7 @@ license bsd license_file - LICENSES/bsd.txt + LICENSES/pcre-license.txt name pcre platforms -- cgit v1.3 From 298d71b4d9896de9a55a895b7afef307e69a2edc Mon Sep 17 00:00:00 2001 From: prep linden Date: Fri, 15 Apr 2011 11:02:57 -0400 Subject: License update --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ee6737db8b..4020410b0c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -824,7 +824,7 @@ license lgpl license_file - LICENSES/gtk.txt + LICENSES/gtk-atk-pango-glib.txt name gtk-atk-pango-glib platforms -- cgit v1.3 From c81ae1a3fa0021b7452d70171d5b6939e8b9e309 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 15 Apr 2011 11:04:09 -0400 Subject: removed separate stub lib, since llconvexdecomposition is going public and includes the stub --- autobuild.xml | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) mode change 100644 => 100755 autobuild.xml (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml old mode 100644 new mode 100755 index fabf646c74..709ffc859d --- a/autobuild.xml +++ b/autobuild.xml @@ -1143,54 +1143,6 @@ - llconvexdecompositionstub - - license - lgpl - license_file - LICENSES/lgpl.txt - name - llconvexdecompositionstub - platforms - - darwin - - archive - - hash - 349fa0e287fb275bbee43ced194a1db1 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-darwin-20101015.tar.bz2 - - name - darwin - - linux - - archive - - hash - dbf4b15e74ce9042e8500720dffc461a - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-linux-20101015a.tar.bz2 - - name - linux - - windows - - archive - - hash - bba9a4dd04fda1b263f34448a044783b - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-windows-20101015.tar.bz2 - - name - windows - - - llqtwebkit license -- cgit v1.3 From f9f84794726ad9a62d1f9750226cab964199fff2 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Fri, 15 Apr 2011 14:25:32 -0600 Subject: update collada lib for linux to 226716 --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 4e36c1e4d6..ea6e1cf655 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -246,9 +246,9 @@ archive hash - fb9765a9774b80e57f841dfad3438b1e + d05be8fc196e9ce7b6636b931cf13dff url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226584/arch/Linux/installer/colladadom-2.2-linux-20110413.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226716/arch/Linux/installer/colladadom-2.2-linux-20110415.tar.bz2 name linux -- cgit v1.3 From b6ae8b1156923f3c4d96ffdf96dc881ac4e63be0 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 15 Apr 2011 17:12:07 -0400 Subject: moved to public llconvexdecomposition builds --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 93e1684481..2c2ac0ce2c 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1110,9 +1110,9 @@ archive hash - 3057f3978dff2b8e1216a19c2fa56604 + bfa0e1ce006302f6d90b712b20e2d96e url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/225838/arch/Darwin/installer/llconvexdecomposition-0.1-darwin-20110406.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/226714/arch/Darwin/installer/llconvexdecomposition-0.1-darwin-20110415.tar.bz2 name darwin @@ -1122,9 +1122,9 @@ archive hash - e92c9d621b034b1bf312c60df48fc798 + d6207290496f4b464996924b6319932e url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/225838/arch/Linux/installer/llconvexdecomposition-0.1-linux-20110406.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/226714/arch/Linux/installer/llconvexdecomposition-0.1-linux-20110415.tar.bz2 name linux @@ -1134,9 +1134,9 @@ archive hash - 1447d72644ad74e74a057483b33dc0d2 + 9f8579663eeac8ed5cfc6390560f0e24 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition-vir/rev/226659/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110414.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/226714/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110415.tar.bz2 name windows -- cgit v1.3 From 2866e1d9e1a39a07c872486332e3301eddf17acb Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 19 Apr 2011 21:32:10 -0400 Subject: Update freetype package: previous one had no actual library. Evidently the only reason builds have been succeeding is because the link is picking up the system freetype library. This could be tricky if it goes out of sync with the freetype package's header files. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a31d280b6f..057ffa5b7d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -510,9 +510,9 @@ archive hash - 9b58d1a9c15807a1301e42a313641010 + 9f8a9dc39fd7c3da0fb3533782d1fddf url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-linux-20110310.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/226814/arch/Linux/installer/freetype-2.3.9-linux-20110418.tar.bz2 name linux -- cgit v1.3 From c7721b86c6df55cbfcdb51970944b79ed8674f4e Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Tue, 19 Apr 2011 21:43:13 -0400 Subject: New openssl package solves permissions problems with Linux build. The original Linux openssl tarball includes libcrypto.so and libssl.so files with r-xr-xr-x permissions: not even the owning user can modify them. This causes problems when the Release build tries to 'strip' the viewer and all associated libraries. Newer openssl tarball fixes permission problems. The newer openssl package also updates from 0.9.8 to 1.0.0, so have to fix version numbers in Copy3rdPartyLibs.cmake and viewer_manifest.py too. :-P Presumably the only reason this hasn't been causing trouble with TC builds is that the link has been picking up system libraries instead of the ones from the openssl package. --- autobuild.xml | 4 ++-- indra/cmake/Copy3rdPartyLibs.cmake | 4 ++-- indra/newview/viewer_manifest.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 057ffa5b7d..d04166f72c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1242,9 +1242,9 @@ archive hash - cc159598ef3fcd34fd33a8a0ef846165 + 3d40be8566fa4b9df9a38e2a0f9ea467 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/223711/arch/Linux/installer/openssl-0.9.8q-linux-20110314.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/226882/arch/Linux/installer/openssl-1.0.0d-linux-20110418.tar.bz2 name linux diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 4698116022..1c43c4ce12 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -243,7 +243,7 @@ elseif(LINUX) libaprutil-1.so.0 libatk-1.0.so libbreakpad_client.so.0 - libcrypto.so.0.9.8 + libcrypto.so.1.0.0 libdb-5.1.so libexpat.so libexpat.so.1 @@ -259,7 +259,7 @@ elseif(LINUX) libtcmalloc.so libuuid.so.16 libuuid.so.16.0.22 - libssl.so.0.9.8 + libssl.so.1.0.0 libfontconfig.so.1.4.4 ) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index f0b1973fdf..f671c770ea 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -939,9 +939,9 @@ class Linux_i686Manifest(LinuxManifest): self.path("libdb-5.1.so") self.path("libdb-5.so") self.path("libdb.so") - self.path("libcrypto.so.0.9.8") + self.path("libcrypto.so.1.0.0") self.path("libexpat.so.1.5.2") - self.path("libssl.so.0.9.8") + self.path("libssl.so.1.0.0") self.path("libuuid.so") self.path("libuuid.so.16") self.path("libuuid.so.16.0.22") -- cgit v1.3 From a357815604757eede6489ae81387abe5d866d7cf Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Wed, 20 Apr 2011 18:10:33 -0600 Subject: update the collada lib of Mac to the rev 227230 to fix the missed minizip problem. --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index c79701adfd..7d63aa9209 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -234,9 +234,9 @@ archive hash - 2222b901f310c1806847293789d69ac7 + 480b27a0cb39a4adfcdeabef895de3e1 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226584/arch/Darwin/installer/colladadom-2.2-darwin-20110413.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/227230/arch/Darwin/installer/colladadom-2.2-darwin-20110420.tar.bz2 name darwin -- cgit v1.3 From a604bc27e50f2f46e66cc492a90afc6b001cacab Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 21 Apr 2011 10:12:36 -0400 Subject: restore use of proprietary libs (merge error) in Release builds --- autobuild.xml | 1 - 1 file changed, 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 80be16322a..a8aa9371d6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1672,7 +1672,6 @@ -DCMAKE_BUILD_TYPE:STRING=Release -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE -DUSE_PRECOMPILED_HEADERS=ON -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE -- cgit v1.3 From a4decda79b0123fdb5638415239b8666a987b984 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Thu, 21 Apr 2011 16:40:16 -0400 Subject: explicitly enable INSTALL_PROPRIETARY in the Linden configurations --- autobuild.xml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a8aa9371d6..bd98d59766 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1592,6 +1592,7 @@ -DCMAKE_BUILD_TYPE:STRING=Debug -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=TRUE name @@ -1632,6 +1633,7 @@ -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=TRUE name @@ -1674,6 +1676,7 @@ -DROOT_PROJECT_NAME:STRING=SecondLife -DUSE_PRECOMPILED_HEADERS=ON -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE + -DINSTALL_PROPRIETARY=TRUE name -- cgit v1.3 From 58b48137ca1f414286836d567b9f0651880c5995 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Thu, 21 Apr 2011 16:35:09 -0500 Subject: Touch up autobuild xml from merge. --- autobuild.xml | 1464 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 715 insertions(+), 749 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 83405a8e0a..5fdd0a7f3b 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1736,771 +1736,737 @@ - package_description + package_description + + name + viewer_development + platforms - name - viewer_development - platforms + common - common + configurations - configurations - - Debug - - build - - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Debug - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - Debug - - DebugOS - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Debug - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - - arguments - - ../indra - - - name - DebugOS - - RelWithDebInfo - - build - - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - RelWithDebInfo - - RelWithDebInfoOS - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - - arguments - - ../indra - - - name - RelWithDebInfoOS - - Release - - build - - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - -DUSE_PRECOMPILED_HEADERS=ON - -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE - - - name - Release - - VC10msbuildRelWithDebInfo - - configure - - arguments - - ../indra - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DUNATTENDED:BOOL=OFF - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - - - name - VC10msbuildRelWithDebInfo - - VC10msbuildRelease - - configure - - arguments - - ../indra - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DINSTALL_PROPRIETARY=FALSE - -DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES - - name - VC10msbuildRelease - - VCexpressRelWithDebInfo - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - VCexpressRelWithDebInfo - - name - common + Debug + + build + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + Debug + + DebugOS + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + + arguments + + ../indra + + + name + DebugOS + + RelWithDebInfo + + build + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + RelWithDebInfo + + RelWithDebInfoOS + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + + arguments + + ../indra + + + name + RelWithDebInfoOS + + Release + + build + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DUSE_PRECOMPILED_HEADERS=ON + -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE + + + name + Release + + ReleaseOS + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES + + arguments + + ../indra + + + name + ReleaseOS + - darwin + name + common + + darwin + + build_directory + build-darwin-i386 + configurations - build_directory - build-darwin-i386 - configurations - - Debug - - build - - arguments - - | - grep - -v - setenv - - command - xcodebuild - options - - -configuration Debug - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - - - name - Debug - - DebugOS - - build - - command - xcodebuild - options - - -configuration Debug - -project SecondLife.xcodeproj - - - configure - - options - - -G - 'Xcode' - - - name - DebugOS - - RelWithDebInfo - - build - - arguments - - | - grep - -v - setenv - - command - xcodebuild - options - - -configuration RelWithDebInfo - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - - - default - True - name - RelWithDebInfo - - RelWithDebInfoOS - - build - - command - xcodebuild - options - - -configuration RelWithDebInfo - -project SecondLife.xcodeproj - - - configure - - options - - -G - 'Xcode' - - - name - RelWithDebInfoOS - - Release - - build - - arguments - - | - grep - -v - setenv - - command - xcodebuild - options - - -configuration Release - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - - - name - Release - - ReleaseOS - - build - - command - xcodebuild - options - - -configuration Release - -project SecondLife.xcodeproj - - - configure - - options - - -G - 'Xcode' - - - name - ReleaseOS - - - name - darwin + Debug + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + name + Debug + + DebugOS + + build + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + + + name + DebugOS + + RelWithDebInfo + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + + build + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + + + name + RelWithDebInfoOS + + Release + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + name + Release + + ReleaseOS + + build + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + + + name + ReleaseOS + - linux + name + darwin + + linux + + build_directory + build-linux-i686 + configurations - build_directory - build-linux-i686 - configurations - - Debug - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - - - name - Debug - - DebugOS - - build - - command - make - options - - -j 2 - - - configure - - options - - -G - 'Unix Makefiles' - - - name - DebugOS - - RelWithDebInfo - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - - - default - True - name - RelWithDebInfo - - RelWithDebInfoOS - - build - - command - make - options - - -j 2 - - - configure - - options - - -G - 'Unix Makefiles' - - - name - RelWithDebInfoOS - - Release - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - - - name - Release - - ReleaseOS - - build - - command - make - options - - -j 2 - - - configure - - options - - -G - 'Unix Makefiles' - - - name - ReleaseOS + Debug + + build + + command + make + options + + -j 12 + + + configure + + arguments + + ../indra + + options + + -G + 'Unix Makefiles' + + + name + Debug + + DebugOS + + build + + command + make + options + + -j 2 + + + configure + + options + + -G + 'Unix Makefiles' + + + name + DebugOS + + RelWithDebInfo + + build + + command + make + options + + -j 12 + + + configure + + arguments + + ../indra + + options + + -G + 'Unix Makefiles' + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + + build - build - - - name - default + command + make + options + + -j 2 + + configure + + options + + -G + 'Unix Makefiles' + + + name + RelWithDebInfoOS + + Release + + build + + command + make + options + + -j 12 + + + configure + + arguments + + ../indra + + options + + -G + 'Unix Makefiles' + + + name + Release + + ReleaseOS + + build + + command + make + options + + -j 2 + + + configure + + options + + -G + 'Unix Makefiles' + + + name + ReleaseOS + + default + + build + + + name + default - name - linux - windows + name + linux + + windows + + build_directory + build-vc100 + configurations - build_directory - build-vc100 - configurations - - Debug - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=Debug|Win32" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - Debug - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - - - name - Debug - - DebugOS - - build - - arguments - - SecondLife.sln - - command - msbuild.exe - options - - /p:Configuration=Debug - /p:Platform=Win32 - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON - -DINSTALL_PROPRIETARY=TRUE - -DUSE_KDU=FALSE - -DFMOD=FALSE - - - name - DebugOS - - RelWithDebInfo - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=RelWithDebInfo|Win32" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - RelWithDebInfo - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - - - default - True - name - RelWithDebInfo - - RelWithDebInfoOS - - build - - arguments - - SecondLife.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /p:Platform=Win32 - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON - -DINSTALL_PROPRIETARY=TRUE - -DUSE_KDU=FALSE - -DFMOD=FALSE - - - name - RelWithDebInfoOS - - Release - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=Release|Win32" - "/CL_ADD=/m:1" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - Release - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - - - name - Release - - VC10msbuildRelWithDebInfo - - build - - msbuild.exe - SecondLife.sln - /verbosity:minimal - /t:build - /p:Configuration=RelWithDebInfo - /p:Platform=Win32 - /p:"VCBuildAdditionalOptions= /useenv" - /p:"VCBuildAdditionalOptions= /incremental" - - VC10msbuildRelWithDebInfo - VC10msbuildRelease - command - msbuild.exe - options - - /p:Configuration=Release - - VC10msbuildRelease - VCexpressRelWithDebInfo - arguments - - "RelWithDebInfo|Win32" - - vcbuild.exe - /u - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - - - configure - - options - - -G - "Visual Studio 10" - -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON - -DINSTALL_PROPRIETARY=TRUE - -DUSE_KDU=FALSE - -DFMOD=FALSE - - - name - VCexpressRelWithDebInfo - - - name - windows + Debug + + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=Debug|Win32" + + + configure + + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Debug + --startup + secondlife-bin + + options + + -G + "Visual Studio 10" + + + name + Debug + + DebugOS + + build + + arguments + + SecondLife.sln + + command + msbuild.exe + options + + /p:Configuration=Debug + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE + + + name + DebugOS + + RelWithDebInfo + + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=RelWithDebInfo|Win32" + + + configure + + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + RelWithDebInfo + --startup + secondlife-bin + + options + + -G + "Visual Studio 10" + + + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + + build + + arguments + + SecondLife.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE + + + name + RelWithDebInfoOS + + Release + + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=Release|Win32" + "/CL_ADD=/m:1" + + + configure + + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Release + --startup + secondlife-bin + + options + + -G + "Visual Studio 10" + + + name + Release + + ReleaseOS + + build + + arguments + + SecondLife.sln + + command + msbuild.exe + options + + /p:Configuration=Release + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE + + + name + ReleaseOS + + name + windows - type - autobuild - version - 1.2 + type + autobuild + version + 1.2 + -- cgit v1.3 From ac40560782a61d95dacc492bd52ea3955206cb4b Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Thu, 21 Apr 2011 18:07:31 -0400 Subject: reversing the elimination of the stub build of convexdecomp, as we still need the binary version, even with the full LL source being available. This is because the binary package of the full version is not redistributable due to having the havok binaries in it. --- autobuild.xml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7d63aa9209..04b45ce5df 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1143,6 +1143,54 @@ + llconvexdecompositionstub + + license + lgpl + license_file + LICENSES/lgpl.txt + name + llconvexdecompositionstub + platforms + + darwin + + archive + + hash + 349fa0e287fb275bbee43ced194a1db1 + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-darwin-20101015.tar.bz2 + + name + darwin + + linux + + archive + + hash + dbf4b15e74ce9042e8500720dffc461a + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-linux-20101015a.tar.bz2 + + name + linux + + windows + + archive + + hash + bba9a4dd04fda1b263f34448a044783b + url + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-windows-20101015.tar.bz2 + + name + windows + + + llqtwebkit license -- cgit v1.3 From 33eb030bc043274c061fbe8cfa22b5f33d43e3e8 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Fri, 22 Apr 2011 00:05:04 -0500 Subject: Update llconvexdecompositionstub for new package layout. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 33cc180384..a81cf5275d 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1158,9 +1158,9 @@ archive hash - 349fa0e287fb275bbee43ced194a1db1 + 506779a74c527c1a2bf93addb58c3e48 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-darwin-20101015.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227397/arch/Darwin/installer/llconvexdecompositionstub-0.3-darwin-20110421.tar.bz2 name darwin @@ -1170,9 +1170,9 @@ archive hash - dbf4b15e74ce9042e8500720dffc461a + be40b4d5ce1303f8818d294584b8c6a3 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-linux-20101015a.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227397/arch/Linux/installer/llconvexdecompositionstub-0.3-linux-20110422.tar.bz2 name linux @@ -1182,9 +1182,9 @@ archive hash - bba9a4dd04fda1b263f34448a044783b + 6f65d135e16e64dec91323bad0710406 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llconvexdecompositionstub-0.3-windows-20101015.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227397/arch/CYGWIN/installer/llconvexdecompositionstub-0.3-windows-20110421.tar.bz2 name windows -- cgit v1.3 From 0349d1f29197ca00c9eb7278d97bd56ea4d2050a Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Fri, 22 Apr 2011 01:17:19 -0500 Subject: Update convex decomp stub to include latest api changes. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a81cf5275d..b3a7071e29 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1158,9 +1158,9 @@ archive hash - 506779a74c527c1a2bf93addb58c3e48 + bc1388fc28dbb3bba1fe7cb8d09f49b4 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227397/arch/Darwin/installer/llconvexdecompositionstub-0.3-darwin-20110421.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227399/arch/Darwin/installer/llconvexdecompositionstub-0.3-darwin-20110421.tar.bz2 name darwin @@ -1170,9 +1170,9 @@ archive hash - be40b4d5ce1303f8818d294584b8c6a3 + 3295bd4a0514b7c15dda9044f40c175e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227397/arch/Linux/installer/llconvexdecompositionstub-0.3-linux-20110422.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227399/arch/Linux/installer/llconvexdecompositionstub-0.3-linux-20110422.tar.bz2 name linux @@ -1182,9 +1182,9 @@ archive hash - 6f65d135e16e64dec91323bad0710406 + 92f1dff3249024c1534b55343ed79ea3 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227397/arch/CYGWIN/installer/llconvexdecompositionstub-0.3-windows-20110421.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecompositionstub/rev/227399/arch/CYGWIN/installer/llconvexdecompositionstub-0.3-windows-20110421.tar.bz2 name windows -- cgit v1.3 From e6bd982c00fe0f08a6640a19ef0adfda75d4d3ed Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 27 Apr 2011 10:47:41 -0700 Subject: OPEN-50 : backing out that change that is incompatible with Incredibuild. --- autobuild.xml | 3 --- 1 file changed, 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index bd98d59766..2ac869b20a 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1674,9 +1674,6 @@ -DCMAKE_BUILD_TYPE:STRING=Release -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife - -DUSE_PRECOMPILED_HEADERS=ON - -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE - -DINSTALL_PROPRIETARY=TRUE name -- cgit v1.3 From 67be82ad370601b00d70909669a80d06db62b404 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 28 Apr 2011 11:00:27 -0400 Subject: updated llconvexdecomposition for version linked with vs2010 havok --- autobuild.xml | 1428 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 714 insertions(+), 714 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index f4e7189166..fd5bc060fc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1134,9 +1134,9 @@ archive hash - 9f8579663eeac8ed5cfc6390560f0e24 + 95a1d483f3d01f480b55801e841b2151 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/226714/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110415.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/227989/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110428.tar.bz2 name windows @@ -1784,739 +1784,739 @@ - package_description - - name - viewer_development - platforms + package_description - common + name + viewer_development + platforms - configurations + common - Debug - - build - - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Debug - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife + configurations + + Debug + + build + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=TRUE - - - name - Debug - - DebugOS - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Debug - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - - arguments - - ../indra - - - name - DebugOS - - RelWithDebInfo - - build - - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife + + + name + Debug + + DebugOS + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Debug + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + + + name + DebugOS + + RelWithDebInfo + + build + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=TRUE - - - name - RelWithDebInfo - - RelWithDebInfoOS - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - - arguments - - ../indra - - - name - RelWithDebInfoOS - - Release - - build - - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DUSE_PRECOMPILED_HEADERS=ON - -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE + + + name + RelWithDebInfo + + RelWithDebInfoOS + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + + + name + RelWithDebInfoOS + + Release + + build + + + configure + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DUSE_PRECOMPILED_HEADERS=ON + -DLL_RELEASE_FOR_DOWNLOAD:BOOL=TRUE -DINSTALL_PROPRIETARY=TRUE - - - name - Release - - ReleaseOS - - configure - - command - cmake - options - - -DCMAKE_BUILD_TYPE:STRING=Release - -DWORD_SIZE:STRING=32 - -DROOT_PROJECT_NAME:STRING=SecondLife - -DINSTALL_PROPRIETARY=FALSE - -DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES - - arguments - - ../indra - - - name - ReleaseOS - + + + name + Release + + ReleaseOS + + configure + + arguments + + ../indra + + command + cmake + options + + -DCMAKE_BUILD_TYPE:STRING=Release + -DWORD_SIZE:STRING=32 + -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=FALSE + -DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES + + + name + ReleaseOS + + + name + common - name - common - - darwin - - build_directory - build-darwin-i386 - configurations + darwin - Debug - - build - - arguments - - | - grep - -v - setenv - - command - xcodebuild - options - - -configuration Debug - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - - - name - Debug - - DebugOS - - build - - command - xcodebuild - options - - -configuration Debug - -project SecondLife.xcodeproj - - - configure - - options - - -G - 'Xcode' - - - name - DebugOS - - RelWithDebInfo - - build - - arguments - - | - grep - -v - setenv - - command - xcodebuild - options - - -configuration RelWithDebInfo - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - - - default - True - name - RelWithDebInfo - - RelWithDebInfoOS - - build - - command - xcodebuild - options - - -configuration RelWithDebInfo - -project SecondLife.xcodeproj - - - configure - - options - - -G - 'Xcode' - - - name - RelWithDebInfoOS - - Release - - build - - arguments - - | - grep - -v - setenv - - command - xcodebuild - options - - -configuration Release - -project SecondLife.xcodeproj - - - configure - - arguments - - ../indra - - options - - -G - 'Xcode' - - - name - Release - - ReleaseOS - - build - - command - xcodebuild - options - - -configuration Release - -project SecondLife.xcodeproj - - - configure - - options - - -G - 'Xcode' - - - name - ReleaseOS - + build_directory + build-darwin-i386 + configurations + + Debug + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + name + Debug + + DebugOS + + build + + command + xcodebuild + options + + -configuration Debug + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + + + name + DebugOS + + RelWithDebInfo + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + + build + + command + xcodebuild + options + + -configuration RelWithDebInfo + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + + + name + RelWithDebInfoOS + + Release + + build + + arguments + + | + grep + -v + setenv + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + arguments + + ../indra + + options + + -G + 'Xcode' + + + name + Release + + ReleaseOS + + build + + command + xcodebuild + options + + -configuration Release + -project SecondLife.xcodeproj + + + configure + + options + + -G + 'Xcode' + + + name + ReleaseOS + + + name + darwin - name - darwin - - linux - - build_directory - build-linux-i686 - configurations + linux - Debug - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - - - name - Debug - - DebugOS - - build - - command - make - options - - -j 2 - - - configure - - options - - -G - 'Unix Makefiles' - - - name - DebugOS - - RelWithDebInfo - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - + build_directory + build-linux-i686 + configurations + + Debug + + build + + command + make + options + + -j 12 + + + configure + + arguments + + ../indra + + options + + -G + 'Unix Makefiles' + + + name + Debug + + DebugOS + + build + + command + make + options + + -j 2 + + + configure + + options + + -G + 'Unix Makefiles' + + + name + DebugOS + + RelWithDebInfo + + build + + command + make + options + + -j 12 + + + configure + + arguments + + ../indra + + options + + -G + 'Unix Makefiles' + + + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + + build + + command + make + options + + -j 2 + + + configure + + options + + -G + 'Unix Makefiles' + + + name + RelWithDebInfoOS + + Release + + build + + command + make + options + + -j 12 + + + configure + + arguments + + ../indra + + options + + -G + 'Unix Makefiles' + + + name + Release + + ReleaseOS + + build + + command + make + options + + -j 2 + + + configure + + options + + -G + 'Unix Makefiles' + + + name + ReleaseOS default - True - name - RelWithDebInfo - - RelWithDebInfoOS - - build - command - make - options - - -j 2 - + build + + + name + default - configure - - options - - -G - 'Unix Makefiles' - - - name - RelWithDebInfoOS - - Release - - build - - command - make - options - - -j 12 - - - configure - - arguments - - ../indra - - options - - -G - 'Unix Makefiles' - - - name - Release - - ReleaseOS - - build - - command - make - options - - -j 2 - - - configure - - options - - -G - 'Unix Makefiles' - - - name - ReleaseOS - - default - - build - - - name - default + name + linux - name - linux - - windows - - build_directory - build-vc100 - configurations + windows - Debug - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=Debug|Win32" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - Debug - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - - - name - Debug - - DebugOS - - build - - arguments - - SecondLife.sln - - command - msbuild.exe - options - - /p:Configuration=Debug - /p:Platform=Win32 - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON - -DINSTALL_PROPRIETARY=TRUE - -DUSE_KDU=FALSE - -DFMOD=FALSE - - - name - DebugOS - - RelWithDebInfo - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=RelWithDebInfo|Win32" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - RelWithDebInfo - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - + build_directory + build-vc100 + configurations + + Debug + + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=Debug|Win32" + + + configure + + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Debug + --startup + secondlife-bin + + options + + -G + "Visual Studio 10" + + + name + Debug + + DebugOS + + build + + arguments + + SecondLife.sln + + command + msbuild.exe + options + + /p:Configuration=Debug + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE + + + name + DebugOS + + RelWithDebInfo + + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=RelWithDebInfo|Win32" + + + configure + + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + RelWithDebInfo + --startup + secondlife-bin + + options + + -G + "Visual Studio 10" + + + default + True + name + RelWithDebInfo + + RelWithDebInfoOS + + build + + arguments + + SecondLife.sln + + command + msbuild.exe + options + + /p:Configuration=RelWithDebInfo + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE + + + name + RelWithDebInfoOS + + Release + + build + + arguments + + SecondLife.sln + + command + BuildConsole + options + + /build + "/cfg=Release|Win32" + "/CL_ADD=/m:1" + + + configure + + arguments + + ..\indra + && + ..\indra\tools\vstool\VSTool.exe + --solution + SecondLife.sln + --config + Release + --startup + secondlife-bin + + options + + -G + "Visual Studio 10" + + + name + Release + + ReleaseOS + + build + + arguments + + SecondLife.sln + + command + msbuild.exe + options + + /p:Configuration=Release + /p:Platform=Win32 + /t:Build + /p:useenv=true + /verbosity:minimal + /toolsversion:4.0 + /p:"VCBuildAdditionalOptions= /incremental" + + + configure + + options + + -G + "Visual Studio 10" + -DUNATTENDED:BOOL=ON + -DUSE_PRECOMPILED_HEADERS=ON + -DINSTALL_PROPRIETARY=TRUE + -DUSE_KDU=FALSE + -DFMOD=FALSE + + + name + ReleaseOS - default - True - name - RelWithDebInfo - - RelWithDebInfoOS - - build - - arguments - - SecondLife.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /p:Platform=Win32 - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON - -DINSTALL_PROPRIETARY=TRUE - -DUSE_KDU=FALSE - -DFMOD=FALSE - - - name - RelWithDebInfoOS - - Release - - build - - arguments - - SecondLife.sln - - command - BuildConsole - options - - /build - "/cfg=Release|Win32" - "/CL_ADD=/m:1" - - - configure - - arguments - - ..\indra - && - ..\indra\tools\vstool\VSTool.exe - --solution - SecondLife.sln - --config - Release - --startup - secondlife-bin - - options - - -G - "Visual Studio 10" - - - name - Release - - ReleaseOS - - build - - arguments - - SecondLife.sln - - command - msbuild.exe - options - - /p:Configuration=Release - /p:Platform=Win32 - /t:Build - /p:useenv=true - /verbosity:minimal - /toolsversion:4.0 - /p:"VCBuildAdditionalOptions= /incremental" - - - configure - - options - - -G - "Visual Studio 10" - -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON - -DINSTALL_PROPRIETARY=TRUE - -DUSE_KDU=FALSE - -DFMOD=FALSE - - - name - ReleaseOS + name + windows - name - windows + type + autobuild + version + 1.2 - type - autobuild - version - 1.2 - -- cgit v1.3 From 1cfe5567699fbd1ba096e4511454d3eba21ea77c Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 2 May 2011 09:25:08 -0400 Subject: STORM-1215: restore INSTALL_PROPRIETARY in Release builds, remove incorrect use of LL_RELEASE_FOR_DOWNLOAD from ReleaseOS --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2ac869b20a..7686b48cf5 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1674,6 +1674,7 @@ -DCMAKE_BUILD_TYPE:STRING=Release -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife + -DINSTALL_PROPRIETARY=TRUE name @@ -1691,7 +1692,6 @@ -DWORD_SIZE:STRING=32 -DROOT_PROJECT_NAME:STRING=SecondLife -DINSTALL_PROPRIETARY=FALSE - -DLL_RELEASE_FOR_DOWNLOAD:BOOL=YES arguments -- cgit v1.3 From a8ba89eb41b5b0eabecf1d78cf0d5ac9f1b11117 Mon Sep 17 00:00:00 2001 From: brad kittenbrink Date: Tue, 3 May 2011 18:15:00 -0700 Subject: Fix for CHOP-619. Found a general solution to our vs2010 precompiled headers problems and eliminated all our special cases for handling them. --- autobuild.xml | 3 --- build.sh | 1 - indra/cmake/00-Common.cmake | 7 +++++++ indra/cmake/Variables.cmake | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7686b48cf5..5ced928668 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2125,7 +2125,6 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON -DINSTALL_PROPRIETARY=TRUE -DUSE_KDU=FALSE -DFMOD=FALSE @@ -2203,7 +2202,6 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON -DINSTALL_PROPRIETARY=TRUE -DUSE_KDU=FALSE -DFMOD=FALSE @@ -2280,7 +2278,6 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON - -DUSE_PRECOMPILED_HEADERS=ON -DINSTALL_PROPRIETARY=TRUE -DUSE_KDU=FALSE -DFMOD=FALSE diff --git a/build.sh b/build.sh index d112e5ea1c..b281814059 100755 --- a/build.sh +++ b/build.sh @@ -58,7 +58,6 @@ pre_build() "$AUTOBUILD" configure -c $variant -- \ -DPACKAGE:BOOL=ON \ -DRELEASE_CRASH_REPORTING:BOOL=ON \ - -DUSE_PRECOMPILED_HEADERS=FALSE \ -DVIEWER_CHANNEL:STRING="\"$viewer_channel\"" \ -DVIEWER_LOGIN_CHANNEL:STRING="\"$viewer_login_channel\"" \ -DGRID:STRING="\"$viewer_grid\"" \ diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 15b827b217..faffdc8ccd 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -36,6 +36,13 @@ if (WINDOWS) # Don't build DLLs. set(BUILD_SHARED_LIBS OFF) + # for "backwards compatibility", cmake sneaks in the Zm1000 option which royally + # screws incredibuild. this hack disables it. + # for details see: http://connect.microsoft.com/VisualStudio/feedback/details/368107/clxx-fatal-error-c1027-inconsistent-values-for-ym-between-creation-and-use-of-precompiled-headers + # http://www.ogre3d.org/forums/viewtopic.php?f=2&t=60015 + # http://www.cmake.org/pipermail/cmake/2009-September/032143.html + string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP -D_SCL_SECURE_NO_WARNINGS=1" CACHE STRING "C++ compiler debug options" FORCE) set(CMAKE_CXX_FLAGS_RELWITHDEBINFO diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 03428691cf..2f23e7c307 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -151,7 +151,7 @@ For more information, please see JIRA DEV-14943 - Cmake Linux cannot build both endif (LINUX AND SERVER AND VIEWER) -set(USE_PRECOMPILED_HEADERS OFF CACHE BOOL "Enable use of precompiled header directives where supported.") +set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.") source_group("CMake Rules" FILES CMakeLists.txt) -- cgit v1.3 From 36c671cf15e8889df4f173cf455896b7c9a115e1 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 4 May 2011 12:12:42 -0500 Subject: STORM-1210 Update PCRE libs for mac and linux. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 04f789ef01..e289af1205 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1510,9 +1510,9 @@ archive hash - cb04654cdfe93e3c8d16fef0c475e2bb + 0566e5ea38e2ba2362fe8e0a695d67e4 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/226370/arch/Darwin/installer/pcre-7.6-darwin-20110411.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/228816/arch/Darwin/installer/pcre-7.6-darwin-20110504.tar.bz2 name darwin @@ -1522,9 +1522,9 @@ archive hash - 18854c815c6f960e22add25cf1ff93d4 + 6e390bc796ee2381b414e6d599b37690 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/226572/arch/Linux/installer/pcre-7.6-linux-20110413.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/228816/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 name linux -- cgit v1.3 From 5eed546adfbd43d6814f7a0edeb32f00331a366a Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 4 May 2011 12:45:40 -0500 Subject: STORM-1210 Public URLs for pcre --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index e289af1205..24759dd71b 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1510,9 +1510,9 @@ archive hash - 0566e5ea38e2ba2362fe8e0a695d67e4 + a8e74694a0f4248228c13c845ed0a6f8 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/228816/arch/Darwin/installer/pcre-7.6-darwin-20110504.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Darwin/installer/pcre-7.6-darwin-20110504.tar.bz2 name darwin @@ -1522,9 +1522,9 @@ archive hash - 6e390bc796ee2381b414e6d599b37690 + bb0abe962b3b8208ed2dab0424aab33d url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-pcre/rev/228816/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 name linux -- cgit v1.3 From 8245e381cb1657cbfcf434659b4aaa6cd155a3ae Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Wed, 4 May 2011 12:54:07 -0500 Subject: STORM-1210 Make llconvexdecomposition private --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 24759dd71b..fb2562aabc 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1110,9 +1110,9 @@ archive hash - bfa0e1ce006302f6d90b712b20e2d96e + 6e45ad68506cd1ba49fd35a3201f0478 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/226714/arch/Darwin/installer/llconvexdecomposition-0.1-darwin-20110415.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition/rev/228821/arch/Darwin/installer/llconvexdecomposition-0.1-darwin-20110504.tar.bz2 name darwin @@ -1122,9 +1122,9 @@ archive hash - d6207290496f4b464996924b6319932e + 00ff5144612c2e261a0811a4503ce3ba url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/226714/arch/Linux/installer/llconvexdecomposition-0.1-linux-20110415.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition/rev/228821/arch/Linux/installer/llconvexdecomposition-0.1-linux-20110504.tar.bz2 name linux @@ -1134,9 +1134,9 @@ archive hash - 95a1d483f3d01f480b55801e841b2151 + a4635dcbbe0915ce023dd41d3b848d4c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llconvexdecomposition/rev/227989/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110428.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-llconvexdecomposition/rev/228821/arch/CYGWIN/installer/llconvexdecomposition-0.1-windows-20110504.tar.bz2 name windows -- cgit v1.3 From 343ffb9d512702fff76e542575a0eff79ea62204 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 5 May 2011 19:23:55 -0400 Subject: Remove Pth library from viewer build. This library was only needed on the Mac, and only with the OS X 10.4 SDK. As of October 2010, we no longer build the viewer with that SDK. The 10.5 SDK we're currently using directly supports the functionality for which we originally brought in Pth. --- autobuild.xml | 24 - indra/cmake/Pth.cmake | 21 - indra/llcommon/CMakeLists.txt | 3 - indra/newview/licenses-mac.txt | 510 --------------------- .../newview/skins/default/xui/en/floater_about.xml | 1 - indra/viewer_components/login/CMakeLists.txt | 9 - install.xml | 47 -- 7 files changed, 615 deletions(-) delete mode 100644 indra/cmake/Pth.cmake (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7686b48cf5..53a2e59b29 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1351,30 +1351,6 @@ - pth - - license - lgpl - license_file - LICENSES/pth.txt - name - pth - platforms - - darwin - - archive - - hash - 2172379794217d0ffba0db09b2ac17bf - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-darwin-20110303.tar.bz2 - - name - darwin - - - quicktime license diff --git a/indra/cmake/Pth.cmake b/indra/cmake/Pth.cmake deleted file mode 100644 index a28f6ec696..0000000000 --- a/indra/cmake/Pth.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# -*- cmake -*- -include(Prebuilt) - -set(PTH_FIND_QUIETLY ON) -set(PTH_FIND_REQUIRED ON) - -if (STANDALONE) -# ?? How would I construct FindPTH.cmake? This file was cloned from -# CURL.cmake, which uses include(FindCURL), but there's no FindCURL.cmake? -# include(FindPTH) -else (STANDALONE) - # This library is only needed to support Boost.Coroutine, and only on Mac. - if (DARWIN) - use_prebuilt_binary(pth) - set(PTH_LIBRARIES pth) - set(PTH_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) - else (DARWIN) - set(PTH_LIBRARIES) - set(PTH_INCLUDE_DIRS) - endif (DARWIN) -endif (STANDALONE) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 800bf8eba9..2963fa15af 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -7,7 +7,6 @@ include(00-Common) include(LLCommon) include(Linking) include(Boost) -include(Pth) include(LLSharedLibs) include(GoogleBreakpad) include(GooglePerfTools) @@ -18,7 +17,6 @@ include_directories( ${EXPAT_INCLUDE_DIRS} ${LLCOMMON_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} - ${PTH_INCLUDE_DIRS} ) # add_executable(lltreeiterators lltreeiterators.cpp) @@ -287,7 +285,6 @@ target_link_libraries( ${WINDOWS_LIBRARIES} ${BOOST_PROGRAM_OPTIONS_LIBRARY} ${BOOST_REGEX_LIBRARY} - ${PTH_LIBRARIES} ${GOOGLE_PERFTOOLS_LIBRARIES} ) diff --git a/indra/newview/licenses-mac.txt b/indra/newview/licenses-mac.txt index 1324fa1a86..af80bff5d9 100644 --- a/indra/newview/licenses-mac.txt +++ b/indra/newview/licenses-mac.txt @@ -315,516 +315,6 @@ This product includes cryptographic software written by Eric Young Hudson (tjh@cryptsoft.com). -=========== -Pth License -=========== - ____ _ _ - | _ \| |_| |__ ``Ian Fleming was a UNIX fan! - | |_) | __| '_ \ How do I know? Well, James Bond - | __/| |_| | | | had the (license to kill) number 007, - |_| \__|_| |_| i.e., he could execute anyone!'' - - GNU Pth - The GNU Portable Threads - - LICENSE - ======= - - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - - For some people, it is not clear, what is the real intention of the - author by using the GNU Lesser General Public License (LGPL) as the - distribution license for GNU Pth. This is, because the LGPL and the - GPL can be (and are often) interpreted very differently and some - interpretations seem to be not compatible with others. So an explicit - clarification for the use of the LGPL for GNU Pth from the authors - point of view might be useful. - - The author places this library under the LGPL to make sure that it - can be used both commercially and non-commercially provided that - modifications to the code base are always donated back to the official - code base under the same license conditions. Please keep in mind that - especially using this library in code not staying under the GPL or - the LGPL _is_ allowed and that any taint or license creap into code - that uses the library is not the authors intention. It is just the - case that _including_ this library into the source tree of other - applications is a little bit more inconvinient because of the LGPL. - But it has to be this way for good reasons. And keep in mind that - inconvinient doesn't mean not allowed or even impossible. - - Even if you want to use this library in some BSD-style licensed - packages, this _is_ possible as long as you are a little bit - carefully. Usually this means you have to make sure that the code is - still clearly separated into the source tree and that modifications to - this source area are done under the conditions of the LGPL. Read below - for more details on the conditions. Contact the author if you have - more questions. - - The license text of the GNU Lesser General Public License follows: - __________________________________________________________________________ - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - ======================= Original SSLeay License ======================= diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index f5365be11f..6a1a600696 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -150,7 +150,6 @@ jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (U jpeglib Copyright (C) 1991-1998, Thomas G. Lane. ogg/vorbis Copyright (C) 2001, Xiphophorus OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. -Pth Copyright (C) 1999-2006 Ralf S. Engelschall <rse@gnu.org> SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) xmlrpc-epi Copyright (C) 2000 Epinions, Inc. diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt index fe64926da6..7720619df3 100644 --- a/indra/viewer_components/login/CMakeLists.txt +++ b/indra/viewer_components/login/CMakeLists.txt @@ -9,13 +9,11 @@ endif(LL_TESTS) include(LLCommon) include(LLMath) include(LLXML) -include(Pth) include_directories( ${LLCOMMON_INCLUDE_DIRS} ${LLMATH_INCLUDE_DIRS} ${LLXML_INCLUDE_DIRS} - ${PTH_INCLUDE_DIRS} ) set(login_SOURCE_FILES @@ -42,7 +40,6 @@ target_link_libraries(lllogin ${LLCOMMON_LIBRARIES} ${LLMATH_LIBRARIES} ${LLXML_LIBRARIES} - ${PTH_LIBRARIES} ) if(LL_TESTS) @@ -50,11 +47,5 @@ if(LL_TESTS) lllogin.cpp ) - set_source_files_properties( - lllogin.cpp - PROPERTIES - LL_TEST_ADDITIONAL_LIBRARIES "${PTH_LIBRARIES}" - ) - LL_ADD_PROJECT_UNIT_TESTS(lllogin "${lllogin_TEST_SOURCE_FILES}") endif(LL_TESTS) diff --git a/install.xml b/install.xml index 9658a4195a..889386b336 100644 --- a/install.xml +++ b/install.xml @@ -1252,53 +1252,6 @@ anguage Infrstructure (CLI) international standard - pth - - copyright - Copyright (c) 1999-2006 Ralf S. Engelschall <rse@gnu.org> - description - Portable cooperative threads package, used to support Boost.Coroutine on Mac OS X 10.4 - license - lgpl - packages - - darwin - - md5sum - 216cb6217a06c64dfae30a55ab8b975c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-darwin-20090923.tar.bz2 - - linux - - md5sum - c5c2f73847c126e679d925beab48c7d4 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-linux-20090427.tar.bz2 - - linux32 - - md5sum - c5c2f73847c126e679d925beab48c7d4 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-linux32-20090427.tar.bz2 - - linux64 - - md5sum - c5c2f73847c126e679d925beab48c7d4 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-linux64-20090427.tar.bz2 - - windows - - md5sum - c5c2f73847c126e679d925beab48c7d4 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/pth-2.0.7-windows-20090427.tar.bz2 - - - pulseaudio copyright -- cgit v1.3 From 32bce7512476f85b37a9a36cae1fb576e8ce040b Mon Sep 17 00:00:00 2001 From: brad kittenbrink Date: Tue, 10 May 2011 17:22:34 -0700 Subject: New build of ogg-vorbis package to fix VWR-25727. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index a31d280b6f..0b1871b526 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1182,9 +1182,9 @@ archive hash - 57f32a1a670f06a4dc036eb1164ad9d7 + e849bc2b779fb7cc5e81aeb021a542c0 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-darwin-20110222.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/Darwin/installer/ogg_vorbis-1.2.2-1.3.2-darwin-20110510.tar.bz2 name darwin @@ -1194,9 +1194,9 @@ archive hash - 17c000ceef32c0623d038b4c73791bee + 71eaa462eb0bf8842277a3436483a354 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-linux-20110307.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/Linux/installer/ogg_vorbis-1.2.2-1.3.2-linux-20110511.tar.bz2 name linux @@ -1206,9 +1206,9 @@ archive hash - c8fccf7eeb25fd45cb7e04399c0b83ee + 291dbba89dd8162b76f2c2d82e908c6f url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-windows-20110222.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/CYGWIN/installer/ogg_vorbis-1.2.2-1.3.2-windows-20110510.tar.bz2 name windows -- cgit v1.3 From e4a9704d4157151442accca1116ad70f7f63ae95 Mon Sep 17 00:00:00 2001 From: callum Date: Fri, 13 May 2011 17:08:43 -0700 Subject: EXP-676 FIX As a web developer, I want to access information about the current state of the SL client, such as avatar location --- autobuild.xml | 12 +- indra/llplugin/llpluginclassmedia.cpp | 2744 ++++---- indra/llplugin/llpluginclassmedia.h | 840 +-- indra/media_plugins/webkit/media_plugin_webkit.cpp | 51 +- indra/newview/app_settings/settings.xml | 11 + indra/newview/llviewermedia.cpp | 7434 ++++++++++---------- indra/newview/llviewermedia.h | 5 +- indra/newview/skins/default/xui/en/menu_login.xml | 6 +- install.xml | 1851 ----- 9 files changed, 5649 insertions(+), 7305 deletions(-) delete mode 100644 install.xml (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index d72846b8fe..9d4fe8382b 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1062,9 +1062,9 @@ archive hash - 76c1015eafcba5ca9932c3009533b51c + 1aec55e90d510ffa3beb83c427af8312 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/225273/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110329.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/229944/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110513.tar.bz2 name darwin @@ -1074,9 +1074,9 @@ archive hash - c05a33ee8b6f253b5a744596dfc3707d + 834215a2a004efb983e318d9c458d112 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20101013.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/229944/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110513.tar.bz2 name linux @@ -1086,9 +1086,9 @@ archive hash - 1b1b8e104e39c542d69eb37b5ee81818 + 4442288be66754063f7dbc53b9b4a9a9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/225249/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110329.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/229944/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110513.tar.bz2 name windows diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 2103216536..cc8fe53c3b 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -1,1335 +1,1409 @@ -/** - * @file llpluginclassmedia.cpp - * @brief LLPluginClassMedia handles a plugin which knows about the "media" message class. - * - * @cond - * $LicenseInfo:firstyear=2008&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - * @endcond - */ - -#include "linden_common.h" -#include "indra_constants.h" - -#include "llpluginclassmedia.h" -#include "llpluginmessageclasses.h" - -#include "llqtwebkit.h" - -static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; - -static int nextPowerOf2( int value ) -{ - int next_power_of_2 = 1; - while ( next_power_of_2 < value ) - { - next_power_of_2 <<= 1; - } - - return next_power_of_2; -} - -LLPluginClassMedia::LLPluginClassMedia(LLPluginClassMediaOwner *owner) -{ - mOwner = owner; - mPlugin = NULL; - reset(); - - //debug use - mDeleteOK = true ; -} - - -LLPluginClassMedia::~LLPluginClassMedia() -{ - llassert_always(mDeleteOK) ; - reset(); -} - -bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_dir, const std::string &plugin_filename, bool debug) -{ - LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL; - LL_DEBUGS("Plugin") << "dir: " << plugin_dir << LL_ENDL; - LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL; - - mPlugin = new LLPluginProcessParent(this); - mPlugin->setSleepTime(mSleepTime); - - // Queue up the media init message -- it will be sent after all the currently queued messages. - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "init"); - message.setValue("target", mTarget); - sendMessage(message); - - mPlugin->init(launcher_filename, plugin_dir, plugin_filename, debug); - - return true; -} - - -void LLPluginClassMedia::reset() -{ - if(mPlugin != NULL) - { - delete mPlugin; - mPlugin = NULL; - } - - mTextureParamsReceived = false; - mRequestedTextureDepth = 0; - mRequestedTextureInternalFormat = 0; - mRequestedTextureFormat = 0; - mRequestedTextureType = 0; - mRequestedTextureSwapBytes = false; - mRequestedTextureCoordsOpenGL = false; - mTextureSharedMemorySize = 0; - mTextureSharedMemoryName.clear(); - mDefaultMediaWidth = 0; - mDefaultMediaHeight = 0; - mNaturalMediaWidth = 0; - mNaturalMediaHeight = 0; - mSetMediaWidth = -1; - mSetMediaHeight = -1; - mRequestedMediaWidth = 0; - mRequestedMediaHeight = 0; - mRequestedTextureWidth = 0; - mRequestedTextureHeight = 0; - mFullMediaWidth = 0; - mFullMediaHeight = 0; - mTextureWidth = 0; - mTextureHeight = 0; - mMediaWidth = 0; - mMediaHeight = 0; - mDirtyRect = LLRect::null; - mAutoScaleMedia = false; - mRequestedVolume = 1.0f; - mPriority = PRIORITY_NORMAL; - mLowPrioritySizeLimit = LOW_PRIORITY_TEXTURE_SIZE_DEFAULT; - mAllowDownsample = false; - mPadding = 0; - mLastMouseX = 0; - mLastMouseY = 0; - mStatus = LLPluginClassMediaOwner::MEDIA_NONE; - mSleepTime = 1.0f / 100.0f; - mCanCut = false; - mCanCopy = false; - mCanPaste = false; - mMediaName.clear(); - mMediaDescription.clear(); - mBackgroundColor = LLColor4(1.0f, 1.0f, 1.0f, 1.0f); - - // media_browser class - mNavigateURI.clear(); - mNavigateResultCode = -1; - mNavigateResultString.clear(); - mHistoryBackAvailable = false; - mHistoryForwardAvailable = false; - mStatusText.clear(); - mProgressPercent = 0; - mClickURL.clear(); - mClickNavType.clear(); - mClickTarget.clear(); - mClickUUID.clear(); - mStatusCode = 0; - - // media_time class - mCurrentTime = 0.0f; - mDuration = 0.0f; - mCurrentRate = 0.0f; - mLoadedDuration = 0.0f; -} - -void LLPluginClassMedia::idle(void) -{ - if(mPlugin) - { - mPlugin->idle(); - } - - if((mMediaWidth == -1) || (!mTextureParamsReceived) || (mPlugin == NULL) || (mPlugin->isBlocked()) || (mOwner == NULL)) - { - // Can't process a size change at this time - } - else if((mRequestedMediaWidth != mMediaWidth) || (mRequestedMediaHeight != mMediaHeight)) - { - // Calculate the correct size for the media texture - mRequestedTextureHeight = mRequestedMediaHeight; - if(mPadding < 0) - { - // negative values indicate the plugin wants a power of 2 - mRequestedTextureWidth = nextPowerOf2(mRequestedMediaWidth); - } - else - { - mRequestedTextureWidth = mRequestedMediaWidth; - - if(mPadding > 1) - { - // Pad up to a multiple of the specified number of bytes per row - int rowbytes = mRequestedTextureWidth * mRequestedTextureDepth; - int pad = rowbytes % mPadding; - if(pad != 0) - { - rowbytes += mPadding - pad; - } - - if(rowbytes % mRequestedTextureDepth == 0) - { - mRequestedTextureWidth = rowbytes / mRequestedTextureDepth; - } - else - { - LL_WARNS("Plugin") << "Unable to pad texture width, padding size " << mPadding << "is not a multiple of pixel size " << mRequestedTextureDepth << LL_ENDL; - } - } - } - - - // Size change has been requested but not initiated yet. - size_t newsize = mRequestedTextureWidth * mRequestedTextureHeight * mRequestedTextureDepth; - - // Add an extra line for padding, just in case. - newsize += mRequestedTextureWidth * mRequestedTextureDepth; - - if(newsize != mTextureSharedMemorySize) - { - if(!mTextureSharedMemoryName.empty()) - { - // Tell the plugin to remove the old memory segment - mPlugin->removeSharedMemory(mTextureSharedMemoryName); - mTextureSharedMemoryName.clear(); - } - - mTextureSharedMemorySize = newsize; - mTextureSharedMemoryName = mPlugin->addSharedMemory(mTextureSharedMemorySize); - if(!mTextureSharedMemoryName.empty()) - { - void *addr = mPlugin->getSharedMemoryAddress(mTextureSharedMemoryName); - - // clear texture memory to avoid random screen visual fuzz from uninitialized texture data - memset( addr, 0x00, newsize ); - - // We could do this to force an update, but textureValid() will still be returning false until the first roundtrip to the plugin, - // so it may not be worthwhile. - // mDirtyRect.setOriginAndSize(0, 0, mRequestedMediaWidth, mRequestedMediaHeight); - } - } - - // This is our local indicator that a change is in progress. - mTextureWidth = -1; - mTextureHeight = -1; - mMediaWidth = -1; - mMediaHeight = -1; - - // This invalidates any existing dirty rect. - resetDirty(); - - // Send a size change message to the plugin - { - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change"); - message.setValue("name", mTextureSharedMemoryName); - message.setValueS32("width", mRequestedMediaWidth); - message.setValueS32("height", mRequestedMediaHeight); - message.setValueS32("texture_width", mRequestedTextureWidth); - message.setValueS32("texture_height", mRequestedTextureHeight); - message.setValueReal("background_r", mBackgroundColor.mV[VX]); - message.setValueReal("background_g", mBackgroundColor.mV[VY]); - message.setValueReal("background_b", mBackgroundColor.mV[VZ]); - message.setValueReal("background_a", mBackgroundColor.mV[VW]); - mPlugin->sendMessage(message); // DO NOT just use sendMessage() here -- we want this to jump ahead of the queue. - - LL_DEBUGS("Plugin") << "Sending size_change" << LL_ENDL; - } - } - - if(mPlugin && mPlugin->isRunning()) - { - // Send queued messages - while(!mSendQueue.empty()) - { - LLPluginMessage message = mSendQueue.front(); - mSendQueue.pop(); - mPlugin->sendMessage(message); - } - } -} - -int LLPluginClassMedia::getTextureWidth() const -{ - return nextPowerOf2(mTextureWidth); -} - -int LLPluginClassMedia::getTextureHeight() const -{ - return nextPowerOf2(mTextureHeight); -} - -unsigned char* LLPluginClassMedia::getBitsData() -{ - unsigned char *result = NULL; - if((mPlugin != NULL) && !mTextureSharedMemoryName.empty()) - { - result = (unsigned char*)mPlugin->getSharedMemoryAddress(mTextureSharedMemoryName); - } - return result; -} - -void LLPluginClassMedia::setSize(int width, int height) -{ - if((width > 0) && (height > 0)) - { - mSetMediaWidth = width; - mSetMediaHeight = height; - } - else - { - mSetMediaWidth = -1; - mSetMediaHeight = -1; - } - - setSizeInternal(); -} - -void LLPluginClassMedia::setSizeInternal(void) -{ - if((mSetMediaWidth > 0) && (mSetMediaHeight > 0)) - { - mRequestedMediaWidth = mSetMediaWidth; - mRequestedMediaHeight = mSetMediaHeight; - } - else if((mNaturalMediaWidth > 0) && (mNaturalMediaHeight > 0)) - { - mRequestedMediaWidth = mNaturalMediaWidth; - mRequestedMediaHeight = mNaturalMediaHeight; - } - else - { - mRequestedMediaWidth = mDefaultMediaWidth; - mRequestedMediaHeight = mDefaultMediaHeight; - } - - // Save these for size/interest calculations - mFullMediaWidth = mRequestedMediaWidth; - mFullMediaHeight = mRequestedMediaHeight; - - if(mAllowDownsample) - { - switch(mPriority) - { - case PRIORITY_SLIDESHOW: - case PRIORITY_LOW: - // Reduce maximum texture dimension to (or below) mLowPrioritySizeLimit - while((mRequestedMediaWidth > mLowPrioritySizeLimit) || (mRequestedMediaHeight > mLowPrioritySizeLimit)) - { - mRequestedMediaWidth /= 2; - mRequestedMediaHeight /= 2; - } - break; - - default: - // Don't adjust texture size - break; - } - } - - if(mAutoScaleMedia) - { - mRequestedMediaWidth = nextPowerOf2(mRequestedMediaWidth); - mRequestedMediaHeight = nextPowerOf2(mRequestedMediaHeight); - } - - if(mRequestedMediaWidth > 2048) - mRequestedMediaWidth = 2048; - - if(mRequestedMediaHeight > 2048) - mRequestedMediaHeight = 2048; -} - -void LLPluginClassMedia::setAutoScale(bool auto_scale) -{ - if(auto_scale != mAutoScaleMedia) - { - mAutoScaleMedia = auto_scale; - setSizeInternal(); - } -} - -bool LLPluginClassMedia::textureValid(void) -{ - if( - !mTextureParamsReceived || - mTextureWidth <= 0 || - mTextureHeight <= 0 || - mMediaWidth <= 0 || - mMediaHeight <= 0 || - mRequestedMediaWidth != mMediaWidth || - mRequestedMediaHeight != mMediaHeight || - getBitsData() == NULL - ) - return false; - - return true; -} - -bool LLPluginClassMedia::getDirty(LLRect *dirty_rect) -{ - bool result = !mDirtyRect.isEmpty(); - - if(dirty_rect != NULL) - { - *dirty_rect = mDirtyRect; - } - - return result; -} - -void LLPluginClassMedia::resetDirty(void) -{ - mDirtyRect = LLRect::null; -} - -std::string LLPluginClassMedia::translateModifiers(MASK modifiers) -{ - std::string result; - - - if(modifiers & MASK_CONTROL) - { - result += "control|"; - } - - if(modifiers & MASK_ALT) - { - result += "alt|"; - } - - if(modifiers & MASK_SHIFT) - { - result += "shift|"; - } - - // TODO: should I deal with platform differences here or in callers? - // TODO: how do we deal with the Mac "command" key? -/* - if(modifiers & MASK_SOMETHING) - { - result += "meta|"; - } -*/ - return result; -} - -void LLPluginClassMedia::mouseEvent(EMouseEventType type, int button, int x, int y, MASK modifiers) -{ - if(type == MOUSE_EVENT_MOVE) - { - if(!mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked()) - { - // Don't queue up mouse move events that can't be delivered. - return; - } - - if((x == mLastMouseX) && (y == mLastMouseY)) - { - // Don't spam unnecessary mouse move events. - return; - } - - mLastMouseX = x; - mLastMouseY = y; - } - - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "mouse_event"); - std::string temp; - switch(type) - { - case MOUSE_EVENT_DOWN: temp = "down"; break; - case MOUSE_EVENT_UP: temp = "up"; break; - case MOUSE_EVENT_MOVE: temp = "move"; break; - case MOUSE_EVENT_DOUBLE_CLICK: temp = "double_click"; break; - } - message.setValue("event", temp); - - message.setValueS32("button", button); - - message.setValueS32("x", x); - - // Incoming coordinates are OpenGL-style ((0,0) = lower left), so flip them here if the plugin has requested it. - if(!mRequestedTextureCoordsOpenGL) - { - // TODO: Should I use mMediaHeight or mRequestedMediaHeight here? - y = mMediaHeight - y; - } - message.setValueS32("y", y); - - message.setValue("modifiers", translateModifiers(modifiers)); - - sendMessage(message); -} - -bool LLPluginClassMedia::keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data) -{ - bool result = true; - - // FIXME: - // HACK: we don't have an easy way to tell if the plugin is going to handle a particular keycode. - // For now, return false for the ones the webkit plugin won't handle properly. - - switch(key_code) - { - case KEY_BACKSPACE: - case KEY_TAB: - case KEY_RETURN: - case KEY_PAD_RETURN: - case KEY_SHIFT: - case KEY_CONTROL: - case KEY_ALT: - case KEY_CAPSLOCK: - case KEY_ESCAPE: - case KEY_PAGE_UP: - case KEY_PAGE_DOWN: - case KEY_END: - case KEY_HOME: - case KEY_LEFT: - case KEY_UP: - case KEY_RIGHT: - case KEY_DOWN: - case KEY_INSERT: - case KEY_DELETE: - // These will be handled - break; - - default: - // regular ASCII characters will also be handled - if(key_code >= KEY_SPECIAL) - { - // Other "special" codes will not work properly. - result = false; - } - break; - } - -#if LL_DARWIN - if(modifiers & MASK_ALT) - { - // Option-key modified characters should be handled by the unicode input path instead of this one. - result = false; - } -#endif - - if(result) - { - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "key_event"); - std::string temp; - switch(type) - { - case KEY_EVENT_DOWN: temp = "down"; break; - case KEY_EVENT_UP: temp = "up"; break; - case KEY_EVENT_REPEAT: temp = "repeat"; break; - } - message.setValue("event", temp); - - message.setValueS32("key", key_code); - - message.setValue("modifiers", translateModifiers(modifiers)); - message.setValueLLSD("native_key_data", native_key_data); - - sendMessage(message); - } - - return result; -} - -void LLPluginClassMedia::scrollEvent(int x, int y, MASK modifiers) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "scroll_event"); - - message.setValueS32("x", x); - message.setValueS32("y", y); - message.setValue("modifiers", translateModifiers(modifiers)); - - sendMessage(message); -} - -bool LLPluginClassMedia::textInput(const std::string &text, MASK modifiers, LLSD native_key_data) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "text_event"); - - message.setValue("text", text); - message.setValue("modifiers", translateModifiers(modifiers)); - message.setValueLLSD("native_key_data", native_key_data); - - sendMessage(message); - - return true; -} - -void LLPluginClassMedia::loadURI(const std::string &uri) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "load_uri"); - - message.setValue("uri", uri); - - sendMessage(message); -} - -const char* LLPluginClassMedia::priorityToString(EPriority priority) -{ - const char* result = "UNKNOWN"; - switch(priority) - { - case PRIORITY_UNLOADED: result = "unloaded"; break; - case PRIORITY_STOPPED: result = "stopped"; break; - case PRIORITY_HIDDEN: result = "hidden"; break; - case PRIORITY_SLIDESHOW: result = "slideshow"; break; - case PRIORITY_LOW: result = "low"; break; - case PRIORITY_NORMAL: result = "normal"; break; - case PRIORITY_HIGH: result = "high"; break; - } - - return result; -} - -void LLPluginClassMedia::setPriority(EPriority priority) -{ - if(mPriority != priority) - { - mPriority = priority; - - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_priority"); - - std::string priority_string = priorityToString(priority); - switch(priority) - { - case PRIORITY_UNLOADED: - mSleepTime = 1.0f; - break; - case PRIORITY_STOPPED: - mSleepTime = 1.0f; - break; - case PRIORITY_HIDDEN: - mSleepTime = 1.0f; - break; - case PRIORITY_SLIDESHOW: - mSleepTime = 1.0f; - break; - case PRIORITY_LOW: - mSleepTime = 1.0f / 25.0f; - break; - case PRIORITY_NORMAL: - mSleepTime = 1.0f / 50.0f; - break; - case PRIORITY_HIGH: - mSleepTime = 1.0f / 100.0f; - break; - } - - message.setValue("priority", priority_string); - - sendMessage(message); - - if(mPlugin) - { - mPlugin->setSleepTime(mSleepTime); - } - - LL_DEBUGS("PluginPriority") << this << ": setting priority to " << priority_string << LL_ENDL; - - // This may affect the calculated size, so recalculate it here. - setSizeInternal(); - } -} - -void LLPluginClassMedia::setLowPrioritySizeLimit(int size) -{ - int power = nextPowerOf2(size); - if(mLowPrioritySizeLimit != power) - { - mLowPrioritySizeLimit = power; - - // This may affect the calculated size, so recalculate it here. - setSizeInternal(); - } -} - -F64 LLPluginClassMedia::getCPUUsage() -{ - F64 result = 0.0f; - - if(mPlugin) - { - result = mPlugin->getCPUUsage(); - } - - return result; -} - -void LLPluginClassMedia::sendPickFileResponse(const std::string &file) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file_response"); - message.setValue("file", file); - if(mPlugin && mPlugin->isBlocked()) - { - // If the plugin sent a blocking pick-file request, the response should unblock it. - message.setValueBoolean("blocking_response", true); - } - sendMessage(message); -} - -void LLPluginClassMedia::sendAuthResponse(bool ok, const std::string &username, const std::string &password) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "auth_response"); - message.setValueBoolean("ok", ok); - message.setValue("username", username); - message.setValue("password", password); - if(mPlugin && mPlugin->isBlocked()) - { - // If the plugin sent a blocking pick-file request, the response should unblock it. - message.setValueBoolean("blocking_response", true); - } - sendMessage(message); -} - -void LLPluginClassMedia::cut() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "edit_cut"); - sendMessage(message); -} - -void LLPluginClassMedia::copy() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "edit_copy"); - sendMessage(message); -} - -void LLPluginClassMedia::paste() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "edit_paste"); - sendMessage(message); -} - -void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_user_data_path"); - message.setValue("path", user_data_path); - sendMessage(message); -} - -void LLPluginClassMedia::setLanguageCode(const std::string &language_code) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_language_code"); - message.setValue("language", language_code); - sendMessage(message); -} - -void LLPluginClassMedia::setPluginsEnabled(const bool enabled) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "plugins_enabled"); - message.setValueBoolean("enable", enabled); - sendMessage(message); -} - -void LLPluginClassMedia::setJavascriptEnabled(const bool enabled) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "javascript_enabled"); - message.setValueBoolean("enable", enabled); - sendMessage(message); -} - -void LLPluginClassMedia::setTarget(const std::string &target) -{ - mTarget = target; -} - -/* virtual */ -void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) -{ - std::string message_class = message.getClass(); - - if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) - { - std::string message_name = message.getName(); - if(message_name == "texture_params") - { - mRequestedTextureDepth = message.getValueS32("depth"); - mRequestedTextureInternalFormat = message.getValueU32("internalformat"); - mRequestedTextureFormat = message.getValueU32("format"); - mRequestedTextureType = message.getValueU32("type"); - mRequestedTextureSwapBytes = message.getValueBoolean("swap_bytes"); - mRequestedTextureCoordsOpenGL = message.getValueBoolean("coords_opengl"); - - // These two are optional, and will default to 0 if they're not specified. - mDefaultMediaWidth = message.getValueS32("default_width"); - mDefaultMediaHeight = message.getValueS32("default_height"); - - mAllowDownsample = message.getValueBoolean("allow_downsample"); - mPadding = message.getValueS32("padding"); - - setSizeInternal(); - - mTextureParamsReceived = true; - } - else if(message_name == "updated") - { - if(message.hasValue("left")) - { - LLRect newDirtyRect; - newDirtyRect.mLeft = message.getValueS32("left"); - newDirtyRect.mTop = message.getValueS32("top"); - newDirtyRect.mRight = message.getValueS32("right"); - newDirtyRect.mBottom = message.getValueS32("bottom"); - - // The plugin is likely to have top and bottom switched, due to vertical flip and OpenGL coordinate confusion. - // If they're backwards, swap them. - if(newDirtyRect.mTop < newDirtyRect.mBottom) - { - S32 temp = newDirtyRect.mTop; - newDirtyRect.mTop = newDirtyRect.mBottom; - newDirtyRect.mBottom = temp; - } - - if(mDirtyRect.isEmpty()) - { - mDirtyRect = newDirtyRect; - } - else - { - mDirtyRect.unionWith(newDirtyRect); - } - - LL_DEBUGS("Plugin") << "adjusted incoming rect is: (" - << newDirtyRect.mLeft << ", " - << newDirtyRect.mTop << ", " - << newDirtyRect.mRight << ", " - << newDirtyRect.mBottom << "), new dirty rect is: (" - << mDirtyRect.mLeft << ", " - << mDirtyRect.mTop << ", " - << mDirtyRect.mRight << ", " - << mDirtyRect.mBottom << ")" - << LL_ENDL; - - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CONTENT_UPDATED); - } - - - bool time_duration_updated = false; - int previous_percent = mProgressPercent; - - if(message.hasValue("current_time")) - { - mCurrentTime = message.getValueReal("current_time"); - time_duration_updated = true; - } - if(message.hasValue("duration")) - { - mDuration = message.getValueReal("duration"); - time_duration_updated = true; - } - - if(message.hasValue("current_rate")) - { - mCurrentRate = message.getValueReal("current_rate"); - } - - if(message.hasValue("loaded_duration")) - { - mLoadedDuration = message.getValueReal("loaded_duration"); - time_duration_updated = true; - } - else - { - // If the message doesn't contain a loaded_duration param, assume it's equal to duration - mLoadedDuration = mDuration; - } - - // Calculate a percentage based on the loaded duration and total duration. - if(mDuration != 0.0f) // Don't divide by zero. - { - mProgressPercent = (int)((mLoadedDuration * 100.0f)/mDuration); - } - - if(time_duration_updated) - { - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_TIME_DURATION_UPDATED); - } - - if(previous_percent != mProgressPercent) - { - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PROGRESS_UPDATED); - } - } - else if(message_name == "media_status") - { - std::string status = message.getValue("status"); - - LL_DEBUGS("Plugin") << "Status changed to: " << status << LL_ENDL; - - if(status == "loading") - { - mStatus = LLPluginClassMediaOwner::MEDIA_LOADING; - } - else if(status == "loaded") - { - mStatus = LLPluginClassMediaOwner::MEDIA_LOADED; - } - else if(status == "error") - { - mStatus = LLPluginClassMediaOwner::MEDIA_ERROR; - } - else if(status == "playing") - { - mStatus = LLPluginClassMediaOwner::MEDIA_PLAYING; - } - else if(status == "paused") - { - mStatus = LLPluginClassMediaOwner::MEDIA_PAUSED; - } - else if(status == "done") - { - mStatus = LLPluginClassMediaOwner::MEDIA_DONE; - } - else - { - // empty string or any unknown string - mStatus = LLPluginClassMediaOwner::MEDIA_NONE; - } - } - else if(message_name == "size_change_request") - { - S32 width = message.getValueS32("width"); - S32 height = message.getValueS32("height"); - std::string name = message.getValue("name"); - - // TODO: check that name matches? - mNaturalMediaWidth = width; - mNaturalMediaHeight = height; - - setSizeInternal(); - } - else if(message_name == "size_change_response") - { - std::string name = message.getValue("name"); - - // TODO: check that name matches? - - mTextureWidth = message.getValueS32("texture_width"); - mTextureHeight = message.getValueS32("texture_height"); - mMediaWidth = message.getValueS32("width"); - mMediaHeight = message.getValueS32("height"); - - // This invalidates any existing dirty rect. - resetDirty(); - - // TODO: should we verify that the plugin sent back the right values? - // Two size changes in a row may cause them to not match, due to queueing, etc. - - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_SIZE_CHANGED); - } - else if(message_name == "cursor_changed") - { - mCursorName = message.getValue("name"); - - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CURSOR_CHANGED); - } - else if(message_name == "edit_state") - { - if(message.hasValue("cut")) - { - mCanCut = message.getValueBoolean("cut"); - } - if(message.hasValue("copy")) - { - mCanCopy = message.getValueBoolean("copy"); - } - if(message.hasValue("paste")) - { - mCanPaste = message.getValueBoolean("paste"); - } - } - else if(message_name == "name_text") - { - mMediaName = message.getValue("name"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAME_CHANGED); - } - else if(message_name == "pick_file") - { - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PICK_FILE_REQUEST); - } - else if(message_name == "auth_request") - { - mAuthURL = message.getValue("url"); - mAuthRealm = message.getValue("realm"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_AUTH_REQUEST); - } - else - { - LL_WARNS("Plugin") << "Unknown " << message_name << " class message: " << message_name << LL_ENDL; - } - } - else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER) - { - std::string message_name = message.getName(); - if(message_name == "navigate_begin") - { - mNavigateURI = message.getValue("uri"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_BEGIN); - } - else if(message_name == "navigate_complete") - { - mNavigateURI = message.getValue("uri"); - mNavigateResultCode = message.getValueS32("result_code"); - mNavigateResultString = message.getValue("result_string"); - mHistoryBackAvailable = message.getValueBoolean("history_back_available"); - mHistoryForwardAvailable = message.getValueBoolean("history_forward_available"); - - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_COMPLETE); - } - else if(message_name == "progress") - { - mProgressPercent = message.getValueS32("percent"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PROGRESS_UPDATED); - } - else if(message_name == "status_text") - { - mStatusText = message.getValue("status"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_STATUS_TEXT_CHANGED); - } - else if(message_name == "location_changed") - { - mLocation = message.getValue("uri"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_LOCATION_CHANGED); - } - else if(message_name == "click_href") - { - mClickURL = message.getValue("uri"); - mClickTarget = message.getValue("target"); - mClickUUID = message.getValue("uuid"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); - } - else if(message_name == "click_nofollow") - { - mClickURL = message.getValue("uri"); - mClickNavType = message.getValue("nav_type"); - mClickTarget.clear(); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_NOFOLLOW); - } - else if(message_name == "navigate_error_page") - { - mStatusCode = message.getValueS32("status_code"); - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_ERROR_PAGE); - } - else if(message_name == "cookie_set") - { - if(mOwner) - { - mOwner->handleCookieSet(this, message.getValue("cookie")); - } - } - else if(message_name == "close_request") - { - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLOSE_REQUEST); - } - else if(message_name == "geometry_change") - { - mClickUUID = message.getValue("uuid"); - mGeometryX = message.getValueS32("x"); - mGeometryY = message.getValueS32("y"); - mGeometryWidth = message.getValueS32("width"); - mGeometryHeight = message.getValueS32("height"); - - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_GEOMETRY_CHANGE); - } - else if(message_name == "link_hovered") - { - // text is not currently used -- the tooltip hover text is taken from the "title". - mHoverLink = message.getValue("link"); - mHoverText = message.getValue("title"); - // message.getValue("text"); - - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_LINK_HOVERED); - } - else - { - LL_WARNS("Plugin") << "Unknown " << message_name << " class message: " << message_name << LL_ENDL; - } - } - else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME) - { - std::string message_name = message.getName(); - - // This class hasn't defined any incoming messages yet. -// if(message_name == "message_name") -// { -// } -// else - { - LL_WARNS("Plugin") << "Unknown " << message_name << " class message: " << message_name << LL_ENDL; - } - } - -} - -/* virtual */ -void LLPluginClassMedia::pluginLaunchFailed() -{ - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PLUGIN_FAILED_LAUNCH); -} - -/* virtual */ -void LLPluginClassMedia::pluginDied() -{ - mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PLUGIN_FAILED); -} - -void LLPluginClassMedia::mediaEvent(LLPluginClassMediaOwner::EMediaEvent event) -{ - if(mOwner) - { - mOwner->handleMediaEvent(this, event); - } -} - -void LLPluginClassMedia::sendMessage(const LLPluginMessage &message) -{ - if(mPlugin && mPlugin->isRunning()) - { - mPlugin->sendMessage(message); - } - else - { - // The plugin isn't set up yet -- queue this message to be sent after initialization. - mSendQueue.push(message); - } -} - -//////////////////////////////////////////////////////////// -// MARK: media_browser class functions -bool LLPluginClassMedia::pluginSupportsMediaBrowser(void) -{ - std::string version = mPlugin->getMessageClassVersion(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER); - return !version.empty(); -} - -void LLPluginClassMedia::focus(bool focused) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "focus"); - - message.setValueBoolean("focused", focused); - - sendMessage(message); -} - -void LLPluginClassMedia::clear_cache() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "clear_cache"); - sendMessage(message); -} - -void LLPluginClassMedia::clear_cookies() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "clear_cookies"); - sendMessage(message); -} - -void LLPluginClassMedia::set_cookies(const std::string &cookies) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_cookies"); - message.setValue("cookies", cookies); - sendMessage(message); -} - -void LLPluginClassMedia::enable_cookies(bool enable) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "enable_cookies"); - message.setValueBoolean("enable", enable); - sendMessage(message); -} - -void LLPluginClassMedia::proxy_setup(bool enable, const std::string &host, int port) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "proxy_setup"); - - message.setValueBoolean("enable", enable); - message.setValue("host", host); - message.setValueS32("port", port); - - sendMessage(message); -} - -void LLPluginClassMedia::browse_stop() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_stop"); - sendMessage(message); -} - -void LLPluginClassMedia::browse_reload(bool ignore_cache) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_reload"); - - message.setValueBoolean("ignore_cache", ignore_cache); - - sendMessage(message); -} - -void LLPluginClassMedia::browse_forward() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_forward"); - sendMessage(message); -} - -void LLPluginClassMedia::browse_back() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_back"); - sendMessage(message); -} - -void LLPluginClassMedia::setBrowserUserAgent(const std::string& user_agent) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_user_agent"); - - message.setValue("user_agent", user_agent); - - sendMessage(message); -} - -void LLPluginClassMedia::proxyWindowOpened(const std::string &target, const std::string &uuid) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "proxy_window_opened"); - - message.setValue("target", target); - message.setValue("uuid", uuid); - - sendMessage(message); -} - -void LLPluginClassMedia::proxyWindowClosed(const std::string &uuid) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "proxy_window_closed"); - - message.setValue("uuid", uuid); - - sendMessage(message); -} - -void LLPluginClassMedia::ignore_ssl_cert_errors(bool ignore) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "ignore_ssl_cert_errors"); - message.setValueBoolean("ignore", ignore); - sendMessage(message); -} - -void LLPluginClassMedia::addCertificateFilePath(const std::string& path) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "add_certificate_file_path"); - message.setValue("path", path); - sendMessage(message); -} - -void LLPluginClassMedia::crashPlugin() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "crash"); - - sendMessage(message); -} - -void LLPluginClassMedia::hangPlugin() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "hang"); - - sendMessage(message); -} - - -//////////////////////////////////////////////////////////// -// MARK: media_time class functions -bool LLPluginClassMedia::pluginSupportsMediaTime(void) -{ - std::string version = mPlugin->getMessageClassVersion(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME); - return !version.empty(); -} - -void LLPluginClassMedia::stop() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "stop"); - sendMessage(message); -} - -void LLPluginClassMedia::start(float rate) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "start"); - - message.setValueReal("rate", rate); - - sendMessage(message); -} - -void LLPluginClassMedia::pause() -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "pause"); - sendMessage(message); -} - -void LLPluginClassMedia::seek(float time) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "seek"); - - message.setValueReal("time", time); - - sendMessage(message); -} - -void LLPluginClassMedia::setLoop(bool loop) -{ - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "set_loop"); - - message.setValueBoolean("loop", loop); - - sendMessage(message); -} - -void LLPluginClassMedia::setVolume(float volume) -{ - if(volume != mRequestedVolume) - { - mRequestedVolume = volume; - - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "set_volume"); - - message.setValueReal("volume", volume); - - sendMessage(message); - } -} - -float LLPluginClassMedia::getVolume() -{ - return mRequestedVolume; -} - -void LLPluginClassMedia::initializeUrlHistory(const LLSD& url_history) -{ - // Send URL history to plugin - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "init_history"); - message.setValueLLSD("history", url_history); - sendMessage(message); - - LL_DEBUGS("Plugin") << "Sending history" << LL_ENDL; -} - +/** + * @file llpluginclassmedia.cpp + * @brief LLPluginClassMedia handles a plugin which knows about the "media" message class. + * + * @cond + * $LicenseInfo:firstyear=2008&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + * @endcond + */ + +#include "linden_common.h" +#include "indra_constants.h" + +#include "llpluginclassmedia.h" +#include "llpluginmessageclasses.h" + +#include "llqtwebkit.h" + +static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; + +static int nextPowerOf2( int value ) +{ + int next_power_of_2 = 1; + while ( next_power_of_2 < value ) + { + next_power_of_2 <<= 1; + } + + return next_power_of_2; +} + +LLPluginClassMedia::LLPluginClassMedia(LLPluginClassMediaOwner *owner) +{ + mOwner = owner; + mPlugin = NULL; + reset(); + + //debug use + mDeleteOK = true ; +} + + +LLPluginClassMedia::~LLPluginClassMedia() +{ + llassert_always(mDeleteOK) ; + reset(); +} + +bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_dir, const std::string &plugin_filename, bool debug) +{ + LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL; + LL_DEBUGS("Plugin") << "dir: " << plugin_dir << LL_ENDL; + LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL; + + mPlugin = new LLPluginProcessParent(this); + mPlugin->setSleepTime(mSleepTime); + + // Queue up the media init message -- it will be sent after all the currently queued messages. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "init"); + message.setValue("target", mTarget); + sendMessage(message); + + mPlugin->init(launcher_filename, plugin_dir, plugin_filename, debug); + + return true; +} + + +void LLPluginClassMedia::reset() +{ + if(mPlugin != NULL) + { + delete mPlugin; + mPlugin = NULL; + } + + mTextureParamsReceived = false; + mRequestedTextureDepth = 0; + mRequestedTextureInternalFormat = 0; + mRequestedTextureFormat = 0; + mRequestedTextureType = 0; + mRequestedTextureSwapBytes = false; + mRequestedTextureCoordsOpenGL = false; + mTextureSharedMemorySize = 0; + mTextureSharedMemoryName.clear(); + mDefaultMediaWidth = 0; + mDefaultMediaHeight = 0; + mNaturalMediaWidth = 0; + mNaturalMediaHeight = 0; + mSetMediaWidth = -1; + mSetMediaHeight = -1; + mRequestedMediaWidth = 0; + mRequestedMediaHeight = 0; + mRequestedTextureWidth = 0; + mRequestedTextureHeight = 0; + mFullMediaWidth = 0; + mFullMediaHeight = 0; + mTextureWidth = 0; + mTextureHeight = 0; + mMediaWidth = 0; + mMediaHeight = 0; + mDirtyRect = LLRect::null; + mAutoScaleMedia = false; + mRequestedVolume = 1.0f; + mPriority = PRIORITY_NORMAL; + mLowPrioritySizeLimit = LOW_PRIORITY_TEXTURE_SIZE_DEFAULT; + mAllowDownsample = false; + mPadding = 0; + mLastMouseX = 0; + mLastMouseY = 0; + mStatus = LLPluginClassMediaOwner::MEDIA_NONE; + mSleepTime = 1.0f / 100.0f; + mCanCut = false; + mCanCopy = false; + mCanPaste = false; + mMediaName.clear(); + mMediaDescription.clear(); + mBackgroundColor = LLColor4(1.0f, 1.0f, 1.0f, 1.0f); + + // media_browser class + mNavigateURI.clear(); + mNavigateResultCode = -1; + mNavigateResultString.clear(); + mHistoryBackAvailable = false; + mHistoryForwardAvailable = false; + mStatusText.clear(); + mProgressPercent = 0; + mClickURL.clear(); + mClickNavType.clear(); + mClickTarget.clear(); + mClickUUID.clear(); + mStatusCode = 0; + + // media_time class + mCurrentTime = 0.0f; + mDuration = 0.0f; + mCurrentRate = 0.0f; + mLoadedDuration = 0.0f; +} + +void LLPluginClassMedia::idle(void) +{ + if(mPlugin) + { + mPlugin->idle(); + } + + if((mMediaWidth == -1) || (!mTextureParamsReceived) || (mPlugin == NULL) || (mPlugin->isBlocked()) || (mOwner == NULL)) + { + // Can't process a size change at this time + } + else if((mRequestedMediaWidth != mMediaWidth) || (mRequestedMediaHeight != mMediaHeight)) + { + // Calculate the correct size for the media texture + mRequestedTextureHeight = mRequestedMediaHeight; + if(mPadding < 0) + { + // negative values indicate the plugin wants a power of 2 + mRequestedTextureWidth = nextPowerOf2(mRequestedMediaWidth); + } + else + { + mRequestedTextureWidth = mRequestedMediaWidth; + + if(mPadding > 1) + { + // Pad up to a multiple of the specified number of bytes per row + int rowbytes = mRequestedTextureWidth * mRequestedTextureDepth; + int pad = rowbytes % mPadding; + if(pad != 0) + { + rowbytes += mPadding - pad; + } + + if(rowbytes % mRequestedTextureDepth == 0) + { + mRequestedTextureWidth = rowbytes / mRequestedTextureDepth; + } + else + { + LL_WARNS("Plugin") << "Unable to pad texture width, padding size " << mPadding << "is not a multiple of pixel size " << mRequestedTextureDepth << LL_ENDL; + } + } + } + + + // Size change has been requested but not initiated yet. + size_t newsize = mRequestedTextureWidth * mRequestedTextureHeight * mRequestedTextureDepth; + + // Add an extra line for padding, just in case. + newsize += mRequestedTextureWidth * mRequestedTextureDepth; + + if(newsize != mTextureSharedMemorySize) + { + if(!mTextureSharedMemoryName.empty()) + { + // Tell the plugin to remove the old memory segment + mPlugin->removeSharedMemory(mTextureSharedMemoryName); + mTextureSharedMemoryName.clear(); + } + + mTextureSharedMemorySize = newsize; + mTextureSharedMemoryName = mPlugin->addSharedMemory(mTextureSharedMemorySize); + if(!mTextureSharedMemoryName.empty()) + { + void *addr = mPlugin->getSharedMemoryAddress(mTextureSharedMemoryName); + + // clear texture memory to avoid random screen visual fuzz from uninitialized texture data + memset( addr, 0x00, newsize ); + + // We could do this to force an update, but textureValid() will still be returning false until the first roundtrip to the plugin, + // so it may not be worthwhile. + // mDirtyRect.setOriginAndSize(0, 0, mRequestedMediaWidth, mRequestedMediaHeight); + } + } + + // This is our local indicator that a change is in progress. + mTextureWidth = -1; + mTextureHeight = -1; + mMediaWidth = -1; + mMediaHeight = -1; + + // This invalidates any existing dirty rect. + resetDirty(); + + // Send a size change message to the plugin + { + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change"); + message.setValue("name", mTextureSharedMemoryName); + message.setValueS32("width", mRequestedMediaWidth); + message.setValueS32("height", mRequestedMediaHeight); + message.setValueS32("texture_width", mRequestedTextureWidth); + message.setValueS32("texture_height", mRequestedTextureHeight); + message.setValueReal("background_r", mBackgroundColor.mV[VX]); + message.setValueReal("background_g", mBackgroundColor.mV[VY]); + message.setValueReal("background_b", mBackgroundColor.mV[VZ]); + message.setValueReal("background_a", mBackgroundColor.mV[VW]); + mPlugin->sendMessage(message); // DO NOT just use sendMessage() here -- we want this to jump ahead of the queue. + + LL_DEBUGS("Plugin") << "Sending size_change" << LL_ENDL; + } + } + + if(mPlugin && mPlugin->isRunning()) + { + // Send queued messages + while(!mSendQueue.empty()) + { + LLPluginMessage message = mSendQueue.front(); + mSendQueue.pop(); + mPlugin->sendMessage(message); + } + } +} + +int LLPluginClassMedia::getTextureWidth() const +{ + return nextPowerOf2(mTextureWidth); +} + +int LLPluginClassMedia::getTextureHeight() const +{ + return nextPowerOf2(mTextureHeight); +} + +unsigned char* LLPluginClassMedia::getBitsData() +{ + unsigned char *result = NULL; + if((mPlugin != NULL) && !mTextureSharedMemoryName.empty()) + { + result = (unsigned char*)mPlugin->getSharedMemoryAddress(mTextureSharedMemoryName); + } + return result; +} + +void LLPluginClassMedia::setSize(int width, int height) +{ + if((width > 0) && (height > 0)) + { + mSetMediaWidth = width; + mSetMediaHeight = height; + } + else + { + mSetMediaWidth = -1; + mSetMediaHeight = -1; + } + + setSizeInternal(); +} + +void LLPluginClassMedia::setSizeInternal(void) +{ + if((mSetMediaWidth > 0) && (mSetMediaHeight > 0)) + { + mRequestedMediaWidth = mSetMediaWidth; + mRequestedMediaHeight = mSetMediaHeight; + } + else if((mNaturalMediaWidth > 0) && (mNaturalMediaHeight > 0)) + { + mRequestedMediaWidth = mNaturalMediaWidth; + mRequestedMediaHeight = mNaturalMediaHeight; + } + else + { + mRequestedMediaWidth = mDefaultMediaWidth; + mRequestedMediaHeight = mDefaultMediaHeight; + } + + // Save these for size/interest calculations + mFullMediaWidth = mRequestedMediaWidth; + mFullMediaHeight = mRequestedMediaHeight; + + if(mAllowDownsample) + { + switch(mPriority) + { + case PRIORITY_SLIDESHOW: + case PRIORITY_LOW: + // Reduce maximum texture dimension to (or below) mLowPrioritySizeLimit + while((mRequestedMediaWidth > mLowPrioritySizeLimit) || (mRequestedMediaHeight > mLowPrioritySizeLimit)) + { + mRequestedMediaWidth /= 2; + mRequestedMediaHeight /= 2; + } + break; + + default: + // Don't adjust texture size + break; + } + } + + if(mAutoScaleMedia) + { + mRequestedMediaWidth = nextPowerOf2(mRequestedMediaWidth); + mRequestedMediaHeight = nextPowerOf2(mRequestedMediaHeight); + } + + if(mRequestedMediaWidth > 2048) + mRequestedMediaWidth = 2048; + + if(mRequestedMediaHeight > 2048) + mRequestedMediaHeight = 2048; +} + +void LLPluginClassMedia::setAutoScale(bool auto_scale) +{ + if(auto_scale != mAutoScaleMedia) + { + mAutoScaleMedia = auto_scale; + setSizeInternal(); + } +} + +bool LLPluginClassMedia::textureValid(void) +{ + if( + !mTextureParamsReceived || + mTextureWidth <= 0 || + mTextureHeight <= 0 || + mMediaWidth <= 0 || + mMediaHeight <= 0 || + mRequestedMediaWidth != mMediaWidth || + mRequestedMediaHeight != mMediaHeight || + getBitsData() == NULL + ) + return false; + + return true; +} + +bool LLPluginClassMedia::getDirty(LLRect *dirty_rect) +{ + bool result = !mDirtyRect.isEmpty(); + + if(dirty_rect != NULL) + { + *dirty_rect = mDirtyRect; + } + + return result; +} + +void LLPluginClassMedia::resetDirty(void) +{ + mDirtyRect = LLRect::null; +} + +std::string LLPluginClassMedia::translateModifiers(MASK modifiers) +{ + std::string result; + + + if(modifiers & MASK_CONTROL) + { + result += "control|"; + } + + if(modifiers & MASK_ALT) + { + result += "alt|"; + } + + if(modifiers & MASK_SHIFT) + { + result += "shift|"; + } + + // TODO: should I deal with platform differences here or in callers? + // TODO: how do we deal with the Mac "command" key? +/* + if(modifiers & MASK_SOMETHING) + { + result += "meta|"; + } +*/ + return result; +} + +void LLPluginClassMedia::jsExposeObjectEvent( bool expose ) +{ + if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) + { + return; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_expose_object"); + message.setValueBoolean( "expose", expose ); + sendMessage( message ); +} + +void LLPluginClassMedia::jsValuesValidEvent( bool valid ) +{ + if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) + { + return; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_values_valid"); + message.setValueBoolean( "valid", valid ); + sendMessage( message ); +} + +void LLPluginClassMedia::jsAgentLocationEvent( double x, double y, double z ) +{ + if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) + { + return; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_agent_location"); + message.setValueReal( "x", x ); + message.setValueReal( "y", y ); + message.setValueReal( "z", z ); + sendMessage( message ); +} + +void LLPluginClassMedia::jsAgentLanguageEvent( const std::string& language ) +{ + if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) + { + return; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_agent_language"); + message.setValue( "language", language ); + sendMessage( message ); +} + +void LLPluginClassMedia::jsAgentRegionEvent( const std::string& region ) +{ + if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) + { + return; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_agent_region"); + message.setValue( "region", region ); + sendMessage( message ); +} + +void LLPluginClassMedia::jsAgentMaturityEvent( const std::string& maturity ) +{ + if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) + { + return; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_agent_maturity"); + message.setValue( "maturity", maturity ); + sendMessage( message ); +} + +void LLPluginClassMedia::mouseEvent(EMouseEventType type, int button, int x, int y, MASK modifiers) +{ + if(type == MOUSE_EVENT_MOVE) + { + if(!mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked()) + { + // Don't queue up mouse move events that can't be delivered. + return; + } + + if((x == mLastMouseX) && (y == mLastMouseY)) + { + // Don't spam unnecessary mouse move events. + return; + } + + mLastMouseX = x; + mLastMouseY = y; + } + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "mouse_event"); + std::string temp; + switch(type) + { + case MOUSE_EVENT_DOWN: temp = "down"; break; + case MOUSE_EVENT_UP: temp = "up"; break; + case MOUSE_EVENT_MOVE: temp = "move"; break; + case MOUSE_EVENT_DOUBLE_CLICK: temp = "double_click"; break; + } + message.setValue("event", temp); + + message.setValueS32("button", button); + + message.setValueS32("x", x); + + // Incoming coordinates are OpenGL-style ((0,0) = lower left), so flip them here if the plugin has requested it. + if(!mRequestedTextureCoordsOpenGL) + { + // TODO: Should I use mMediaHeight or mRequestedMediaHeight here? + y = mMediaHeight - y; + } + message.setValueS32("y", y); + + message.setValue("modifiers", translateModifiers(modifiers)); + + sendMessage(message); +} + +bool LLPluginClassMedia::keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data) +{ + bool result = true; + + // FIXME: + // HACK: we don't have an easy way to tell if the plugin is going to handle a particular keycode. + // For now, return false for the ones the webkit plugin won't handle properly. + + switch(key_code) + { + case KEY_BACKSPACE: + case KEY_TAB: + case KEY_RETURN: + case KEY_PAD_RETURN: + case KEY_SHIFT: + case KEY_CONTROL: + case KEY_ALT: + case KEY_CAPSLOCK: + case KEY_ESCAPE: + case KEY_PAGE_UP: + case KEY_PAGE_DOWN: + case KEY_END: + case KEY_HOME: + case KEY_LEFT: + case KEY_UP: + case KEY_RIGHT: + case KEY_DOWN: + case KEY_INSERT: + case KEY_DELETE: + // These will be handled + break; + + default: + // regular ASCII characters will also be handled + if(key_code >= KEY_SPECIAL) + { + // Other "special" codes will not work properly. + result = false; + } + break; + } + +#if LL_DARWIN + if(modifiers & MASK_ALT) + { + // Option-key modified characters should be handled by the unicode input path instead of this one. + result = false; + } +#endif + + if(result) + { + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "key_event"); + std::string temp; + switch(type) + { + case KEY_EVENT_DOWN: temp = "down"; break; + case KEY_EVENT_UP: temp = "up"; break; + case KEY_EVENT_REPEAT: temp = "repeat"; break; + } + message.setValue("event", temp); + + message.setValueS32("key", key_code); + + message.setValue("modifiers", translateModifiers(modifiers)); + message.setValueLLSD("native_key_data", native_key_data); + + sendMessage(message); + } + + return result; +} + +void LLPluginClassMedia::scrollEvent(int x, int y, MASK modifiers) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "scroll_event"); + + message.setValueS32("x", x); + message.setValueS32("y", y); + message.setValue("modifiers", translateModifiers(modifiers)); + + sendMessage(message); +} + +bool LLPluginClassMedia::textInput(const std::string &text, MASK modifiers, LLSD native_key_data) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "text_event"); + + message.setValue("text", text); + message.setValue("modifiers", translateModifiers(modifiers)); + message.setValueLLSD("native_key_data", native_key_data); + + sendMessage(message); + + return true; +} + +void LLPluginClassMedia::loadURI(const std::string &uri) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "load_uri"); + + message.setValue("uri", uri); + + sendMessage(message); +} + +const char* LLPluginClassMedia::priorityToString(EPriority priority) +{ + const char* result = "UNKNOWN"; + switch(priority) + { + case PRIORITY_UNLOADED: result = "unloaded"; break; + case PRIORITY_STOPPED: result = "stopped"; break; + case PRIORITY_HIDDEN: result = "hidden"; break; + case PRIORITY_SLIDESHOW: result = "slideshow"; break; + case PRIORITY_LOW: result = "low"; break; + case PRIORITY_NORMAL: result = "normal"; break; + case PRIORITY_HIGH: result = "high"; break; + } + + return result; +} + +void LLPluginClassMedia::setPriority(EPriority priority) +{ + if(mPriority != priority) + { + mPriority = priority; + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_priority"); + + std::string priority_string = priorityToString(priority); + switch(priority) + { + case PRIORITY_UNLOADED: + mSleepTime = 1.0f; + break; + case PRIORITY_STOPPED: + mSleepTime = 1.0f; + break; + case PRIORITY_HIDDEN: + mSleepTime = 1.0f; + break; + case PRIORITY_SLIDESHOW: + mSleepTime = 1.0f; + break; + case PRIORITY_LOW: + mSleepTime = 1.0f / 25.0f; + break; + case PRIORITY_NORMAL: + mSleepTime = 1.0f / 50.0f; + break; + case PRIORITY_HIGH: + mSleepTime = 1.0f / 100.0f; + break; + } + + message.setValue("priority", priority_string); + + sendMessage(message); + + if(mPlugin) + { + mPlugin->setSleepTime(mSleepTime); + } + + LL_DEBUGS("PluginPriority") << this << ": setting priority to " << priority_string << LL_ENDL; + + // This may affect the calculated size, so recalculate it here. + setSizeInternal(); + } +} + +void LLPluginClassMedia::setLowPrioritySizeLimit(int size) +{ + int power = nextPowerOf2(size); + if(mLowPrioritySizeLimit != power) + { + mLowPrioritySizeLimit = power; + + // This may affect the calculated size, so recalculate it here. + setSizeInternal(); + } +} + +F64 LLPluginClassMedia::getCPUUsage() +{ + F64 result = 0.0f; + + if(mPlugin) + { + result = mPlugin->getCPUUsage(); + } + + return result; +} + +void LLPluginClassMedia::sendPickFileResponse(const std::string &file) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "pick_file_response"); + message.setValue("file", file); + if(mPlugin && mPlugin->isBlocked()) + { + // If the plugin sent a blocking pick-file request, the response should unblock it. + message.setValueBoolean("blocking_response", true); + } + sendMessage(message); +} + +void LLPluginClassMedia::sendAuthResponse(bool ok, const std::string &username, const std::string &password) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "auth_response"); + message.setValueBoolean("ok", ok); + message.setValue("username", username); + message.setValue("password", password); + if(mPlugin && mPlugin->isBlocked()) + { + // If the plugin sent a blocking pick-file request, the response should unblock it. + message.setValueBoolean("blocking_response", true); + } + sendMessage(message); +} + +void LLPluginClassMedia::cut() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "edit_cut"); + sendMessage(message); +} + +void LLPluginClassMedia::copy() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "edit_copy"); + sendMessage(message); +} + +void LLPluginClassMedia::paste() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "edit_paste"); + sendMessage(message); +} + +void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_user_data_path"); + message.setValue("path", user_data_path); + sendMessage(message); +} + +void LLPluginClassMedia::setLanguageCode(const std::string &language_code) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_language_code"); + message.setValue("language", language_code); + sendMessage(message); +} + +void LLPluginClassMedia::setPluginsEnabled(const bool enabled) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "plugins_enabled"); + message.setValueBoolean("enable", enabled); + sendMessage(message); +} + +void LLPluginClassMedia::setJavascriptEnabled(const bool enabled) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "javascript_enabled"); + message.setValueBoolean("enable", enabled); + sendMessage(message); +} + +void LLPluginClassMedia::setTarget(const std::string &target) +{ + mTarget = target; +} + +/* virtual */ +void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) +{ + std::string message_class = message.getClass(); + + if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) + { + std::string message_name = message.getName(); + if(message_name == "texture_params") + { + mRequestedTextureDepth = message.getValueS32("depth"); + mRequestedTextureInternalFormat = message.getValueU32("internalformat"); + mRequestedTextureFormat = message.getValueU32("format"); + mRequestedTextureType = message.getValueU32("type"); + mRequestedTextureSwapBytes = message.getValueBoolean("swap_bytes"); + mRequestedTextureCoordsOpenGL = message.getValueBoolean("coords_opengl"); + + // These two are optional, and will default to 0 if they're not specified. + mDefaultMediaWidth = message.getValueS32("default_width"); + mDefaultMediaHeight = message.getValueS32("default_height"); + + mAllowDownsample = message.getValueBoolean("allow_downsample"); + mPadding = message.getValueS32("padding"); + + setSizeInternal(); + + mTextureParamsReceived = true; + } + else if(message_name == "updated") + { + if(message.hasValue("left")) + { + LLRect newDirtyRect; + newDirtyRect.mLeft = message.getValueS32("left"); + newDirtyRect.mTop = message.getValueS32("top"); + newDirtyRect.mRight = message.getValueS32("right"); + newDirtyRect.mBottom = message.getValueS32("bottom"); + + // The plugin is likely to have top and bottom switched, due to vertical flip and OpenGL coordinate confusion. + // If they're backwards, swap them. + if(newDirtyRect.mTop < newDirtyRect.mBottom) + { + S32 temp = newDirtyRect.mTop; + newDirtyRect.mTop = newDirtyRect.mBottom; + newDirtyRect.mBottom = temp; + } + + if(mDirtyRect.isEmpty()) + { + mDirtyRect = newDirtyRect; + } + else + { + mDirtyRect.unionWith(newDirtyRect); + } + + LL_DEBUGS("Plugin") << "adjusted incoming rect is: (" + << newDirtyRect.mLeft << ", " + << newDirtyRect.mTop << ", " + << newDirtyRect.mRight << ", " + << newDirtyRect.mBottom << "), new dirty rect is: (" + << mDirtyRect.mLeft << ", " + << mDirtyRect.mTop << ", " + << mDirtyRect.mRight << ", " + << mDirtyRect.mBottom << ")" + << LL_ENDL; + + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CONTENT_UPDATED); + } + + + bool time_duration_updated = false; + int previous_percent = mProgressPercent; + + if(message.hasValue("current_time")) + { + mCurrentTime = message.getValueReal("current_time"); + time_duration_updated = true; + } + if(message.hasValue("duration")) + { + mDuration = message.getValueReal("duration"); + time_duration_updated = true; + } + + if(message.hasValue("current_rate")) + { + mCurrentRate = message.getValueReal("current_rate"); + } + + if(message.hasValue("loaded_duration")) + { + mLoadedDuration = message.getValueReal("loaded_duration"); + time_duration_updated = true; + } + else + { + // If the message doesn't contain a loaded_duration param, assume it's equal to duration + mLoadedDuration = mDuration; + } + + // Calculate a percentage based on the loaded duration and total duration. + if(mDuration != 0.0f) // Don't divide by zero. + { + mProgressPercent = (int)((mLoadedDuration * 100.0f)/mDuration); + } + + if(time_duration_updated) + { + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_TIME_DURATION_UPDATED); + } + + if(previous_percent != mProgressPercent) + { + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PROGRESS_UPDATED); + } + } + else if(message_name == "media_status") + { + std::string status = message.getValue("status"); + + LL_DEBUGS("Plugin") << "Status changed to: " << status << LL_ENDL; + + if(status == "loading") + { + mStatus = LLPluginClassMediaOwner::MEDIA_LOADING; + } + else if(status == "loaded") + { + mStatus = LLPluginClassMediaOwner::MEDIA_LOADED; + } + else if(status == "error") + { + mStatus = LLPluginClassMediaOwner::MEDIA_ERROR; + } + else if(status == "playing") + { + mStatus = LLPluginClassMediaOwner::MEDIA_PLAYING; + } + else if(status == "paused") + { + mStatus = LLPluginClassMediaOwner::MEDIA_PAUSED; + } + else if(status == "done") + { + mStatus = LLPluginClassMediaOwner::MEDIA_DONE; + } + else + { + // empty string or any unknown string + mStatus = LLPluginClassMediaOwner::MEDIA_NONE; + } + } + else if(message_name == "size_change_request") + { + S32 width = message.getValueS32("width"); + S32 height = message.getValueS32("height"); + std::string name = message.getValue("name"); + + // TODO: check that name matches? + mNaturalMediaWidth = width; + mNaturalMediaHeight = height; + + setSizeInternal(); + } + else if(message_name == "size_change_response") + { + std::string name = message.getValue("name"); + + // TODO: check that name matches? + + mTextureWidth = message.getValueS32("texture_width"); + mTextureHeight = message.getValueS32("texture_height"); + mMediaWidth = message.getValueS32("width"); + mMediaHeight = message.getValueS32("height"); + + // This invalidates any existing dirty rect. + resetDirty(); + + // TODO: should we verify that the plugin sent back the right values? + // Two size changes in a row may cause them to not match, due to queueing, etc. + + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_SIZE_CHANGED); + } + else if(message_name == "cursor_changed") + { + mCursorName = message.getValue("name"); + + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CURSOR_CHANGED); + } + else if(message_name == "edit_state") + { + if(message.hasValue("cut")) + { + mCanCut = message.getValueBoolean("cut"); + } + if(message.hasValue("copy")) + { + mCanCopy = message.getValueBoolean("copy"); + } + if(message.hasValue("paste")) + { + mCanPaste = message.getValueBoolean("paste"); + } + } + else if(message_name == "name_text") + { + mMediaName = message.getValue("name"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAME_CHANGED); + } + else if(message_name == "pick_file") + { + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PICK_FILE_REQUEST); + } + else if(message_name == "auth_request") + { + mAuthURL = message.getValue("url"); + mAuthRealm = message.getValue("realm"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_AUTH_REQUEST); + } + else + { + LL_WARNS("Plugin") << "Unknown " << message_name << " class message: " << message_name << LL_ENDL; + } + } + else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER) + { + std::string message_name = message.getName(); + if(message_name == "navigate_begin") + { + mNavigateURI = message.getValue("uri"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_BEGIN); + } + else if(message_name == "navigate_complete") + { + mNavigateURI = message.getValue("uri"); + mNavigateResultCode = message.getValueS32("result_code"); + mNavigateResultString = message.getValue("result_string"); + mHistoryBackAvailable = message.getValueBoolean("history_back_available"); + mHistoryForwardAvailable = message.getValueBoolean("history_forward_available"); + + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_COMPLETE); + } + else if(message_name == "progress") + { + mProgressPercent = message.getValueS32("percent"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PROGRESS_UPDATED); + } + else if(message_name == "status_text") + { + mStatusText = message.getValue("status"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_STATUS_TEXT_CHANGED); + } + else if(message_name == "location_changed") + { + mLocation = message.getValue("uri"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_LOCATION_CHANGED); + } + else if(message_name == "click_href") + { + mClickURL = message.getValue("uri"); + mClickTarget = message.getValue("target"); + mClickUUID = message.getValue("uuid"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); + } + else if(message_name == "click_nofollow") + { + mClickURL = message.getValue("uri"); + mClickNavType = message.getValue("nav_type"); + mClickTarget.clear(); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_NOFOLLOW); + } + else if(message_name == "navigate_error_page") + { + mStatusCode = message.getValueS32("status_code"); + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_NAVIGATE_ERROR_PAGE); + } + else if(message_name == "cookie_set") + { + if(mOwner) + { + mOwner->handleCookieSet(this, message.getValue("cookie")); + } + } + else if(message_name == "close_request") + { + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLOSE_REQUEST); + } + else if(message_name == "geometry_change") + { + mClickUUID = message.getValue("uuid"); + mGeometryX = message.getValueS32("x"); + mGeometryY = message.getValueS32("y"); + mGeometryWidth = message.getValueS32("width"); + mGeometryHeight = message.getValueS32("height"); + + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_GEOMETRY_CHANGE); + } + else if(message_name == "link_hovered") + { + // text is not currently used -- the tooltip hover text is taken from the "title". + mHoverLink = message.getValue("link"); + mHoverText = message.getValue("title"); + // message.getValue("text"); + + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_LINK_HOVERED); + } + else + { + LL_WARNS("Plugin") << "Unknown " << message_name << " class message: " << message_name << LL_ENDL; + } + } + else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME) + { + std::string message_name = message.getName(); + + // This class hasn't defined any incoming messages yet. +// if(message_name == "message_name") +// { +// } +// else + { + LL_WARNS("Plugin") << "Unknown " << message_name << " class message: " << message_name << LL_ENDL; + } + } + +} + +/* virtual */ +void LLPluginClassMedia::pluginLaunchFailed() +{ + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PLUGIN_FAILED_LAUNCH); +} + +/* virtual */ +void LLPluginClassMedia::pluginDied() +{ + mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_PLUGIN_FAILED); +} + +void LLPluginClassMedia::mediaEvent(LLPluginClassMediaOwner::EMediaEvent event) +{ + if(mOwner) + { + mOwner->handleMediaEvent(this, event); + } +} + +void LLPluginClassMedia::sendMessage(const LLPluginMessage &message) +{ + if(mPlugin && mPlugin->isRunning()) + { + mPlugin->sendMessage(message); + } + else + { + // The plugin isn't set up yet -- queue this message to be sent after initialization. + mSendQueue.push(message); + } +} + +//////////////////////////////////////////////////////////// +// MARK: media_browser class functions +bool LLPluginClassMedia::pluginSupportsMediaBrowser(void) +{ + std::string version = mPlugin->getMessageClassVersion(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER); + return !version.empty(); +} + +void LLPluginClassMedia::focus(bool focused) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "focus"); + + message.setValueBoolean("focused", focused); + + sendMessage(message); +} + +void LLPluginClassMedia::clear_cache() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "clear_cache"); + sendMessage(message); +} + +void LLPluginClassMedia::clear_cookies() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "clear_cookies"); + sendMessage(message); +} + +void LLPluginClassMedia::set_cookies(const std::string &cookies) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_cookies"); + message.setValue("cookies", cookies); + sendMessage(message); +} + +void LLPluginClassMedia::enable_cookies(bool enable) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "enable_cookies"); + message.setValueBoolean("enable", enable); + sendMessage(message); +} + +void LLPluginClassMedia::proxy_setup(bool enable, const std::string &host, int port) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "proxy_setup"); + + message.setValueBoolean("enable", enable); + message.setValue("host", host); + message.setValueS32("port", port); + + sendMessage(message); +} + +void LLPluginClassMedia::browse_stop() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_stop"); + sendMessage(message); +} + +void LLPluginClassMedia::browse_reload(bool ignore_cache) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_reload"); + + message.setValueBoolean("ignore_cache", ignore_cache); + + sendMessage(message); +} + +void LLPluginClassMedia::browse_forward() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_forward"); + sendMessage(message); +} + +void LLPluginClassMedia::browse_back() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "browse_back"); + sendMessage(message); +} + +void LLPluginClassMedia::setBrowserUserAgent(const std::string& user_agent) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_user_agent"); + + message.setValue("user_agent", user_agent); + + sendMessage(message); +} + +void LLPluginClassMedia::proxyWindowOpened(const std::string &target, const std::string &uuid) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "proxy_window_opened"); + + message.setValue("target", target); + message.setValue("uuid", uuid); + + sendMessage(message); +} + +void LLPluginClassMedia::proxyWindowClosed(const std::string &uuid) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "proxy_window_closed"); + + message.setValue("uuid", uuid); + + sendMessage(message); +} + +void LLPluginClassMedia::ignore_ssl_cert_errors(bool ignore) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "ignore_ssl_cert_errors"); + message.setValueBoolean("ignore", ignore); + sendMessage(message); +} + +void LLPluginClassMedia::addCertificateFilePath(const std::string& path) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "add_certificate_file_path"); + message.setValue("path", path); + sendMessage(message); +} + +void LLPluginClassMedia::crashPlugin() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "crash"); + + sendMessage(message); +} + +void LLPluginClassMedia::hangPlugin() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "hang"); + + sendMessage(message); +} + + +//////////////////////////////////////////////////////////// +// MARK: media_time class functions +bool LLPluginClassMedia::pluginSupportsMediaTime(void) +{ + std::string version = mPlugin->getMessageClassVersion(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME); + return !version.empty(); +} + +void LLPluginClassMedia::stop() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "stop"); + sendMessage(message); +} + +void LLPluginClassMedia::start(float rate) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "start"); + + message.setValueReal("rate", rate); + + sendMessage(message); +} + +void LLPluginClassMedia::pause() +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "pause"); + sendMessage(message); +} + +void LLPluginClassMedia::seek(float time) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "seek"); + + message.setValueReal("time", time); + + sendMessage(message); +} + +void LLPluginClassMedia::setLoop(bool loop) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "set_loop"); + + message.setValueBoolean("loop", loop); + + sendMessage(message); +} + +void LLPluginClassMedia::setVolume(float volume) +{ + if(volume != mRequestedVolume) + { + mRequestedVolume = volume; + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME, "set_volume"); + + message.setValueReal("volume", volume); + + sendMessage(message); + } +} + +float LLPluginClassMedia::getVolume() +{ + return mRequestedVolume; +} + +void LLPluginClassMedia::initializeUrlHistory(const LLSD& url_history) +{ + // Send URL history to plugin + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "init_history"); + message.setValueLLSD("history", url_history); + sendMessage(message); + + LL_DEBUGS("Plugin") << "Sending history" << LL_ENDL; +} + diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index cf8d8b26b9..015fb31252 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -1,416 +1,424 @@ -/** - * @file llpluginclassmedia.h - * @brief LLPluginClassMedia handles interaction with a plugin which knows about the "media" message class. - * - * @cond - * $LicenseInfo:firstyear=2008&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - * @endcond - */ - -#ifndef LL_LLPLUGINCLASSMEDIA_H -#define LL_LLPLUGINCLASSMEDIA_H - -#include "llgltypes.h" -#include "llpluginprocessparent.h" -#include "llrect.h" -#include "llpluginclassmediaowner.h" -#include -#include "v4color.h" - -class LLPluginClassMedia : public LLPluginProcessParentOwner -{ - LOG_CLASS(LLPluginClassMedia); -public: - LLPluginClassMedia(LLPluginClassMediaOwner *owner); - virtual ~LLPluginClassMedia(); - - // local initialization, called by the media manager when creating a source - virtual bool init(const std::string &launcher_filename, - const std::string &plugin_dir, - const std::string &plugin_filename, - bool debug); - - // undoes everything init() didm called by the media manager when destroying a source - virtual void reset(); - - void idle(void); - - // All of these may return 0 or an actual valid value. - // Callers need to check the return for 0, and not use the values in that case. - int getWidth() const { return (mMediaWidth > 0) ? mMediaWidth : 0; }; - int getHeight() const { return (mMediaHeight > 0) ? mMediaHeight : 0; }; - int getNaturalWidth() const { return mNaturalMediaWidth; }; - int getNaturalHeight() const { return mNaturalMediaHeight; }; - int getSetWidth() const { return mSetMediaWidth; }; - int getSetHeight() const { return mSetMediaHeight; }; - int getBitsWidth() const { return (mTextureWidth > 0) ? mTextureWidth : 0; }; - int getBitsHeight() const { return (mTextureHeight > 0) ? mTextureHeight : 0; }; - int getTextureWidth() const; - int getTextureHeight() const; - int getFullWidth() const { return mFullMediaWidth; }; - int getFullHeight() const { return mFullMediaHeight; }; - - // This may return NULL. Callers need to check for and handle this case. - unsigned char* getBitsData(); - - // gets the format details of the texture data - // These may return 0 if they haven't been set up yet. The caller needs to detect this case. - int getTextureDepth() const { return mRequestedTextureDepth; }; - int getTextureFormatInternal() const { return mRequestedTextureInternalFormat; }; - int getTextureFormatPrimary() const { return mRequestedTextureFormat; }; - int getTextureFormatType() const { return mRequestedTextureType; }; - bool getTextureFormatSwapBytes() const { return mRequestedTextureSwapBytes; }; - bool getTextureCoordsOpenGL() const { return mRequestedTextureCoordsOpenGL; }; - - void setSize(int width, int height); - void setAutoScale(bool auto_scale); - - void setBackgroundColor(LLColor4 color) { mBackgroundColor = color; }; - - void setOwner(LLPluginClassMediaOwner *owner) { mOwner = owner; }; - - // Returns true if all of the texture parameters (depth, format, size, and texture size) are set up and consistent. - // This will initially be false, and will also be false for some time after setSize while the resize is processed. - // Note that if this returns true, it is safe to use all the get() functions above without checking for invalid return values - // until you call idle() again. - bool textureValid(void); - - bool getDirty(LLRect *dirty_rect = NULL); - void resetDirty(void); - - typedef enum - { - MOUSE_EVENT_DOWN, - MOUSE_EVENT_UP, - MOUSE_EVENT_MOVE, - MOUSE_EVENT_DOUBLE_CLICK - }EMouseEventType; - - void mouseEvent(EMouseEventType type, int button, int x, int y, MASK modifiers); - - typedef enum - { - KEY_EVENT_DOWN, - KEY_EVENT_UP, - KEY_EVENT_REPEAT - }EKeyEventType; - - bool keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data); - - void scrollEvent(int x, int y, MASK modifiers); - - // Text may be unicode (utf8 encoded) - bool textInput(const std::string &text, MASK modifiers, LLSD native_key_data); - - void loadURI(const std::string &uri); - - // "Loading" means uninitialized or any state prior to fully running (processing commands) - bool isPluginLoading(void) { return mPlugin?mPlugin->isLoading():false; }; - - // "Running" means the steady state -- i.e. processing messages - bool isPluginRunning(void) { return mPlugin?mPlugin->isRunning():false; }; - - // "Exited" means any regular or error state after "Running" (plugin may have crashed or exited normally) - bool isPluginExited(void) { return mPlugin?mPlugin->isDone():false; }; - - std::string getPluginVersion() { return mPlugin?mPlugin->getPluginVersion():std::string(""); }; - - bool getDisableTimeout() { return mPlugin?mPlugin->getDisableTimeout():false; }; - void setDisableTimeout(bool disable) { if(mPlugin) mPlugin->setDisableTimeout(disable); }; - - // Inherited from LLPluginProcessParentOwner - /* virtual */ void receivePluginMessage(const LLPluginMessage &message); - /* virtual */ void pluginLaunchFailed(); - /* virtual */ void pluginDied(); - - - typedef enum - { - PRIORITY_UNLOADED, // media plugin isn't even loaded. - PRIORITY_STOPPED, // media is not playing, shouldn't need to update at all. - PRIORITY_HIDDEN, // media is not being displayed or is out of view, don't need to do graphic updates, but may still update audio, playhead, etc. - PRIORITY_SLIDESHOW, // media is in the far distance, updates very infrequently - PRIORITY_LOW, // media is in the distance, may be rendered at reduced size - PRIORITY_NORMAL, // normal (default) priority - PRIORITY_HIGH // media has user focus and/or is taking up most of the screen - }EPriority; - - static const char* priorityToString(EPriority priority); - void setPriority(EPriority priority); - void setLowPrioritySizeLimit(int size); - - F64 getCPUUsage(); - - void sendPickFileResponse(const std::string &file); - - void sendAuthResponse(bool ok, const std::string &username, const std::string &password); - - // Valid after a MEDIA_EVENT_CURSOR_CHANGED event - std::string getCursorName() const { return mCursorName; }; - - LLPluginClassMediaOwner::EMediaStatus getStatus() const { return mStatus; } - - void cut(); - bool canCut() const { return mCanCut; }; - - void copy(); - bool canCopy() const { return mCanCopy; }; - - void paste(); - bool canPaste() const { return mCanPaste; }; - - // These can be called before init(), and they will be queued and sent before the media init message. - void setUserDataPath(const std::string &user_data_path); - void setLanguageCode(const std::string &language_code); - void setPluginsEnabled(const bool enabled); - void setJavascriptEnabled(const bool enabled); - void setTarget(const std::string &target); - - /////////////////////////////////// - // media browser class functions - bool pluginSupportsMediaBrowser(void); - - void focus(bool focused); - void clear_cache(); - void clear_cookies(); - void set_cookies(const std::string &cookies); - void enable_cookies(bool enable); - void proxy_setup(bool enable, const std::string &host = LLStringUtil::null, int port = 0); - void browse_stop(); - void browse_reload(bool ignore_cache = false); - void browse_forward(); - void browse_back(); - void setBrowserUserAgent(const std::string& user_agent); - void proxyWindowOpened(const std::string &target, const std::string &uuid); - void proxyWindowClosed(const std::string &uuid); - void ignore_ssl_cert_errors(bool ignore); - void addCertificateFilePath(const std::string& path); - - // This is valid after MEDIA_EVENT_NAVIGATE_BEGIN or MEDIA_EVENT_NAVIGATE_COMPLETE - std::string getNavigateURI() const { return mNavigateURI; }; - - // These are valid after MEDIA_EVENT_NAVIGATE_COMPLETE - S32 getNavigateResultCode() const { return mNavigateResultCode; }; - std::string getNavigateResultString() const { return mNavigateResultString; }; - bool getHistoryBackAvailable() const { return mHistoryBackAvailable; }; - bool getHistoryForwardAvailable() const { return mHistoryForwardAvailable; }; - - // This is valid after MEDIA_EVENT_PROGRESS_UPDATED - int getProgressPercent() const { return mProgressPercent; }; - - // This is valid after MEDIA_EVENT_STATUS_TEXT_CHANGED - std::string getStatusText() const { return mStatusText; }; - - // This is valid after MEDIA_EVENT_LOCATION_CHANGED - std::string getLocation() const { return mLocation; }; - - // This is valid after MEDIA_EVENT_CLICK_LINK_HREF or MEDIA_EVENT_CLICK_LINK_NOFOLLOW - std::string getClickURL() const { return mClickURL; }; - - // This is valid after MEDIA_EVENT_CLICK_LINK_NOFOLLOW - std::string getClickNavType() const { return mClickNavType; }; - - // This is valid after MEDIA_EVENT_CLICK_LINK_HREF - std::string getClickTarget() const { return mClickTarget; }; - - // This is valid during MEDIA_EVENT_CLICK_LINK_HREF and MEDIA_EVENT_GEOMETRY_CHANGE - std::string getClickUUID() const { return mClickUUID; }; - - // This is valid after MEDIA_EVENT_NAVIGATE_ERROR_PAGE - S32 getStatusCode() const { return mStatusCode; }; - - // These are valid during MEDIA_EVENT_GEOMETRY_CHANGE - S32 getGeometryX() const { return mGeometryX; }; - S32 getGeometryY() const { return mGeometryY; }; - S32 getGeometryWidth() const { return mGeometryWidth; }; - S32 getGeometryHeight() const { return mGeometryHeight; }; - - // These are valid during MEDIA_EVENT_AUTH_REQUEST - std::string getAuthURL() const { return mAuthURL; }; - std::string getAuthRealm() const { return mAuthRealm; }; - - // These are valid during MEDIA_EVENT_LINK_HOVERED - std::string getHoverText() const { return mHoverText; }; - std::string getHoverLink() const { return mHoverLink; }; - - std::string getMediaName() const { return mMediaName; }; - std::string getMediaDescription() const { return mMediaDescription; }; - - // Crash the plugin. If you use this outside of a testbed, you will be punished. - void crashPlugin(); - - // Hang the plugin. If you use this outside of a testbed, you will be punished. - void hangPlugin(); - - /////////////////////////////////// - // media time class functions - bool pluginSupportsMediaTime(void); - void stop(); - void start(float rate = 0.0f); - void pause(); - void seek(float time); - void setLoop(bool loop); - void setVolume(float volume); - float getVolume(); - - F64 getCurrentTime(void) const { return mCurrentTime; }; - F64 getDuration(void) const { return mDuration; }; - F64 getCurrentPlayRate(void) { return mCurrentRate; }; - F64 getLoadedDuration(void) const { return mLoadedDuration; }; - - // Initialize the URL history of the plugin by sending - // "init_history" message - void initializeUrlHistory(const LLSD& url_history); - -protected: - - LLPluginClassMediaOwner *mOwner; - - // Notify this object's owner that an event has occurred. - void mediaEvent(LLPluginClassMediaOwner::EMediaEvent event); - - void sendMessage(const LLPluginMessage &message); // Send message internally, either queueing or sending directly. - std::queue mSendQueue; // Used to queue messages while the plugin initializes. - - void setSizeInternal(void); - - bool mTextureParamsReceived; // the mRequestedTexture* fields are only valid when this is true - S32 mRequestedTextureDepth; - LLGLenum mRequestedTextureInternalFormat; - LLGLenum mRequestedTextureFormat; - LLGLenum mRequestedTextureType; - bool mRequestedTextureSwapBytes; - bool mRequestedTextureCoordsOpenGL; - - std::string mTextureSharedMemoryName; - size_t mTextureSharedMemorySize; - - // True to scale requested media up to the full size of the texture (i.e. next power of two) - bool mAutoScaleMedia; - - // default media size for the plugin, from the texture_params message. - int mDefaultMediaWidth; - int mDefaultMediaHeight; - - // Size that has been requested by the plugin itself - int mNaturalMediaWidth; - int mNaturalMediaHeight; - - // Size that has been requested with setSize() - int mSetMediaWidth; - int mSetMediaHeight; - - // Full calculated media size (before auto-scale and downsample calculations) - int mFullMediaWidth; - int mFullMediaHeight; - - // Actual media size being set (after auto-scale) - int mRequestedMediaWidth; - int mRequestedMediaHeight; - - // Texture size calculated from actual media size - int mRequestedTextureWidth; - int mRequestedTextureHeight; - - // Size that the plugin has acknowledged - int mTextureWidth; - int mTextureHeight; - int mMediaWidth; - int mMediaHeight; - - float mRequestedVolume; - - // Priority of this media stream - EPriority mPriority; - int mLowPrioritySizeLimit; - - bool mAllowDownsample; - int mPadding; - - - LLPluginProcessParent *mPlugin; - - LLRect mDirtyRect; - - std::string translateModifiers(MASK modifiers); - - std::string mCursorName; - int mLastMouseX; - int mLastMouseY; - - LLPluginClassMediaOwner::EMediaStatus mStatus; - - F64 mSleepTime; - - bool mCanCut; - bool mCanCopy; - bool mCanPaste; - - std::string mMediaName; - std::string mMediaDescription; - - LLColor4 mBackgroundColor; - - std::string mTarget; - - ///////////////////////////////////////// - // media_browser class - std::string mNavigateURI; - S32 mNavigateResultCode; - std::string mNavigateResultString; - bool mHistoryBackAvailable; - bool mHistoryForwardAvailable; - std::string mStatusText; - int mProgressPercent; - std::string mLocation; - std::string mClickURL; - std::string mClickNavType; - std::string mClickTarget; - std::string mClickUUID; - S32 mGeometryX; - S32 mGeometryY; - S32 mGeometryWidth; - S32 mGeometryHeight; - S32 mStatusCode; - std::string mAuthURL; - std::string mAuthRealm; - std::string mHoverText; - std::string mHoverLink; - - ///////////////////////////////////////// - // media_time class - F64 mCurrentTime; - F64 mDuration; - F64 mCurrentRate; - F64 mLoadedDuration; - -//-------------------------------------- - //debug use only - // -private: - bool mDeleteOK ; -public: - void setDeleteOK(bool flag) { mDeleteOK = flag ;} -//-------------------------------------- -}; - -#endif // LL_LLPLUGINCLASSMEDIA_H +/** + * @file llpluginclassmedia.h + * @brief LLPluginClassMedia handles interaction with a plugin which knows about the "media" message class. + * + * @cond + * $LicenseInfo:firstyear=2008&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + * @endcond + */ + +#ifndef LL_LLPLUGINCLASSMEDIA_H +#define LL_LLPLUGINCLASSMEDIA_H + +#include "llgltypes.h" +#include "llpluginprocessparent.h" +#include "llrect.h" +#include "llpluginclassmediaowner.h" +#include +#include "v4color.h" + +class LLPluginClassMedia : public LLPluginProcessParentOwner +{ + LOG_CLASS(LLPluginClassMedia); +public: + LLPluginClassMedia(LLPluginClassMediaOwner *owner); + virtual ~LLPluginClassMedia(); + + // local initialization, called by the media manager when creating a source + virtual bool init(const std::string &launcher_filename, + const std::string &plugin_dir, + const std::string &plugin_filename, + bool debug); + + // undoes everything init() didm called by the media manager when destroying a source + virtual void reset(); + + void idle(void); + + // All of these may return 0 or an actual valid value. + // Callers need to check the return for 0, and not use the values in that case. + int getWidth() const { return (mMediaWidth > 0) ? mMediaWidth : 0; }; + int getHeight() const { return (mMediaHeight > 0) ? mMediaHeight : 0; }; + int getNaturalWidth() const { return mNaturalMediaWidth; }; + int getNaturalHeight() const { return mNaturalMediaHeight; }; + int getSetWidth() const { return mSetMediaWidth; }; + int getSetHeight() const { return mSetMediaHeight; }; + int getBitsWidth() const { return (mTextureWidth > 0) ? mTextureWidth : 0; }; + int getBitsHeight() const { return (mTextureHeight > 0) ? mTextureHeight : 0; }; + int getTextureWidth() const; + int getTextureHeight() const; + int getFullWidth() const { return mFullMediaWidth; }; + int getFullHeight() const { return mFullMediaHeight; }; + + // This may return NULL. Callers need to check for and handle this case. + unsigned char* getBitsData(); + + // gets the format details of the texture data + // These may return 0 if they haven't been set up yet. The caller needs to detect this case. + int getTextureDepth() const { return mRequestedTextureDepth; }; + int getTextureFormatInternal() const { return mRequestedTextureInternalFormat; }; + int getTextureFormatPrimary() const { return mRequestedTextureFormat; }; + int getTextureFormatType() const { return mRequestedTextureType; }; + bool getTextureFormatSwapBytes() const { return mRequestedTextureSwapBytes; }; + bool getTextureCoordsOpenGL() const { return mRequestedTextureCoordsOpenGL; }; + + void setSize(int width, int height); + void setAutoScale(bool auto_scale); + + void setBackgroundColor(LLColor4 color) { mBackgroundColor = color; }; + + void setOwner(LLPluginClassMediaOwner *owner) { mOwner = owner; }; + + // Returns true if all of the texture parameters (depth, format, size, and texture size) are set up and consistent. + // This will initially be false, and will also be false for some time after setSize while the resize is processed. + // Note that if this returns true, it is safe to use all the get() functions above without checking for invalid return values + // until you call idle() again. + bool textureValid(void); + + bool getDirty(LLRect *dirty_rect = NULL); + void resetDirty(void); + + typedef enum + { + MOUSE_EVENT_DOWN, + MOUSE_EVENT_UP, + MOUSE_EVENT_MOVE, + MOUSE_EVENT_DOUBLE_CLICK + }EMouseEventType; + + void mouseEvent(EMouseEventType type, int button, int x, int y, MASK modifiers); + + typedef enum + { + KEY_EVENT_DOWN, + KEY_EVENT_UP, + KEY_EVENT_REPEAT + }EKeyEventType; + + bool keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data); + + void scrollEvent(int x, int y, MASK modifiers); + + // Javascript <-> viewer events + void jsExposeObjectEvent( bool expose ); + void jsValuesValidEvent( bool valid ); + void jsAgentLocationEvent( double x, double y, double z ); + void jsAgentLanguageEvent( const std::string& language ); + void jsAgentRegionEvent( const std::string& region_name ); + void jsAgentMaturityEvent( const std::string& maturity ); + + // Text may be unicode (utf8 encoded) + bool textInput(const std::string &text, MASK modifiers, LLSD native_key_data); + + void loadURI(const std::string &uri); + + // "Loading" means uninitialized or any state prior to fully running (processing commands) + bool isPluginLoading(void) { return mPlugin?mPlugin->isLoading():false; }; + + // "Running" means the steady state -- i.e. processing messages + bool isPluginRunning(void) { return mPlugin?mPlugin->isRunning():false; }; + + // "Exited" means any regular or error state after "Running" (plugin may have crashed or exited normally) + bool isPluginExited(void) { return mPlugin?mPlugin->isDone():false; }; + + std::string getPluginVersion() { return mPlugin?mPlugin->getPluginVersion():std::string(""); }; + + bool getDisableTimeout() { return mPlugin?mPlugin->getDisableTimeout():false; }; + void setDisableTimeout(bool disable) { if(mPlugin) mPlugin->setDisableTimeout(disable); }; + + // Inherited from LLPluginProcessParentOwner + /* virtual */ void receivePluginMessage(const LLPluginMessage &message); + /* virtual */ void pluginLaunchFailed(); + /* virtual */ void pluginDied(); + + + typedef enum + { + PRIORITY_UNLOADED, // media plugin isn't even loaded. + PRIORITY_STOPPED, // media is not playing, shouldn't need to update at all. + PRIORITY_HIDDEN, // media is not being displayed or is out of view, don't need to do graphic updates, but may still update audio, playhead, etc. + PRIORITY_SLIDESHOW, // media is in the far distance, updates very infrequently + PRIORITY_LOW, // media is in the distance, may be rendered at reduced size + PRIORITY_NORMAL, // normal (default) priority + PRIORITY_HIGH // media has user focus and/or is taking up most of the screen + }EPriority; + + static const char* priorityToString(EPriority priority); + void setPriority(EPriority priority); + void setLowPrioritySizeLimit(int size); + + F64 getCPUUsage(); + + void sendPickFileResponse(const std::string &file); + + void sendAuthResponse(bool ok, const std::string &username, const std::string &password); + + // Valid after a MEDIA_EVENT_CURSOR_CHANGED event + std::string getCursorName() const { return mCursorName; }; + + LLPluginClassMediaOwner::EMediaStatus getStatus() const { return mStatus; } + + void cut(); + bool canCut() const { return mCanCut; }; + + void copy(); + bool canCopy() const { return mCanCopy; }; + + void paste(); + bool canPaste() const { return mCanPaste; }; + + // These can be called before init(), and they will be queued and sent before the media init message. + void setUserDataPath(const std::string &user_data_path); + void setLanguageCode(const std::string &language_code); + void setPluginsEnabled(const bool enabled); + void setJavascriptEnabled(const bool enabled); + void setTarget(const std::string &target); + + /////////////////////////////////// + // media browser class functions + bool pluginSupportsMediaBrowser(void); + + void focus(bool focused); + void clear_cache(); + void clear_cookies(); + void set_cookies(const std::string &cookies); + void enable_cookies(bool enable); + void proxy_setup(bool enable, const std::string &host = LLStringUtil::null, int port = 0); + void browse_stop(); + void browse_reload(bool ignore_cache = false); + void browse_forward(); + void browse_back(); + void setBrowserUserAgent(const std::string& user_agent); + void proxyWindowOpened(const std::string &target, const std::string &uuid); + void proxyWindowClosed(const std::string &uuid); + void ignore_ssl_cert_errors(bool ignore); + void addCertificateFilePath(const std::string& path); + + // This is valid after MEDIA_EVENT_NAVIGATE_BEGIN or MEDIA_EVENT_NAVIGATE_COMPLETE + std::string getNavigateURI() const { return mNavigateURI; }; + + // These are valid after MEDIA_EVENT_NAVIGATE_COMPLETE + S32 getNavigateResultCode() const { return mNavigateResultCode; }; + std::string getNavigateResultString() const { return mNavigateResultString; }; + bool getHistoryBackAvailable() const { return mHistoryBackAvailable; }; + bool getHistoryForwardAvailable() const { return mHistoryForwardAvailable; }; + + // This is valid after MEDIA_EVENT_PROGRESS_UPDATED + int getProgressPercent() const { return mProgressPercent; }; + + // This is valid after MEDIA_EVENT_STATUS_TEXT_CHANGED + std::string getStatusText() const { return mStatusText; }; + + // This is valid after MEDIA_EVENT_LOCATION_CHANGED + std::string getLocation() const { return mLocation; }; + + // This is valid after MEDIA_EVENT_CLICK_LINK_HREF or MEDIA_EVENT_CLICK_LINK_NOFOLLOW + std::string getClickURL() const { return mClickURL; }; + + // This is valid after MEDIA_EVENT_CLICK_LINK_NOFOLLOW + std::string getClickNavType() const { return mClickNavType; }; + + // This is valid after MEDIA_EVENT_CLICK_LINK_HREF + std::string getClickTarget() const { return mClickTarget; }; + + // This is valid during MEDIA_EVENT_CLICK_LINK_HREF and MEDIA_EVENT_GEOMETRY_CHANGE + std::string getClickUUID() const { return mClickUUID; }; + + // This is valid after MEDIA_EVENT_NAVIGATE_ERROR_PAGE + S32 getStatusCode() const { return mStatusCode; }; + + // These are valid during MEDIA_EVENT_GEOMETRY_CHANGE + S32 getGeometryX() const { return mGeometryX; }; + S32 getGeometryY() const { return mGeometryY; }; + S32 getGeometryWidth() const { return mGeometryWidth; }; + S32 getGeometryHeight() const { return mGeometryHeight; }; + + // These are valid during MEDIA_EVENT_AUTH_REQUEST + std::string getAuthURL() const { return mAuthURL; }; + std::string getAuthRealm() const { return mAuthRealm; }; + + // These are valid during MEDIA_EVENT_LINK_HOVERED + std::string getHoverText() const { return mHoverText; }; + std::string getHoverLink() const { return mHoverLink; }; + + std::string getMediaName() const { return mMediaName; }; + std::string getMediaDescription() const { return mMediaDescription; }; + + // Crash the plugin. If you use this outside of a testbed, you will be punished. + void crashPlugin(); + + // Hang the plugin. If you use this outside of a testbed, you will be punished. + void hangPlugin(); + + /////////////////////////////////// + // media time class functions + bool pluginSupportsMediaTime(void); + void stop(); + void start(float rate = 0.0f); + void pause(); + void seek(float time); + void setLoop(bool loop); + void setVolume(float volume); + float getVolume(); + + F64 getCurrentTime(void) const { return mCurrentTime; }; + F64 getDuration(void) const { return mDuration; }; + F64 getCurrentPlayRate(void) { return mCurrentRate; }; + F64 getLoadedDuration(void) const { return mLoadedDuration; }; + + // Initialize the URL history of the plugin by sending + // "init_history" message + void initializeUrlHistory(const LLSD& url_history); + +protected: + + LLPluginClassMediaOwner *mOwner; + + // Notify this object's owner that an event has occurred. + void mediaEvent(LLPluginClassMediaOwner::EMediaEvent event); + + void sendMessage(const LLPluginMessage &message); // Send message internally, either queueing or sending directly. + std::queue mSendQueue; // Used to queue messages while the plugin initializes. + + void setSizeInternal(void); + + bool mTextureParamsReceived; // the mRequestedTexture* fields are only valid when this is true + S32 mRequestedTextureDepth; + LLGLenum mRequestedTextureInternalFormat; + LLGLenum mRequestedTextureFormat; + LLGLenum mRequestedTextureType; + bool mRequestedTextureSwapBytes; + bool mRequestedTextureCoordsOpenGL; + + std::string mTextureSharedMemoryName; + size_t mTextureSharedMemorySize; + + // True to scale requested media up to the full size of the texture (i.e. next power of two) + bool mAutoScaleMedia; + + // default media size for the plugin, from the texture_params message. + int mDefaultMediaWidth; + int mDefaultMediaHeight; + + // Size that has been requested by the plugin itself + int mNaturalMediaWidth; + int mNaturalMediaHeight; + + // Size that has been requested with setSize() + int mSetMediaWidth; + int mSetMediaHeight; + + // Full calculated media size (before auto-scale and downsample calculations) + int mFullMediaWidth; + int mFullMediaHeight; + + // Actual media size being set (after auto-scale) + int mRequestedMediaWidth; + int mRequestedMediaHeight; + + // Texture size calculated from actual media size + int mRequestedTextureWidth; + int mRequestedTextureHeight; + + // Size that the plugin has acknowledged + int mTextureWidth; + int mTextureHeight; + int mMediaWidth; + int mMediaHeight; + + float mRequestedVolume; + + // Priority of this media stream + EPriority mPriority; + int mLowPrioritySizeLimit; + + bool mAllowDownsample; + int mPadding; + + + LLPluginProcessParent *mPlugin; + + LLRect mDirtyRect; + + std::string translateModifiers(MASK modifiers); + + std::string mCursorName; + int mLastMouseX; + int mLastMouseY; + + LLPluginClassMediaOwner::EMediaStatus mStatus; + + F64 mSleepTime; + + bool mCanCut; + bool mCanCopy; + bool mCanPaste; + + std::string mMediaName; + std::string mMediaDescription; + + LLColor4 mBackgroundColor; + + std::string mTarget; + + ///////////////////////////////////////// + // media_browser class + std::string mNavigateURI; + S32 mNavigateResultCode; + std::string mNavigateResultString; + bool mHistoryBackAvailable; + bool mHistoryForwardAvailable; + std::string mStatusText; + int mProgressPercent; + std::string mLocation; + std::string mClickURL; + std::string mClickNavType; + std::string mClickTarget; + std::string mClickUUID; + S32 mGeometryX; + S32 mGeometryY; + S32 mGeometryWidth; + S32 mGeometryHeight; + S32 mStatusCode; + std::string mAuthURL; + std::string mAuthRealm; + std::string mHoverText; + std::string mHoverLink; + + ///////////////////////////////////////// + // media_time class + F64 mCurrentTime; + F64 mDuration; + F64 mCurrentRate; + F64 mLoadedDuration; + +//-------------------------------------- + //debug use only + // +private: + bool mDeleteOK ; +public: + void setDeleteOK(bool flag) { mDeleteOK = flag ;} +//-------------------------------------- +}; + +#endif // LL_LLPLUGINCLASSMEDIA_H diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 9ba8edbb59..b22dbc6604 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -1168,6 +1168,56 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) authResponse(message_in); } else + if(message_name == "js_expose_object") + { + bool expose_object = message_in.getValueBoolean( "expose" ); +#if LLQTWEBKIT_API_VERSION >= 9 + LLQtWebKit::getInstance()->setExposeObject( expose_object ); +#endif + } + else + if(message_name == "js_values_valid") + { + bool valid = message_in.getValueBoolean( "valid" ); +#if LLQTWEBKIT_API_VERSION >= 9 + LLQtWebKit::getInstance()->setValuesValid( valid ); +#endif + } + else + if(message_name == "js_agent_location") + { + F32 x = message_in.getValueReal("x"); + F32 y = message_in.getValueReal("y"); + F32 z = message_in.getValueReal("z"); +#if LLQTWEBKIT_API_VERSION >= 9 + LLQtWebKit::getInstance()->setAgentLocation( x, y, z ); +#endif + } + else + if(message_name == "js_agent_language") + { + const std::string& language = message_in.getValue("language"); +#if LLQTWEBKIT_API_VERSION >= 9 + LLQtWebKit::getInstance()->setAgentLanguage( language ); +#endif + } + else + if(message_name == "js_agent_region") + { + const std::string& region = message_in.getValue("region"); +#if LLQTWEBKIT_API_VERSION >= 9 + LLQtWebKit::getInstance()->setAgentRegion( region ); +#endif + } + else + if(message_name == "js_agent_maturity") + { + const std::string& maturity = message_in.getValue("maturity"); +#if LLQTWEBKIT_API_VERSION >= 9 + LLQtWebKit::getInstance()->setAgentMaturity( maturity ); +#endif + } + else { // std::cerr << "MediaPluginWebKit::receiveMessage: unknown media message: " << message_string << std::endl; } @@ -1324,4 +1374,3 @@ int init_media_plugin(LLPluginInstance::sendMessageFunction host_send_func, void return 0; } - diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index e6c2dc4413..8ecfccf727 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -708,6 +708,17 @@ Value 0 + BrowserEnableJSObject + + Comment + Enable or disable the viewer to Javascript bridge object. + Persist + 1 + Type + Boolean + Value + 0 + BlockAvatarAppearanceMessages Comment diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 037e22584f..62ae7ac6e2 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1,3692 +1,3742 @@ -/** - * @file llviewermedia.cpp - * @brief Client interface to the media engine - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llagent.h" -#include "llagentcamera.h" -#include "llviewermedia.h" -#include "llviewermediafocus.h" -#include "llmimetypes.h" -#include "llmediaentry.h" -#include "llversioninfo.h" -#include "llviewercontrol.h" -#include "llviewertexture.h" -#include "llviewerparcelmedia.h" -#include "llviewerparcelmgr.h" -#include "llviewertexturelist.h" -#include "llvovolume.h" -#include "llpluginclassmedia.h" -#include "llplugincookiestore.h" -#include "llviewerwindow.h" -#include "llfocusmgr.h" -#include "llcallbacklist.h" -#include "llparcel.h" -#include "llaudioengine.h" // for gAudiop -#include "llurldispatcher.h" -#include "llvoavatar.h" -#include "llvoavatarself.h" -#include "llviewerregion.h" -#include "llwebsharing.h" // For LLWebSharing::setOpenIDCookie(), *TODO: find a better way to do this! -#include "llfilepicker.h" -#include "llnotifications.h" -#include "lldir.h" -#include "llevent.h" // LLSimpleListener -#include "llnotificationsutil.h" -#include "lluuid.h" -#include "llkeyboard.h" -#include "llmutelist.h" -#include "llpanelprofile.h" -#include "llappviewer.h" -//#include "llfirstuse.h" -#include "llwindow.h" - -#include "llfloatermediabrowser.h" // for handling window close requests and geometry change requests in media browser windows. -#include "llfloaterwebcontent.h" // for handling window close requests and geometry change requests in media browser windows. - -#include // for SkinFolder listener -#include - -/*static*/ const char* LLViewerMedia::AUTO_PLAY_MEDIA_SETTING = "ParcelMediaAutoPlayEnable"; -/*static*/ const char* LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING = "MediaShowOnOthers"; -/*static*/ const char* LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING = "MediaShowWithinParcel"; -/*static*/ const char* LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING = "MediaShowOutsideParcel"; - - -// Move this to its own file. - -LLViewerMediaEventEmitter::~LLViewerMediaEventEmitter() -{ - observerListType::iterator iter = mObservers.begin(); - - while( iter != mObservers.end() ) - { - LLViewerMediaObserver *self = *iter; - iter++; - remObserver(self); - } -} - -/////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaEventEmitter::addObserver( LLViewerMediaObserver* observer ) -{ - if ( ! observer ) - return false; - - if ( std::find( mObservers.begin(), mObservers.end(), observer ) != mObservers.end() ) - return false; - - mObservers.push_back( observer ); - observer->mEmitters.push_back( this ); - - return true; -} - -/////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaEventEmitter::remObserver( LLViewerMediaObserver* observer ) -{ - if ( ! observer ) - return false; - - mObservers.remove( observer ); - observer->mEmitters.remove(this); - - return true; -} - -/////////////////////////////////////////////////////////////////////////////// -// -void LLViewerMediaEventEmitter::emitEvent( LLPluginClassMedia* media, LLViewerMediaObserver::EMediaEvent event ) -{ - // Broadcast the event to any observers. - observerListType::iterator iter = mObservers.begin(); - while( iter != mObservers.end() ) - { - LLViewerMediaObserver *self = *iter; - ++iter; - self->handleMediaEvent( media, event ); - } -} - -// Move this to its own file. -LLViewerMediaObserver::~LLViewerMediaObserver() -{ - std::list::iterator iter = mEmitters.begin(); - - while( iter != mEmitters.end() ) - { - LLViewerMediaEventEmitter *self = *iter; - iter++; - self->remObserver( this ); - } -} - - -// Move this to its own file. -// helper class that tries to download a URL from a web site and calls a method -// on the Panel Land Media and to discover the MIME type -class LLMimeDiscoveryResponder : public LLHTTPClient::Responder -{ -LOG_CLASS(LLMimeDiscoveryResponder); -public: - LLMimeDiscoveryResponder( viewer_media_t media_impl) - : mMediaImpl(media_impl), - mInitialized(false) - { - if(mMediaImpl->mMimeTypeProbe != NULL) - { - llerrs << "impl already has an outstanding responder" << llendl; - } - - mMediaImpl->mMimeTypeProbe = this; - } - - ~LLMimeDiscoveryResponder() - { - disconnectOwner(); - } - - virtual void completedHeader(U32 status, const std::string& reason, const LLSD& content) - { - std::string media_type = content["content-type"].asString(); - std::string::size_type idx1 = media_type.find_first_of(";"); - std::string mime_type = media_type.substr(0, idx1); - - lldebugs << "status is " << status << ", media type \"" << media_type << "\"" << llendl; - - // 2xx status codes indicate success. - // Most 4xx status codes are successful enough for our purposes. - // 499 is the error code for host not found, timeout, etc. - // 500 means "Internal Server error" but we decided it's okay to - // accept this and go past it in the MIME type probe - // 302 means the resource can be found temporarily in a different place - added this for join.secondlife.com - // 499 is a code specifc to join.secondlife.com (????) apparently safe to ignore -// if( ((status >= 200) && (status < 300)) || -// ((status >= 400) && (status < 499)) || -// (status == 500) || -// (status == 302) || -// (status == 499) -// ) - // We now no longer check the error code returned from the probe. - // If we have a mime type, use it. If not, default to the web plugin and let it handle error reporting. - if(1) - { - // The probe was successful. - if(mime_type.empty()) - { - // Some sites don't return any content-type header at all. - // Treat an empty mime type as text/html. - mime_type = "text/html"; - } - - completeAny(status, mime_type); - } - else - { - llwarns << "responder failed with status " << status << ", reason " << reason << llendl; - - if(mMediaImpl) - { - mMediaImpl->mMediaSourceFailed = true; - } - } - - } - - void completeAny(U32 status, const std::string& mime_type) - { - // the call to initializeMedia may disconnect the responder, which will clear mMediaImpl. - // Make a local copy so we can call loadURI() afterwards. - LLViewerMediaImpl *impl = mMediaImpl; - - if(impl && !mInitialized && ! mime_type.empty()) - { - if(impl->initializeMedia(mime_type)) - { - mInitialized = true; - impl->loadURI(); - disconnectOwner(); - } - } - } - - void cancelRequest() - { - disconnectOwner(); - } - -private: - void disconnectOwner() - { - if(mMediaImpl) - { - if(mMediaImpl->mMimeTypeProbe != this) - { - llerrs << "internal error: mMediaImpl->mMimeTypeProbe != this" << llendl; - } - - mMediaImpl->mMimeTypeProbe = NULL; - } - mMediaImpl = NULL; - } - - -public: - LLViewerMediaImpl *mMediaImpl; - bool mInitialized; -}; - -class LLViewerMediaOpenIDResponder : public LLHTTPClient::Responder -{ -LOG_CLASS(LLViewerMediaOpenIDResponder); -public: - LLViewerMediaOpenIDResponder( ) - { - } - - ~LLViewerMediaOpenIDResponder() - { - } - - /* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content) - { - LL_DEBUGS("MediaAuth") << "status = " << status << ", reason = " << reason << LL_ENDL; - LL_DEBUGS("MediaAuth") << content << LL_ENDL; - std::string cookie = content["set-cookie"].asString(); - - LLViewerMedia::openIDCookieResponse(cookie); - } - - /* virtual */ void completedRaw( - U32 status, - const std::string& reason, - const LLChannelDescriptors& channels, - const LLIOPipe::buffer_ptr_t& buffer) - { - // This is just here to disable the default behavior (attempting to parse the response as llsd). - // We don't care about the content of the response, only the set-cookie header. - } - -}; - -class LLViewerMediaWebProfileResponder : public LLHTTPClient::Responder -{ -LOG_CLASS(LLViewerMediaWebProfileResponder); -public: - LLViewerMediaWebProfileResponder(std::string host) - { - mHost = host; - } - - ~LLViewerMediaWebProfileResponder() - { - } - - /* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content) - { - LL_WARNS("MediaAuth") << "status = " << status << ", reason = " << reason << LL_ENDL; - LL_WARNS("MediaAuth") << content << LL_ENDL; - - std::string cookie = content["set-cookie"].asString(); - - LLViewerMedia::getCookieStore()->setCookiesFromHost(cookie, mHost); - } - - void completedRaw( - U32 status, - const std::string& reason, - const LLChannelDescriptors& channels, - const LLIOPipe::buffer_ptr_t& buffer) - { - // This is just here to disable the default behavior (attempting to parse the response as llsd). - // We don't care about the content of the response, only the set-cookie header. - } - - std::string mHost; -}; - - -LLPluginCookieStore *LLViewerMedia::sCookieStore = NULL; -LLURL LLViewerMedia::sOpenIDURL; -std::string LLViewerMedia::sOpenIDCookie; -LLPluginClassMedia* LLViewerMedia::sSpareBrowserMediaSource = NULL; -static LLViewerMedia::impl_list sViewerMediaImplList; -static LLViewerMedia::impl_id_map sViewerMediaTextureIDMap; -static LLTimer sMediaCreateTimer; -static const F32 LLVIEWERMEDIA_CREATE_DELAY = 1.0f; -static F32 sGlobalVolume = 1.0f; -static F64 sLowestLoadableImplInterest = 0.0f; -static bool sAnyMediaShowing = false; -static boost::signals2::connection sTeleportFinishConnection; -static std::string sUpdatedCookies; -static const char *PLUGIN_COOKIE_FILE_NAME = "plugin_cookies.txt"; - -////////////////////////////////////////////////////////////////////////////////////////// -static void add_media_impl(LLViewerMediaImpl* media) -{ - sViewerMediaImplList.push_back(media); -} - -////////////////////////////////////////////////////////////////////////////////////////// -static void remove_media_impl(LLViewerMediaImpl* media) -{ - LLViewerMedia::impl_list::iterator iter = sViewerMediaImplList.begin(); - LLViewerMedia::impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end; iter++) - { - if(media == *iter) - { - sViewerMediaImplList.erase(iter); - return; - } - } -} - -class LLViewerMediaMuteListObserver : public LLMuteListObserver -{ - /* virtual */ void onChange() { LLViewerMedia::muteListChanged();} -}; - -static LLViewerMediaMuteListObserver sViewerMediaMuteListObserver; -static bool sViewerMediaMuteListObserverInitialized = false; -static bool sInWorldMediaDisabled = false; - - -////////////////////////////////////////////////////////////////////////////////////////// -// LLViewerMedia - -////////////////////////////////////////////////////////////////////////////////////////// -// static -viewer_media_t LLViewerMedia::newMediaImpl( - const LLUUID& texture_id, - S32 media_width, - S32 media_height, - U8 media_auto_scale, - U8 media_loop) -{ - LLViewerMediaImpl* media_impl = getMediaImplFromTextureID(texture_id); - if(media_impl == NULL || texture_id.isNull()) - { - // Create the media impl - media_impl = new LLViewerMediaImpl(texture_id, media_width, media_height, media_auto_scale, media_loop); - } - else - { - media_impl->unload(); - media_impl->setTextureID(texture_id); - media_impl->mMediaWidth = media_width; - media_impl->mMediaHeight = media_height; - media_impl->mMediaAutoScale = media_auto_scale; - media_impl->mMediaLoop = media_loop; - } - - return media_impl; -} - -viewer_media_t LLViewerMedia::updateMediaImpl(LLMediaEntry* media_entry, const std::string& previous_url, bool update_from_self) -{ - // Try to find media with the same media ID - viewer_media_t media_impl = getMediaImplFromTextureID(media_entry->getMediaID()); - - lldebugs << "called, current URL is \"" << media_entry->getCurrentURL() - << "\", previous URL is \"" << previous_url - << "\", update_from_self is " << (update_from_self?"true":"false") - << llendl; - - bool was_loaded = false; - bool needs_navigate = false; - - if(media_impl) - { - was_loaded = media_impl->hasMedia(); - - media_impl->setHomeURL(media_entry->getHomeURL()); - - media_impl->mMediaAutoScale = media_entry->getAutoScale(); - media_impl->mMediaLoop = media_entry->getAutoLoop(); - media_impl->mMediaWidth = media_entry->getWidthPixels(); - media_impl->mMediaHeight = media_entry->getHeightPixels(); - media_impl->mMediaAutoPlay = media_entry->getAutoPlay(); - media_impl->mMediaEntryURL = media_entry->getCurrentURL(); - if (media_impl->mMediaSource) - { - media_impl->mMediaSource->setAutoScale(media_impl->mMediaAutoScale); - media_impl->mMediaSource->setLoop(media_impl->mMediaLoop); - media_impl->mMediaSource->setSize(media_entry->getWidthPixels(), media_entry->getHeightPixels()); - } - - bool url_changed = (media_impl->mMediaEntryURL != previous_url); - if(media_impl->mMediaEntryURL.empty()) - { - if(url_changed) - { - // The current media URL is now empty. Unload the media source. - media_impl->unload(); - - lldebugs << "Unloading media instance (new current URL is empty)." << llendl; - } - } - else - { - // The current media URL is not empty. - // If (the media was already loaded OR the media was set to autoplay) AND this update didn't come from this agent, - // do a navigate. - bool auto_play = media_impl->isAutoPlayable(); - if((was_loaded || auto_play) && !update_from_self) - { - needs_navigate = url_changed; - } - - lldebugs << "was_loaded is " << (was_loaded?"true":"false") - << ", auto_play is " << (auto_play?"true":"false") - << ", needs_navigate is " << (needs_navigate?"true":"false") << llendl; - } - } - else - { - media_impl = newMediaImpl( - media_entry->getMediaID(), - media_entry->getWidthPixels(), - media_entry->getHeightPixels(), - media_entry->getAutoScale(), - media_entry->getAutoLoop()); - - media_impl->setHomeURL(media_entry->getHomeURL()); - media_impl->mMediaAutoPlay = media_entry->getAutoPlay(); - media_impl->mMediaEntryURL = media_entry->getCurrentURL(); - if(media_impl->isAutoPlayable()) - { - needs_navigate = true; - } - } - - if(media_impl) - { - if(needs_navigate) - { - media_impl->navigateTo(media_impl->mMediaEntryURL, "", true, true); - lldebugs << "navigating to URL " << media_impl->mMediaEntryURL << llendl; - } - else if(!media_impl->mMediaURL.empty() && (media_impl->mMediaURL != media_impl->mMediaEntryURL)) - { - // If we already have a non-empty media URL set and we aren't doing a navigate, update the media URL to match the media entry. - media_impl->mMediaURL = media_impl->mMediaEntryURL; - - // If this causes a navigate at some point (such as after a reload), it should be considered server-driven so it isn't broadcast. - media_impl->mNavigateServerRequest = true; - - lldebugs << "updating URL in the media impl to " << media_impl->mMediaEntryURL << llendl; - } - } - - return media_impl; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -LLViewerMediaImpl* LLViewerMedia::getMediaImplFromTextureID(const LLUUID& texture_id) -{ - LLViewerMediaImpl* result = NULL; - - // Look up the texture ID in the texture id->impl map. - impl_id_map::iterator iter = sViewerMediaTextureIDMap.find(texture_id); - if(iter != sViewerMediaTextureIDMap.end()) - { - result = iter->second; - } - - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -std::string LLViewerMedia::getCurrentUserAgent() -{ - // Don't use user-visible string to avoid - // punctuation and strange characters. - std::string skin_name = gSavedSettings.getString("SkinCurrent"); - - // Just in case we need to check browser differences in A/B test - // builds. - std::string channel = LLVersionInfo::getChannel(); - - // append our magic version number string to the browser user agent id - // See the HTTP 1.0 and 1.1 specifications for allowed formats: - // http://www.ietf.org/rfc/rfc1945.txt section 10.15 - // http://www.ietf.org/rfc/rfc2068.txt section 3.8 - // This was also helpful: - // http://www.mozilla.org/build/revised-user-agent-strings.html - std::ostringstream codec; - codec << "SecondLife/"; - codec << LLVersionInfo::getVersion(); - codec << " (" << channel << "; " << skin_name << " skin)"; - llinfos << codec.str() << llendl; - - return codec.str(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::updateBrowserUserAgent() -{ - std::string user_agent = getCurrentUserAgent(); - - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if(pimpl->mMediaSource && pimpl->mMediaSource->pluginSupportsMediaBrowser()) - { - pimpl->mMediaSource->setBrowserUserAgent(user_agent); - } - } - -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::handleSkinCurrentChanged(const LLSD& /*newvalue*/) -{ - // gSavedSettings is already updated when this function is called. - updateBrowserUserAgent(); - return true; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::textureHasMedia(const LLUUID& texture_id) -{ - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if(pimpl->getMediaTextureID() == texture_id) - { - return true; - } - } - return false; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::setVolume(F32 volume) -{ - if(volume != sGlobalVolume) - { - sGlobalVolume = volume; - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - pimpl->updateVolume(); - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -F32 LLViewerMedia::getVolume() -{ - return sGlobalVolume; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::muteListChanged() -{ - // When the mute list changes, we need to check mute status on all impls. - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - pimpl->mNeedsMuteCheck = true; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::setInWorldMediaDisabled(bool disabled) -{ - sInWorldMediaDisabled = disabled; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::getInWorldMediaDisabled() -{ - return sInWorldMediaDisabled; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::isInterestingEnough(const LLVOVolume *object, const F64 &object_interest) -{ - bool result = false; - - if (NULL == object) - { - result = false; - } - // Focused? Then it is interesting! - else if (LLViewerMediaFocus::getInstance()->getFocusedObjectID() == object->getID()) - { - result = true; - } - // Selected? Then it is interesting! - // XXX Sadly, 'contains()' doesn't take a const :( - else if (LLSelectMgr::getInstance()->getSelection()->contains(const_cast(object))) - { - result = true; - } - else - { - lldebugs << "object interest = " << object_interest << ", lowest loadable = " << sLowestLoadableImplInterest << llendl; - if(object_interest >= sLowestLoadableImplInterest) - result = true; - } - - return result; -} - -LLViewerMedia::impl_list &LLViewerMedia::getPriorityList() -{ - return sViewerMediaImplList; -} - -// This is the predicate function used to sort sViewerMediaImplList by priority. -bool LLViewerMedia::priorityComparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2) -{ - if(i1->isForcedUnloaded() && !i2->isForcedUnloaded()) - { - // Muted or failed items always go to the end of the list, period. - return false; - } - else if(i2->isForcedUnloaded() && !i1->isForcedUnloaded()) - { - // Muted or failed items always go to the end of the list, period. - return true; - } - else if(i1->hasFocus()) - { - // The item with user focus always comes to the front of the list, period. - return true; - } - else if(i2->hasFocus()) - { - // The item with user focus always comes to the front of the list, period. - return false; - } - else if(i1->isParcelMedia()) - { - // The parcel media impl sorts above all other inworld media, unless one has focus. - return true; - } - else if(i2->isParcelMedia()) - { - // The parcel media impl sorts above all other inworld media, unless one has focus. - return false; - } - else if(i1->getUsedInUI() && !i2->getUsedInUI()) - { - // i1 is a UI element, i2 is not. This makes i1 "less than" i2, so it sorts earlier in our list. - return true; - } - else if(i2->getUsedInUI() && !i1->getUsedInUI()) - { - // i2 is a UI element, i1 is not. This makes i2 "less than" i1, so it sorts earlier in our list. - return false; - } - else if(i1->isPlayable() && !i2->isPlayable()) - { - // Playable items sort above ones that wouldn't play even if they got high enough priority - return true; - } - else if(!i1->isPlayable() && i2->isPlayable()) - { - // Playable items sort above ones that wouldn't play even if they got high enough priority - return false; - } - else if(i1->getInterest() == i2->getInterest()) - { - // Generally this will mean both objects have zero interest. In this case, sort on distance. - return (i1->getProximityDistance() < i2->getProximityDistance()); - } - else - { - // The object with the larger interest value should be earlier in the list, so we reverse the sense of the comparison here. - return (i1->getInterest() > i2->getInterest()); - } -} - -static bool proximity_comparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2) -{ - if(i1->getProximityDistance() < i2->getProximityDistance()) - { - return true; - } - else if(i1->getProximityDistance() > i2->getProximityDistance()) - { - return false; - } - else - { - // Both objects have the same distance. This most likely means they're two faces of the same object. - // They may also be faces on different objects with exactly the same distance (like HUD objects). - // We don't actually care what the sort order is for this case, as long as it's stable and doesn't change when you enable/disable media. - // Comparing the impl pointers gives a completely arbitrary ordering, but it will be stable. - return (i1 < i2); - } -} - -static LLFastTimer::DeclareTimer FTM_MEDIA_UPDATE("Update Media"); - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::updateMedia(void *dummy_arg) -{ - LLFastTimer t1(FTM_MEDIA_UPDATE); - - // Enable/disable the plugin read thread - LLPluginProcessParent::setUseReadThread(gSavedSettings.getBOOL("PluginUseReadThread")); - - // HACK: we always try to keep a spare running webkit plugin around to improve launch times. - createSpareBrowserMediaSource(); - - sAnyMediaShowing = false; - sUpdatedCookies = getCookieStore()->getChangedCookies(); - if(!sUpdatedCookies.empty()) - { - lldebugs << "updated cookies will be sent to all loaded plugins: " << llendl; - lldebugs << sUpdatedCookies << llendl; - } - - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end;) - { - LLViewerMediaImpl* pimpl = *iter++; - pimpl->update(); - pimpl->calculateInterest(); - } - - // Let the spare media source actually launch - if(sSpareBrowserMediaSource) - { - sSpareBrowserMediaSource->idle(); - } - - // Sort the static instance list using our interest criteria - sViewerMediaImplList.sort(priorityComparitor); - - // Go through the list again and adjust according to priority. - iter = sViewerMediaImplList.begin(); - end = sViewerMediaImplList.end(); - - F64 total_cpu = 0.0f; - int impl_count_total = 0; - int impl_count_interest_low = 0; - int impl_count_interest_normal = 0; - - std::vector proximity_order; - - bool inworld_media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia"); - bool inworld_audio_enabled = gSavedSettings.getBOOL("AudioStreamingMusic"); - U32 max_instances = gSavedSettings.getU32("PluginInstancesTotal"); - U32 max_normal = gSavedSettings.getU32("PluginInstancesNormal"); - U32 max_low = gSavedSettings.getU32("PluginInstancesLow"); - F32 max_cpu = gSavedSettings.getF32("PluginInstancesCPULimit"); - // Setting max_cpu to 0.0 disables CPU usage checking. - bool check_cpu_usage = (max_cpu != 0.0f); - - LLViewerMediaImpl* lowest_interest_loadable = NULL; - - // Notes on tweakable params: - // max_instances must be set high enough to allow the various instances used in the UI (for the help browser, search, etc.) to be loaded. - // If max_normal + max_low is less than max_instances, things will tend to get unloaded instead of being set to slideshow. - - for(; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - - LLPluginClassMedia::EPriority new_priority = LLPluginClassMedia::PRIORITY_NORMAL; - - if(pimpl->isForcedUnloaded() || (impl_count_total >= (int)max_instances)) - { - // Never load muted or failed impls. - // Hard limit on the number of instances that will be loaded at one time - new_priority = LLPluginClassMedia::PRIORITY_UNLOADED; - } - else if(!pimpl->getVisible()) - { - new_priority = LLPluginClassMedia::PRIORITY_HIDDEN; - } - else if(pimpl->hasFocus()) - { - new_priority = LLPluginClassMedia::PRIORITY_HIGH; - impl_count_interest_normal++; // count this against the count of "normal" instances for priority purposes - } - else if(pimpl->getUsedInUI()) - { - new_priority = LLPluginClassMedia::PRIORITY_NORMAL; - impl_count_interest_normal++; - } - else if(pimpl->isParcelMedia()) - { - new_priority = LLPluginClassMedia::PRIORITY_NORMAL; - impl_count_interest_normal++; - } - else - { - // Look at interest and CPU usage for instances that aren't in any of the above states. - - // Heuristic -- if the media texture's approximate screen area is less than 1/4 of the native area of the texture, - // turn it down to low instead of normal. This may downsample for plugins that support it. - bool media_is_small = false; - F64 approximate_interest = pimpl->getApproximateTextureInterest(); - if(approximate_interest == 0.0f) - { - // this media has no current size, which probably means it's not loaded. - media_is_small = true; - } - else if(pimpl->getInterest() < (approximate_interest / 4)) - { - media_is_small = true; - } - - if(pimpl->getInterest() == 0.0f) - { - // This media is completely invisible, due to being outside the view frustrum or out of range. - new_priority = LLPluginClassMedia::PRIORITY_HIDDEN; - } - else if(check_cpu_usage && (total_cpu > max_cpu)) - { - // Higher priority plugins have already used up the CPU budget. Set remaining ones to slideshow priority. - new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW; - } - else if((impl_count_interest_normal < (int)max_normal) && !media_is_small) - { - // Up to max_normal inworld get normal priority - new_priority = LLPluginClassMedia::PRIORITY_NORMAL; - impl_count_interest_normal++; - } - else if (impl_count_interest_low + impl_count_interest_normal < (int)max_low + (int)max_normal) - { - // The next max_low inworld get turned down - new_priority = LLPluginClassMedia::PRIORITY_LOW; - impl_count_interest_low++; - - // Set the low priority size for downsampling to approximately the size the texture is displayed at. - { - F32 approximate_interest_dimension = fsqrtf(pimpl->getInterest()); - - pimpl->setLowPrioritySizeLimit(llround(approximate_interest_dimension)); - } - } - else - { - // Any additional impls (up to max_instances) get very infrequent time - new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW; - } - } - - if(!pimpl->getUsedInUI() && (new_priority != LLPluginClassMedia::PRIORITY_UNLOADED)) - { - // This is a loadable inworld impl -- the last one in the list in this class defines the lowest loadable interest. - lowest_interest_loadable = pimpl; - - impl_count_total++; - } - - // Overrides if the window is minimized or we lost focus (taking care - // not to accidentally "raise" the priority either) - if (!gViewerWindow->getActive() /* viewer window minimized? */ - && new_priority > LLPluginClassMedia::PRIORITY_HIDDEN) - { - new_priority = LLPluginClassMedia::PRIORITY_HIDDEN; - } - else if (!gFocusMgr.getAppHasFocus() /* viewer window lost focus? */ - && new_priority > LLPluginClassMedia::PRIORITY_LOW) - { - new_priority = LLPluginClassMedia::PRIORITY_LOW; - } - - if(!inworld_media_enabled) - { - // If inworld media is locked out, force all inworld media to stay unloaded. - if(!pimpl->getUsedInUI()) - { - new_priority = LLPluginClassMedia::PRIORITY_UNLOADED; - } - } - // update the audio stream here as well - if( !inworld_audio_enabled) - { - if(LLViewerMedia::isParcelAudioPlaying() && gAudiop && LLViewerMedia::hasParcelAudio()) - { - gAudiop->stopInternetStream(); - } - } - pimpl->setPriority(new_priority); - - if(pimpl->getUsedInUI()) - { - // Any impls used in the UI should not be in the proximity list. - pimpl->mProximity = -1; - } - else - { - proximity_order.push_back(pimpl); - } - - total_cpu += pimpl->getCPUUsage(); - - if (!pimpl->getUsedInUI() && pimpl->hasMedia()) - { - sAnyMediaShowing = true; - } - - } - - // Re-calculate this every time. - sLowestLoadableImplInterest = 0.0f; - - // Only do this calculation if we've hit the impl count limit -- up until that point we always need to load media data. - if(lowest_interest_loadable && (impl_count_total >= (int)max_instances)) - { - // Get the interest value of this impl's object for use by isInterestingEnough - LLVOVolume *object = lowest_interest_loadable->getSomeObject(); - if(object) - { - // NOTE: Don't use getMediaInterest() here. We want the pixel area, not the total media interest, - // so that we match up with the calculation done in LLMediaDataClient. - sLowestLoadableImplInterest = object->getPixelArea(); - } - } - - if(gSavedSettings.getBOOL("MediaPerformanceManagerDebug")) - { - // Give impls the same ordering as the priority list - // they're already in the right order for this. - } - else - { - // Use a distance-based sort for proximity values. - std::stable_sort(proximity_order.begin(), proximity_order.end(), proximity_comparitor); - } - - // Transfer the proximity order to the proximity fields in the objects. - for(int i = 0; i < (int)proximity_order.size(); i++) - { - proximity_order[i]->mProximity = i; - } - - LL_DEBUGS("PluginPriority") << "Total reported CPU usage is " << total_cpu << llendl; - -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::isAnyMediaShowing() -{ - return sAnyMediaShowing; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::setAllMediaEnabled(bool val) -{ - // Set "tentative" autoplay first. We need to do this here or else - // re-enabling won't start up the media below. - gSavedSettings.setBOOL("MediaTentativeAutoPlay", val); - - // Then - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - - for(; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if (!pimpl->getUsedInUI()) - { - pimpl->setDisabled(!val); - } - } - - // Also do Parcel Media and Parcel Audio - if (val) - { - if (!LLViewerMedia::isParcelMediaPlaying() && LLViewerMedia::hasParcelMedia()) - { - LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); - } - - if (gSavedSettings.getBOOL("AudioStreamingMusic") && - !LLViewerMedia::isParcelAudioPlaying() && - gAudiop && - LLViewerMedia::hasParcelAudio()) - { - gAudiop->startInternetStream(LLViewerMedia::getParcelAudioURL()); - } - } - else { - // This actually unloads the impl, as opposed to "stop"ping the media - LLViewerParcelMedia::stop(); - if (gAudiop) gAudiop->stopInternetStream(); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::isParcelMediaPlaying() -{ - return (LLViewerMedia::hasParcelMedia() && LLViewerParcelMedia::getParcelMedia() && LLViewerParcelMedia::getParcelMedia()->hasMedia()); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::isParcelAudioPlaying() -{ - return (LLViewerMedia::hasParcelAudio() && gAudiop && LLAudioEngine::AUDIO_PLAYING == gAudiop->isInternetStreamPlaying()); -} - -void LLViewerMedia::onAuthSubmit(const LLSD& notification, const LLSD& response) -{ - LLViewerMediaImpl *impl = LLViewerMedia::getMediaImplFromTextureID(notification["payload"]["media_id"]); - if(impl) - { - LLPluginClassMedia* media = impl->getMediaPlugin(); - if(media) - { - if (response["ok"]) - { - media->sendAuthResponse(true, response["username"], response["password"]); - } - else - { - media->sendAuthResponse(false, "", ""); - } - } - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::clearAllCookies() -{ - // Clear all cookies for all plugins - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - for (; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if(pimpl->mMediaSource) - { - pimpl->mMediaSource->clear_cookies(); - } - } - - // Clear all cookies from the cookie store - getCookieStore()->setAllCookies(""); - - // FIXME: this may not be sufficient, since the on-disk cookie file won't get written until some browser instance exits cleanly. - // It also won't clear cookies for other accounts, or for any account if we're not logged in, and won't do anything at all if there are no webkit plugins loaded. - // Until such time as we can centralize cookie storage, the following hack should cover these cases: - - // HACK: Look for cookie files in all possible places and delete them. - // NOTE: this assumes knowledge of what happens inside the webkit plugin (it's what adds 'browser_profile' to the path and names the cookie file) - - // Places that cookie files can be: - // /browser_profile/cookies - // /first_last/browser_profile/cookies (note that there may be any number of these!) - // /first_last/plugin_cookies.txt (note that there may be any number of these!) - - std::string base_dir = gDirUtilp->getOSUserAppDir() + gDirUtilp->getDirDelimiter(); - std::string target; - std::string filename; - - lldebugs << "base dir = " << base_dir << llendl; - - // The non-logged-in version is easy - target = base_dir; - target += "browser_profile"; - target += gDirUtilp->getDirDelimiter(); - target += "cookies"; - lldebugs << "target = " << target << llendl; - if(LLFile::isfile(target)) - { - LLFile::remove(target); - } - - // the hard part: iterate over all user directories and delete the cookie file from each one - while(gDirUtilp->getNextFileInDir(base_dir, "*_*", filename)) - { - target = base_dir; - target += filename; - target += gDirUtilp->getDirDelimiter(); - target += "browser_profile"; - target += gDirUtilp->getDirDelimiter(); - target += "cookies"; - lldebugs << "target = " << target << llendl; - if(LLFile::isfile(target)) - { - LLFile::remove(target); - } - - // Other accounts may have new-style cookie files too -- delete them as well - target = base_dir; - target += filename; - target += gDirUtilp->getDirDelimiter(); - target += PLUGIN_COOKIE_FILE_NAME; - lldebugs << "target = " << target << llendl; - if(LLFile::isfile(target)) - { - LLFile::remove(target); - } - } - - // If we have an OpenID cookie, re-add it to the cookie store. - setOpenIDCookie(); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::clearAllCaches() -{ - // Clear all plugins' caches - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - for (; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - pimpl->clearCache(); - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::setCookiesEnabled(bool enabled) -{ - // Set the "cookies enabled" flag for all loaded plugins - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - for (; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if(pimpl->mMediaSource) - { - pimpl->mMediaSource->enable_cookies(enabled); - } - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int port) -{ - // Set the proxy config for all loaded plugins - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - for (; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if(pimpl->mMediaSource) - { - pimpl->mMediaSource->proxy_setup(enable, host, port); - } - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -///////////////////////////////////////////////////////////////////////////////////////// -// static -LLPluginCookieStore *LLViewerMedia::getCookieStore() -{ - if(sCookieStore == NULL) - { - sCookieStore = new LLPluginCookieStore; - } - - return sCookieStore; -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::loadCookieFile() -{ - // build filename for each user - std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PLUGIN_COOKIE_FILE_NAME); - - if (resolved_filename.empty()) - { - llinfos << "can't get path to plugin cookie file - probably not logged in yet." << llendl; - return; - } - - // open the file for reading - llifstream file(resolved_filename); - if (!file.is_open()) - { - llwarns << "can't load plugin cookies from file \"" << PLUGIN_COOKIE_FILE_NAME << "\"" << llendl; - return; - } - - getCookieStore()->readAllCookies(file, true); - - file.close(); - - // send the clear_cookies message to all loaded plugins - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - for (; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if(pimpl->mMediaSource) - { - pimpl->mMediaSource->clear_cookies(); - } - } - - // If we have an OpenID cookie, re-add it to the cookie store. - setOpenIDCookie(); -} - - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::saveCookieFile() -{ - // build filename for each user - std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PLUGIN_COOKIE_FILE_NAME); - - if (resolved_filename.empty()) - { - llinfos << "can't get path to plugin cookie file - probably not logged in yet." << llendl; - return; - } - - // open a file for writing - llofstream file (resolved_filename); - if (!file.is_open()) - { - llwarns << "can't open plugin cookie file \"" << PLUGIN_COOKIE_FILE_NAME << "\" for writing" << llendl; - return; - } - - getCookieStore()->writePersistentCookies(file); - - file.close(); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::addCookie(const std::string &name, const std::string &value, const std::string &domain, const LLDate &expires, const std::string &path, bool secure) -{ - std::stringstream cookie; - - cookie << name << "=" << LLPluginCookieStore::quoteString(value); - - if(expires.notNull()) - { - cookie << "; expires=" << expires.asRFC1123(); - } - - cookie << "; domain=" << domain; - - cookie << "; path=" << path; - - if(secure) - { - cookie << "; secure"; - } - - getCookieStore()->setCookies(cookie.str()); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::addSessionCookie(const std::string &name, const std::string &value, const std::string &domain, const std::string &path, bool secure) -{ - // A session cookie just has a NULL date. - addCookie(name, value, domain, LLDate(), path, secure); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::removeCookie(const std::string &name, const std::string &domain, const std::string &path ) -{ - // To remove a cookie, add one with the same name, domain, and path that expires in the past. - - addCookie(name, "", domain, LLDate(LLDate::now().secondsSinceEpoch() - 1.0), path); -} - - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::setOpenIDCookie() -{ - if(!sOpenIDCookie.empty()) - { - // The LLURL can give me the 'authority', which is of the form: [username[:password]@]hostname[:port] - // We want just the hostname for the cookie code, but LLURL doesn't seem to have a way to extract that. - // We therefore do it here. - std::string authority = sOpenIDURL.mAuthority; - std::string::size_type host_start = authority.find('@'); - if(host_start == std::string::npos) - { - // no username/password - host_start = 0; - } - else - { - // Hostname starts after the @. - // (If the hostname part is empty, this may put host_start at the end of the string. In that case, it will end up passing through an empty hostname, which is correct.) - ++host_start; - } - std::string::size_type host_end = authority.rfind(':'); - if((host_end == std::string::npos) || (host_end < host_start)) - { - // no port - host_end = authority.size(); - } - - getCookieStore()->setCookiesFromHost(sOpenIDCookie, authority.substr(host_start, host_end - host_start)); - - // *HACK: Doing this here is nasty, find a better way. - LLWebSharing::instance().setOpenIDCookie(sOpenIDCookie); - - // Do a web profile get so we can store the cookie - LLSD headers = LLSD::emptyMap(); - headers["Accept"] = "*/*"; - headers["Cookie"] = sOpenIDCookie; - headers["User-Agent"] = getCurrentUserAgent(); - - std::string profile_url = getProfileURL(""); - LLURL raw_profile_url( profile_url.c_str() ); - - LLHTTPClient::get(profile_url, - new LLViewerMediaWebProfileResponder(raw_profile_url.getAuthority()), - headers); - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::openIDSetup(const std::string &openid_url, const std::string &openid_token) -{ - LL_DEBUGS("MediaAuth") << "url = \"" << openid_url << "\", token = \"" << openid_token << "\"" << LL_ENDL; - - // post the token to the url - // the responder will need to extract the cookie(s). - - // Save the OpenID URL for later -- we may need the host when adding the cookie. - sOpenIDURL.init(openid_url.c_str()); - - // We shouldn't ever do this twice, but just in case this code gets repurposed later, clear existing cookies. - sOpenIDCookie.clear(); - - LLSD headers = LLSD::emptyMap(); - // Keep LLHTTPClient from adding an "Accept: application/llsd+xml" header - headers["Accept"] = "*/*"; - // and use the expected content-type for a post, instead of the LLHTTPClient::postRaw() default of "application/octet-stream" - headers["Content-Type"] = "application/x-www-form-urlencoded"; - - // postRaw() takes ownership of the buffer and releases it later, so we need to allocate a new buffer here. - size_t size = openid_token.size(); - U8 *data = new U8[size]; - memcpy(data, openid_token.data(), size); - - LLHTTPClient::postRaw( - openid_url, - data, - size, - new LLViewerMediaOpenIDResponder(), - headers); - -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::openIDCookieResponse(const std::string &cookie) -{ - LL_DEBUGS("MediaAuth") << "Cookie received: \"" << cookie << "\"" << LL_ENDL; - - sOpenIDCookie += cookie; - - setOpenIDCookie(); -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::proxyWindowOpened(const std::string &target, const std::string &uuid) -{ - if(uuid.empty()) - return; - - for (impl_list::iterator iter = sViewerMediaImplList.begin(); iter != sViewerMediaImplList.end(); iter++) - { - if((*iter)->mMediaSource && (*iter)->mMediaSource->pluginSupportsMediaBrowser()) - { - (*iter)->mMediaSource->proxyWindowOpened(target, uuid); - } - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::proxyWindowClosed(const std::string &uuid) -{ - if(uuid.empty()) - return; - - for (impl_list::iterator iter = sViewerMediaImplList.begin(); iter != sViewerMediaImplList.end(); iter++) - { - if((*iter)->mMediaSource && (*iter)->mMediaSource->pluginSupportsMediaBrowser()) - { - (*iter)->mMediaSource->proxyWindowClosed(uuid); - } - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::createSpareBrowserMediaSource() -{ - // If we don't have a spare browser media source, create one. - // However, if PluginAttachDebuggerToPlugins is set then don't spawn a spare - // SLPlugin process in order to not be confused by an unrelated gdb terminal - // popping up at the moment we start a media plugin. - if (!sSpareBrowserMediaSource && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")) - { - // The null owner will keep the browser plugin from fully initializing - // (specifically, it keeps LLPluginClassMedia from negotiating a size change, - // which keeps MediaPluginWebkit::initBrowserWindow from doing anything until we have some necessary data, like the background color) - sSpareBrowserMediaSource = LLViewerMediaImpl::newSourceFromMediaType("text/html", NULL, 0, 0); - } -} - -///////////////////////////////////////////////////////////////////////////////////////// -// static -LLPluginClassMedia* LLViewerMedia::getSpareBrowserMediaSource() -{ - LLPluginClassMedia* result = sSpareBrowserMediaSource; - sSpareBrowserMediaSource = NULL; - return result; -}; - -bool LLViewerMedia::hasInWorldMedia() -{ - if (sInWorldMediaDisabled) return false; - impl_list::iterator iter = sViewerMediaImplList.begin(); - impl_list::iterator end = sViewerMediaImplList.end(); - // This should be quick, because there should be very few non-in-world-media impls - for (; iter != end; iter++) - { - LLViewerMediaImpl* pimpl = *iter; - if (!pimpl->getUsedInUI() && !pimpl->isParcelMedia()) - { - // Found an in-world media impl - return true; - } - } - return false; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::hasParcelMedia() -{ - return !LLViewerParcelMedia::getURL().empty(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -bool LLViewerMedia::hasParcelAudio() -{ - return !LLViewerMedia::getParcelAudioURL().empty(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -std::string LLViewerMedia::getParcelAudioURL() -{ - return LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::initClass() -{ - gIdleCallbacks.addFunction(LLViewerMedia::updateMedia, NULL); - sTeleportFinishConnection = LLViewerParcelMgr::getInstance()-> - setTeleportFinishedCallback(boost::bind(&LLViewerMedia::onTeleportFinished)); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::cleanupClass() -{ - gIdleCallbacks.deleteFunction(LLViewerMedia::updateMedia, NULL); - sTeleportFinishConnection.disconnect(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// static -void LLViewerMedia::onTeleportFinished() -{ - // On teleport, clear this setting (i.e. set it to true) - gSavedSettings.setBOOL("MediaTentativeAutoPlay", true); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// LLViewerMediaImpl -////////////////////////////////////////////////////////////////////////////////////////// -LLViewerMediaImpl::LLViewerMediaImpl( const LLUUID& texture_id, - S32 media_width, - S32 media_height, - U8 media_auto_scale, - U8 media_loop) -: - mMediaSource( NULL ), - mMovieImageHasMips(false), - mMediaWidth(media_width), - mMediaHeight(media_height), - mMediaAutoScale(media_auto_scale), - mMediaLoop(media_loop), - mNeedsNewTexture(true), - mTextureUsedWidth(0), - mTextureUsedHeight(0), - mSuspendUpdates(false), - mVisible(true), - mLastSetCursor( UI_CURSOR_ARROW ), - mMediaNavState( MEDIANAVSTATE_NONE ), - mInterest(0.0f), - mUsedInUI(false), - mHasFocus(false), - mPriority(LLPluginClassMedia::PRIORITY_UNLOADED), - mNavigateRediscoverType(false), - mNavigateServerRequest(false), - mMediaSourceFailed(false), - mRequestedVolume(1.0f), - mIsMuted(false), - mNeedsMuteCheck(false), - mPreviousMediaState(MEDIA_NONE), - mPreviousMediaTime(0.0f), - mIsDisabled(false), - mIsParcelMedia(false), - mProximity(-1), - mProximityDistance(0.0f), - mMimeTypeProbe(NULL), - mMediaAutoPlay(false), - mInNearbyMediaList(false), - mClearCache(false), - mBackgroundColor(LLColor4::white), - mNavigateSuspended(false), - mNavigateSuspendedDeferred(false), - mIsUpdated(false), - mTrustedBrowser(false) -{ - - // Set up the mute list observer if it hasn't been set up already. - if(!sViewerMediaMuteListObserverInitialized) - { - LLMuteList::getInstance()->addObserver(&sViewerMediaMuteListObserver); - sViewerMediaMuteListObserverInitialized = true; - } - - add_media_impl(this); - - setTextureID(texture_id); - - // connect this media_impl to the media texture, creating it if it doesn't exist.0 - // This is necessary because we need to be able to use getMaxVirtualSize() even if the media plugin is not loaded. - LLViewerMediaTexture* media_tex = LLViewerTextureManager::getMediaTexture(mTextureId); - if(media_tex) - { - media_tex->setMediaImpl(); - } - -} - -////////////////////////////////////////////////////////////////////////////////////////// -LLViewerMediaImpl::~LLViewerMediaImpl() -{ - destroyMediaSource(); - - LLViewerMediaTexture::removeMediaImplFromTexture(mTextureId) ; - - setTextureID(); - remove_media_impl(this); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::emitEvent(LLPluginClassMedia* plugin, LLViewerMediaObserver::EMediaEvent event) -{ - // Broadcast to observers using the superclass version - LLViewerMediaEventEmitter::emitEvent(plugin, event); - - // If this media is on one or more LLVOVolume objects, tell them about the event as well. - std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; - while(iter != mObjectList.end()) - { - LLVOVolume *self = *iter; - ++iter; - self->mediaEvent(this, plugin, event); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type) -{ - bool mimeTypeChanged = (mMimeType != mime_type); - bool pluginChanged = (LLMIMETypes::implType(mCurrentMimeType) != LLMIMETypes::implType(mime_type)); - - if(!mMediaSource || pluginChanged) - { - // We don't have a plugin at all, or the new mime type is handled by a different plugin than the old mime type. - (void)initializePlugin(mime_type); - } - else if(mimeTypeChanged) - { - // The same plugin should be able to handle the new media -- just update the stored mime type. - mMimeType = mime_type; - } - - return (mMediaSource != NULL); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::createMediaSource() -{ - if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) - { - // This media shouldn't be created yet. - return; - } - - if(! mMediaURL.empty()) - { - navigateInternal(); - } - else if(! mMimeType.empty()) - { - if (!initializeMedia(mMimeType)) - { - LL_WARNS("Media") << "Failed to initialize media for mime type " << mMimeType << LL_ENDL; - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::destroyMediaSource() -{ - mNeedsNewTexture = true; - - // Tell the viewer media texture it's no longer active - LLViewerMediaTexture* oldImage = LLViewerTextureManager::findMediaTexture( mTextureId ); - if (oldImage) - { - oldImage->setPlaying(FALSE) ; - } - - cancelMimeTypeProbe(); - - if(mMediaSource) - { - mMediaSource->setDeleteOK(true) ; - delete mMediaSource; - mMediaSource = NULL; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::setMediaType(const std::string& media_type) -{ - mMimeType = media_type; -} - -////////////////////////////////////////////////////////////////////////////////////////// -/*static*/ -LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_type, LLPluginClassMediaOwner *owner /* may be NULL */, S32 default_width, S32 default_height, const std::string target) -{ - std::string plugin_basename = LLMIMETypes::implType(media_type); - LLPluginClassMedia* media_source = NULL; - - // HACK: we always try to keep a spare running webkit plugin around to improve launch times. - // If a spare was already created before PluginAttachDebuggerToPlugins was set, don't use it. - if(plugin_basename == "media_plugin_webkit" && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")) - { - media_source = LLViewerMedia::getSpareBrowserMediaSource(); - if(media_source) - { - media_source->setOwner(owner); - media_source->setTarget(target); - media_source->setSize(default_width, default_height); - - return media_source; - } - } - - if(plugin_basename.empty()) - { - LL_WARNS("Media") << "Couldn't find plugin for media type " << media_type << LL_ENDL; - } - else - { - std::string launcher_name = gDirUtilp->getLLPluginLauncher(); - std::string plugin_name = gDirUtilp->getLLPluginFilename(plugin_basename); - std::string user_data_path = gDirUtilp->getOSUserAppDir(); - user_data_path += gDirUtilp->getDirDelimiter(); - - // Fix for EXT-5960 - make browser profile specific to user (cache, cookies etc.) - // If the linden username returned is blank, that can only mean we are - // at the login page displaying login Web page or Web browser test via Develop menu. - // In this case we just use whatever gDirUtilp->getOSUserAppDir() gives us (this - // is what we always used before this change) - std::string linden_user_dir = gDirUtilp->getLindenUserDir(); - if ( ! linden_user_dir.empty() ) - { - // gDirUtilp->getLindenUserDir() is whole path, not just Linden name - user_data_path = linden_user_dir; - user_data_path += gDirUtilp->getDirDelimiter(); - }; - - // See if the plugin executable exists - llstat s; - if(LLFile::stat(launcher_name, &s)) - { - LL_WARNS("Media") << "Couldn't find launcher at " << launcher_name << LL_ENDL; - } - else if(LLFile::stat(plugin_name, &s)) - { - LL_WARNS("Media") << "Couldn't find plugin at " << plugin_name << LL_ENDL; - } - else - { - media_source = new LLPluginClassMedia(owner); - media_source->setSize(default_width, default_height); - media_source->setUserDataPath(user_data_path); - media_source->setLanguageCode(LLUI::getLanguage()); - - // collect 'cookies enabled' setting from prefs and send to embedded browser - bool cookies_enabled = gSavedSettings.getBOOL( "CookiesEnabled" ); - media_source->enable_cookies( cookies_enabled ); - - // collect 'plugins enabled' setting from prefs and send to embedded browser - bool plugins_enabled = gSavedSettings.getBOOL( "BrowserPluginsEnabled" ); - media_source->setPluginsEnabled( plugins_enabled ); - - // collect 'javascript enabled' setting from prefs and send to embedded browser - bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" ); - media_source->setJavascriptEnabled( javascript_enabled ); - - media_source->setTarget(target); - - const std::string plugin_dir = gDirUtilp->getLLPluginDir(); - if (media_source->init(launcher_name, plugin_dir, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) - { - return media_source; - } - else - { - LL_WARNS("Media") << "Failed to init plugin. Destroying." << LL_ENDL; - delete media_source; - } - } - } - - LL_WARNS("Plugin") << "plugin intialization failed for mime type: " << media_type << LL_ENDL; - LLSD args; - args["MIME_TYPE"] = media_type; - LLNotificationsUtil::add("NoPlugin", args); - - return NULL; -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::initializePlugin(const std::string& media_type) -{ - if(mMediaSource) - { - // Save the previous media source's last set size before destroying it. - mMediaWidth = mMediaSource->getSetWidth(); - mMediaHeight = mMediaSource->getSetHeight(); - } - - // Always delete the old media impl first. - destroyMediaSource(); - - // and unconditionally set the mime type - mMimeType = media_type; - - if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) - { - // This impl should not be loaded at this time. - LL_DEBUGS("PluginPriority") << this << "Not loading (PRIORITY_UNLOADED)" << LL_ENDL; - - return false; - } - - // If we got here, we want to ignore previous init failures. - mMediaSourceFailed = false; - - // Save the MIME type that really caused the plugin to load - mCurrentMimeType = mMimeType; - - LLPluginClassMedia* media_source = newSourceFromMediaType(mMimeType, this, mMediaWidth, mMediaHeight, mTarget); - - if (media_source) - { - media_source->setDisableTimeout(gSavedSettings.getBOOL("DebugPluginDisableTimeout")); - media_source->setLoop(mMediaLoop); - media_source->setAutoScale(mMediaAutoScale); - media_source->setBrowserUserAgent(LLViewerMedia::getCurrentUserAgent()); - media_source->focus(mHasFocus); - media_source->setBackgroundColor(mBackgroundColor); - - if(gSavedSettings.getBOOL("BrowserIgnoreSSLCertErrors")) - { - media_source->ignore_ssl_cert_errors(true); - } - - // the correct way to deal with certs it to load ours from CA.pem and append them to the ones - // Qt/WebKit loads from your system location. - // Note: This needs the new CA.pem file with the Equifax Secure Certificate Authority - // cert at the bottom: (MIIDIDCCAomgAwIBAgIENd70zzANBg) - std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); - media_source->addCertificateFilePath( ca_path ); - - media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); - - if(mClearCache) - { - mClearCache = false; - media_source->clear_cache(); - } - - // TODO: Only send cookies to plugins that need them - // Ideally, the plugin should tell us whether it handles cookies or not -- either via the init response or through a separate message. - // Due to the ordering of messages, it's possible we wouldn't get that information back in time to send cookies before sending a navigate message, - // which could cause odd race conditions. - std::string all_cookies = LLViewerMedia::getCookieStore()->getAllCookies(); - lldebugs << "setting cookies: " << all_cookies << llendl; - if(!all_cookies.empty()) - { - media_source->set_cookies(all_cookies); - } - - mMediaSource = media_source; - mMediaSource->setDeleteOK(false) ; - updateVolume(); - - return true; - } - - // Make sure the timer doesn't try re-initing this plugin repeatedly until something else changes. - mMediaSourceFailed = true; - - return false; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::loadURI() -{ - if(mMediaSource) - { - // trim whitespace from front and back of URL - fixes EXT-5363 - LLStringUtil::trim( mMediaURL ); - - // *HACK: we don't know if the URI coming in is properly escaped - // (the contract doesn't specify whether it is escaped or not. - // but LLQtWebKit expects it to be, so we do our best to encode - // special characters) - // The strings below were taken right from http://www.ietf.org/rfc/rfc1738.txt - // Note especially that '%' and '/' are there. - std::string uri = LLURI::escape(mMediaURL, - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" - "0123456789" - "$-_.+" - "!*'()," - "{}|\\^~[]`" - "<>#%" - ";/?:@&=", - false); - llinfos << "Asking media source to load URI: " << uri << llendl; - - mMediaSource->loadURI( uri ); - - // A non-zero mPreviousMediaTime means that either this media was previously unloaded by the priority code while playing/paused, - // or a seek happened before the media loaded. In either case, seek to the saved time. - if(mPreviousMediaTime != 0.0f) - { - seek(mPreviousMediaTime); - } - - if(mPreviousMediaState == MEDIA_PLAYING) - { - // This media was playing before this instance was unloaded. - start(); - } - else if(mPreviousMediaState == MEDIA_PAUSED) - { - // This media was paused before this instance was unloaded. - pause(); - } - else - { - // No relevant previous media play state -- if we're loading the URL, we want to start playing. - start(); - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::setSize(int width, int height) -{ - mMediaWidth = width; - mMediaHeight = height; - if(mMediaSource) - { - mMediaSource->setSize(width, height); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::showNotification(LLNotificationPtr notify) -{ - mNotification = notify; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::hideNotification() -{ - mNotification.reset(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::play() -{ - // If the media source isn't there, try to initialize it and load an URL. - if(mMediaSource == NULL) - { - if(!initializeMedia(mMimeType)) - { - // This may be the case where the plugin's priority is PRIORITY_UNLOADED - return; - } - - // Only do this if the media source was just loaded. - loadURI(); - } - - // always start the media - start(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::stop() -{ - if(mMediaSource) - { - mMediaSource->stop(); - // destroyMediaSource(); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::pause() -{ - if(mMediaSource) - { - mMediaSource->pause(); - } - else - { - mPreviousMediaState = MEDIA_PAUSED; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::start() -{ - if(mMediaSource) - { - mMediaSource->start(); - } - else - { - mPreviousMediaState = MEDIA_PLAYING; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::seek(F32 time) -{ - if(mMediaSource) - { - mMediaSource->seek(time); - } - else - { - // Save the seek time to be set when the media is loaded. - mPreviousMediaTime = time; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::skipBack(F32 step_scale) -{ - if(mMediaSource) - { - if(mMediaSource->pluginSupportsMediaTime()) - { - F64 back_step = mMediaSource->getCurrentTime() - (mMediaSource->getDuration()*step_scale); - if(back_step < 0.0) - { - back_step = 0.0; - } - mMediaSource->seek(back_step); - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::skipForward(F32 step_scale) -{ - if(mMediaSource) - { - if(mMediaSource->pluginSupportsMediaTime()) - { - F64 forward_step = mMediaSource->getCurrentTime() + (mMediaSource->getDuration()*step_scale); - if(forward_step > mMediaSource->getDuration()) - { - forward_step = mMediaSource->getDuration(); - } - mMediaSource->seek(forward_step); - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::setVolume(F32 volume) -{ - mRequestedVolume = volume; - updateVolume(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::updateVolume() -{ - if(mMediaSource) - { - // always scale the volume by the global media volume - F32 volume = mRequestedVolume * LLViewerMedia::getVolume(); - - if (mProximityCamera > 0) - { - if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMax")) - { - volume = 0; - } - else if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMin")) - { - // attenuated_volume = 1 / (roll_off_rate * (d - min))^2 - // the +1 is there so that for distance 0 the volume stays the same - F64 adjusted_distance = mProximityCamera - gSavedSettings.getF32("MediaRollOffMin"); - F64 attenuation = 1.0 + (gSavedSettings.getF32("MediaRollOffRate") * adjusted_distance); - attenuation = 1.0 / (attenuation * attenuation); - // the attenuation multiplier should never be more than one since that would increase volume - volume = volume * llmin(1.0, attenuation); - } - } - - mMediaSource->setVolume(volume); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -F32 LLViewerMediaImpl::getVolume() -{ - return mRequestedVolume; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::focus(bool focus) -{ - mHasFocus = focus; - - if (mMediaSource) - { - // call focus just for the hell of it, even though this apopears to be a nop - mMediaSource->focus(focus); - if (focus) - { - // spoof a mouse click to *actually* pass focus - // Don't do this anymore -- it actually clicks through now. -// mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_DOWN, 1, 1, 0); -// mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_UP, 1, 1, 0); - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::hasFocus() const -{ - // FIXME: This might be able to be a bit smarter by hooking into LLViewerMediaFocus, etc. - return mHasFocus; -} - -std::string LLViewerMediaImpl::getCurrentMediaURL() -{ - if(!mCurrentMediaURL.empty()) - { - return mCurrentMediaURL; - } - - return mMediaURL; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::clearCache() -{ - if(mMediaSource) - { - mMediaSource->clear_cache(); - } - else - { - mClearCache = true; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::mouseDown(S32 x, S32 y, MASK mask, S32 button) -{ - scaleMouse(&x, &y); - mLastMouseX = x; - mLastMouseY = y; -// llinfos << "mouse down (" << x << ", " << y << ")" << llendl; - if (mMediaSource) - { - mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_DOWN, button, x, y, mask); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::mouseUp(S32 x, S32 y, MASK mask, S32 button) -{ - scaleMouse(&x, &y); - mLastMouseX = x; - mLastMouseY = y; -// llinfos << "mouse up (" << x << ", " << y << ")" << llendl; - if (mMediaSource) - { - mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_UP, button, x, y, mask); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::mouseMove(S32 x, S32 y, MASK mask) -{ - scaleMouse(&x, &y); - mLastMouseX = x; - mLastMouseY = y; -// llinfos << "mouse move (" << x << ", " << y << ")" << llendl; - if (mMediaSource) - { - mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_MOVE, 0, x, y, mask); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -//static -void LLViewerMediaImpl::scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y) -{ - F32 texture_x = texture_coords.mV[VX]; - F32 texture_y = texture_coords.mV[VY]; - - // Deal with repeating textures by wrapping the coordinates into the range [0, 1.0) - texture_x = fmodf(texture_x, 1.0f); - if(texture_x < 0.0f) - texture_x = 1.0 + texture_x; - - texture_y = fmodf(texture_y, 1.0f); - if(texture_y < 0.0f) - texture_y = 1.0 + texture_y; - - // scale x and y to texel units. - *x = llround(texture_x * mMediaSource->getTextureWidth()); - *y = llround((1.0f - texture_y) * mMediaSource->getTextureHeight()); - - // Adjust for the difference between the actual texture height and the amount of the texture in use. - *y -= (mMediaSource->getTextureHeight() - mMediaSource->getHeight()); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::mouseDown(const LLVector2& texture_coords, MASK mask, S32 button) -{ - if(mMediaSource) - { - S32 x, y; - scaleTextureCoords(texture_coords, &x, &y); - - mouseDown(x, y, mask, button); - } -} - -void LLViewerMediaImpl::mouseUp(const LLVector2& texture_coords, MASK mask, S32 button) -{ - if(mMediaSource) - { - S32 x, y; - scaleTextureCoords(texture_coords, &x, &y); - - mouseUp(x, y, mask, button); - } -} - -void LLViewerMediaImpl::mouseMove(const LLVector2& texture_coords, MASK mask) -{ - if(mMediaSource) - { - S32 x, y; - scaleTextureCoords(texture_coords, &x, &y); - - mouseMove(x, y, mask); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::mouseDoubleClick(S32 x, S32 y, MASK mask, S32 button) -{ - scaleMouse(&x, &y); - mLastMouseX = x; - mLastMouseY = y; - if (mMediaSource) - { - mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_DOUBLE_CLICK, button, x, y, mask); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::scrollWheel(S32 x, S32 y, MASK mask) -{ - scaleMouse(&x, &y); - mLastMouseX = x; - mLastMouseY = y; - if (mMediaSource) - { - mMediaSource->scrollEvent(x, y, mask); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::onMouseCaptureLost() -{ - if (mMediaSource) - { - mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_UP, 0, mLastMouseX, mLastMouseY, 0); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -BOOL LLViewerMediaImpl::handleMouseUp(S32 x, S32 y, MASK mask) -{ - // NOTE: this is called when the mouse is released when we have capture. - // Due to the way mouse coordinates are mapped to the object, we can't use the x and y coordinates that come in with the event. - - if(hasMouseCapture()) - { - // Release the mouse -- this will also send a mouseup to the media - gFocusMgr.setMouseCapture( FALSE ); - } - - return TRUE; -} - -////////////////////////////////////////////////////////////////////////////////////////// -std::string LLViewerMediaImpl::getName() const -{ - if (mMediaSource) - { - return mMediaSource->getMediaName(); - } - - return LLStringUtil::null; -}; - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateBack() -{ - if (mMediaSource) - { - mMediaSource->browse_back(); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateForward() -{ - if (mMediaSource) - { - mMediaSource->browse_forward(); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateReload() -{ - navigateTo(getCurrentMediaURL(), "", true, false); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateHome() -{ - bool rediscover_mimetype = mHomeMimeType.empty(); - navigateTo(mHomeURL, mHomeMimeType, rediscover_mimetype, false); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::unload() -{ - // Unload the media impl and clear its state. - destroyMediaSource(); - resetPreviousMediaState(); - mMediaURL.clear(); - mMimeType.clear(); - mCurrentMediaURL.clear(); - mCurrentMimeType.clear(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type, bool server_request) -{ - cancelMimeTypeProbe(); - - if(mMediaURL != url) - { - // Don't carry media play state across distinct URLs. - resetPreviousMediaState(); - } - - // Always set the current URL and MIME type. - mMediaURL = url; - mMimeType = mime_type; - - // Clear the current media URL, since it will no longer be correct. - mCurrentMediaURL.clear(); - - // if mime type discovery was requested, we'll need to do it when the media loads - mNavigateRediscoverType = rediscover_type; - - // and if this was a server request, the navigate on load will also need to be one. - mNavigateServerRequest = server_request; - - // An explicit navigate resets the "failed" flag. - mMediaSourceFailed = false; - - if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) - { - // Helpful to have media urls in log file. Shouldn't be spammy. - llinfos << "NOT LOADING media id= " << mTextureId << " url=" << url << " mime_type=" << mime_type << llendl; - - // This impl should not be loaded at this time. - LL_DEBUGS("PluginPriority") << this << "Not loading (PRIORITY_UNLOADED)" << LL_ENDL; - - return; - } - - navigateInternal(); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateInternal() -{ - // Helpful to have media urls in log file. Shouldn't be spammy. - llinfos << "media id= " << mTextureId << " url=" << mMediaURL << " mime_type=" << mMimeType << llendl; - - if(mNavigateSuspended) - { - llwarns << "Deferring navigate." << llendl; - mNavigateSuspendedDeferred = true; - return; - } - - if(mMimeTypeProbe != NULL) - { - llwarns << "MIME type probe already in progress -- bailing out." << llendl; - return; - } - - if(mNavigateServerRequest) - { - setNavState(MEDIANAVSTATE_SERVER_SENT); - } - else - { - setNavState(MEDIANAVSTATE_NONE); - } - - // If the caller has specified a non-empty MIME type, look that up in our MIME types list. - // If we have a plugin for that MIME type, use that instead of attempting auto-discovery. - // This helps in supporting legacy media content where the server the media resides on returns a bogus MIME type - // but the parcel owner has correctly set the MIME type in the parcel media settings. - - if(!mMimeType.empty() && (mMimeType != LLMIMETypes::getDefaultMimeType())) - { - std::string plugin_basename = LLMIMETypes::implType(mMimeType); - if(!plugin_basename.empty()) - { - // We have a plugin for this mime type - mNavigateRediscoverType = false; - } - } - - if(mNavigateRediscoverType) - { - - LLURI uri(mMediaURL); - std::string scheme = uri.scheme(); - - if(scheme.empty() || "http" == scheme || "https" == scheme) - { - // If we don't set an Accept header, LLHTTPClient will add one like this: - // Accept: application/llsd+xml - // which is really not what we want. - LLSD headers = LLSD::emptyMap(); - headers["Accept"] = "*/*"; - // Allow cookies in the response, to prevent a redirect loop when accessing join.secondlife.com - headers["Cookie"] = ""; - LLHTTPClient::getHeaderOnly( mMediaURL, new LLMimeDiscoveryResponder(this), headers, 10.0f); - } - else if("data" == scheme || "file" == scheme || "about" == scheme) - { - // FIXME: figure out how to really discover the type for these schemes - // We use "data" internally for a text/html url for loading the login screen - if(initializeMedia("text/html")) - { - loadURI(); - } - } - else - { - // This catches 'rtsp://' urls - if(initializeMedia(scheme)) - { - loadURI(); - } - } - } - else if(initializeMedia(mMimeType)) - { - loadURI(); - } - else - { - LL_WARNS("Media") << "Couldn't navigate to: " << mMediaURL << " as there is no media type for: " << mMimeType << LL_ENDL; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::navigateStop() -{ - if(mMediaSource) - { - mMediaSource->browse_stop(); - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::handleKeyHere(KEY key, MASK mask) -{ - bool result = false; - - if (mMediaSource) - { - // FIXME: THIS IS SO WRONG. - // Menu keys should be handled by the menu system and not passed to UI elements, but this is how LLTextEditor and LLLineEditor do it... - if( MASK_CONTROL & mask ) - { - result = true; - } - - if(!result) - { - - LLSD native_key_data = gViewerWindow->getWindow()->getNativeKeyData(); - - result = mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_DOWN ,key, mask, native_key_data); - // Since the viewer internal event dispatching doesn't give us key-up events, simulate one here. - (void)mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_UP ,key, mask, native_key_data); - } - } - - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::handleUnicodeCharHere(llwchar uni_char) -{ - bool result = false; - - if (mMediaSource) - { - // only accept 'printable' characters, sigh... - if (uni_char >= 32 // discard 'control' characters - && uni_char != 127) // SDL thinks this is 'delete' - yuck. - { - LLSD native_key_data = gViewerWindow->getWindow()->getNativeKeyData(); - - mMediaSource->textInput(wstring_to_utf8str(LLWString(1, uni_char)), gKeyboard->currentMask(FALSE), native_key_data); - } - } - - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::canNavigateForward() -{ - BOOL result = FALSE; - if (mMediaSource) - { - result = mMediaSource->getHistoryForwardAvailable(); - } - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::canNavigateBack() -{ - BOOL result = FALSE; - if (mMediaSource) - { - result = mMediaSource->getHistoryBackAvailable(); - } - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::update() -{ - if(mMediaSource == NULL) - { - if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) - { - // This media source should not be loaded. - } - else if(mPriority <= LLPluginClassMedia::PRIORITY_SLIDESHOW) - { - // Don't load new instances that are at PRIORITY_SLIDESHOW or below. They're just kept around to preserve state. - } - else if(mMimeTypeProbe != NULL) - { - // this media source is doing a MIME type probe -- don't try loading it again. - } - else - { - // This media may need to be loaded. - if(sMediaCreateTimer.hasExpired()) - { - LL_DEBUGS("PluginPriority") << this << ": creating media based on timer expiration" << LL_ENDL; - createMediaSource(); - sMediaCreateTimer.setTimerExpirySec(LLVIEWERMEDIA_CREATE_DELAY); - } - else - { - LL_DEBUGS("PluginPriority") << this << ": NOT creating media (waiting on timer)" << LL_ENDL; - } - } - } - else - { - updateVolume(); - - // If we didn't just create the impl, it may need to get cookie updates. - if(!sUpdatedCookies.empty()) - { - // TODO: Only send cookies to plugins that need them - mMediaSource->set_cookies(sUpdatedCookies); - } - } - - - if(mMediaSource == NULL) - { - return; - } - - // Make sure a navigate doesn't happen during the idle -- it can cause mMediaSource to get destroyed, which can cause a crash. - setNavigateSuspended(true); - - mMediaSource->idle(); - - setNavigateSuspended(false); - - if(mMediaSource == NULL) - { - return; - } - - if(mMediaSource->isPluginExited()) - { - resetPreviousMediaState(); - destroyMediaSource(); - return; - } - - if(!mMediaSource->textureValid()) - { - return; - } - - if(mSuspendUpdates || !mVisible) - { - return; - } - - LLViewerMediaTexture* placeholder_image = updatePlaceholderImage(); - - if(placeholder_image) - { - LLRect dirty_rect; - - // Since we're updating this texture, we know it's playing. Tell the texture to do its replacement magic so it gets rendered. - placeholder_image->setPlaying(TRUE); - - if(mMediaSource->getDirty(&dirty_rect)) - { - // Constrain the dirty rect to be inside the texture - S32 x_pos = llmax(dirty_rect.mLeft, 0); - S32 y_pos = llmax(dirty_rect.mBottom, 0); - S32 width = llmin(dirty_rect.mRight, placeholder_image->getWidth()) - x_pos; - S32 height = llmin(dirty_rect.mTop, placeholder_image->getHeight()) - y_pos; - - if(width > 0 && height > 0) - { - - U8* data = mMediaSource->getBitsData(); - - // Offset the pixels pointer to match x_pos and y_pos - data += ( x_pos * mMediaSource->getTextureDepth() * mMediaSource->getBitsWidth() ); - data += ( y_pos * mMediaSource->getTextureDepth() ); - - placeholder_image->setSubImage( - data, - mMediaSource->getBitsWidth(), - mMediaSource->getBitsHeight(), - x_pos, - y_pos, - width, - height); - - } - - mMediaSource->resetDirty(); - } - } -} - - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::updateImagesMediaStreams() -{ -} - - -////////////////////////////////////////////////////////////////////////////////////////// -LLViewerMediaTexture* LLViewerMediaImpl::updatePlaceholderImage() -{ - if(mTextureId.isNull()) - { - // The code that created this instance will read from the plugin's bits. - return NULL; - } - - LLViewerMediaTexture* placeholder_image = LLViewerTextureManager::getMediaTexture( mTextureId ); - - if (mNeedsNewTexture - || placeholder_image->getUseMipMaps() - || (placeholder_image->getWidth() != mMediaSource->getTextureWidth()) - || (placeholder_image->getHeight() != mMediaSource->getTextureHeight()) - || (mTextureUsedWidth != mMediaSource->getWidth()) - || (mTextureUsedHeight != mMediaSource->getHeight()) - ) - { - LL_DEBUGS("Media") << "initializing media placeholder" << LL_ENDL; - LL_DEBUGS("Media") << "movie image id " << mTextureId << LL_ENDL; - - int texture_width = mMediaSource->getTextureWidth(); - int texture_height = mMediaSource->getTextureHeight(); - int texture_depth = mMediaSource->getTextureDepth(); - - // MEDIAOPT: check to see if size actually changed before doing work - placeholder_image->destroyGLTexture(); - // MEDIAOPT: apparently just calling setUseMipMaps(FALSE) doesn't work? - placeholder_image->reinit(FALSE); // probably not needed - - // MEDIAOPT: seems insane that we actually have to make an imageraw then - // immediately discard it - LLPointer raw = new LLImageRaw(texture_width, texture_height, texture_depth); - // Clear the texture to the background color, ignoring alpha. - // convert background color channels from [0.0, 1.0] to [0, 255]; - raw->clear(int(mBackgroundColor.mV[VX] * 255.0f), int(mBackgroundColor.mV[VY] * 255.0f), int(mBackgroundColor.mV[VZ] * 255.0f), 0xff); - int discard_level = 0; - - // ask media source for correct GL image format constants - placeholder_image->setExplicitFormat(mMediaSource->getTextureFormatInternal(), - mMediaSource->getTextureFormatPrimary(), - mMediaSource->getTextureFormatType(), - mMediaSource->getTextureFormatSwapBytes()); - - placeholder_image->createGLTexture(discard_level, raw); - - // MEDIAOPT: set this dynamically on play/stop - // FIXME -// placeholder_image->mIsMediaTexture = true; - mNeedsNewTexture = false; - - // If the amount of the texture being drawn by the media goes down in either width or height, - // recreate the texture to avoid leaving parts of the old image behind. - mTextureUsedWidth = mMediaSource->getWidth(); - mTextureUsedHeight = mMediaSource->getHeight(); - } - - return placeholder_image; -} - - -////////////////////////////////////////////////////////////////////////////////////////// -LLUUID LLViewerMediaImpl::getMediaTextureID() const -{ - return mTextureId; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::setVisible(bool visible) -{ - mVisible = visible; - - if(mVisible) - { - if(mMediaSource && mMediaSource->isPluginExited()) - { - destroyMediaSource(); - } - - if(!mMediaSource) - { - createMediaSource(); - } - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::mouseCapture() -{ - gFocusMgr.setMouseCapture(this); -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::scaleMouse(S32 *mouse_x, S32 *mouse_y) -{ -#if 0 - S32 media_width, media_height; - S32 texture_width, texture_height; - getMediaSize( &media_width, &media_height ); - getTextureSize( &texture_width, &texture_height ); - S32 y_delta = texture_height - media_height; - - *mouse_y -= y_delta; -#endif -} - - - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::isMediaTimeBased() -{ - bool result = false; - - if(mMediaSource) - { - result = mMediaSource->pluginSupportsMediaTime(); - } - - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::isMediaPlaying() -{ - bool result = false; - - if(mMediaSource) - { - EMediaStatus status = mMediaSource->getStatus(); - if(status == MEDIA_PLAYING || status == MEDIA_LOADING) - result = true; - } - - return result; -} -////////////////////////////////////////////////////////////////////////////////////////// -bool LLViewerMediaImpl::isMediaPaused() -{ - bool result = false; - - if(mMediaSource) - { - if(mMediaSource->getStatus() == MEDIA_PAUSED) - result = true; - } - - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::hasMedia() const -{ - return mMediaSource != NULL; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -void LLViewerMediaImpl::resetPreviousMediaState() -{ - mPreviousMediaState = MEDIA_NONE; - mPreviousMediaTime = 0.0f; -} - - -////////////////////////////////////////////////////////////////////////////////////////// -// -void LLViewerMediaImpl::setDisabled(bool disabled, bool forcePlayOnEnable) -{ - if(mIsDisabled != disabled) - { - // Only do this on actual state transitions. - mIsDisabled = disabled; - - if(mIsDisabled) - { - // We just disabled this media. Clear all state. - unload(); - } - else - { - // We just (re)enabled this media. Do a navigate if auto-play is in order. - if(isAutoPlayable() || forcePlayOnEnable) - { - navigateTo(mMediaEntryURL, "", true, true); - } - } - - } -}; - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::isForcedUnloaded() const -{ - if(mIsMuted || mMediaSourceFailed || mIsDisabled) - { - return true; - } - - if(sInWorldMediaDisabled) - { - // When inworld media is disabled, all instances that aren't marked as "used in UI" will not be loaded. - if(!mUsedInUI) - { - return true; - } - } - - // If this media's class is not supposed to be shown, unload - if (!shouldShowBasedOnClass()) - { - return true; - } - - return false; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::isPlayable() const -{ - if(isForcedUnloaded()) - { - // All of the forced-unloaded criteria also imply not playable. - return false; - } - - if(hasMedia()) - { - // Anything that's already playing is, by definition, playable. - return true; - } - - if(!mMediaURL.empty()) - { - // If something has navigated the instance, it's ready to be played. - return true; - } - - return false; -} - -////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginClassMediaOwner::EMediaEvent event) -{ - bool pass_through = true; - switch(event) - { - case MEDIA_EVENT_CLICK_LINK_NOFOLLOW: - { - LL_DEBUGS("Media") << "MEDIA_EVENT_CLICK_LINK_NOFOLLOW, uri is: " << plugin->getClickURL() << LL_ENDL; - std::string url = plugin->getClickURL(); - std::string nav_type = plugin->getClickNavType(); - LLURLDispatcher::dispatch(url, nav_type, NULL, mTrustedBrowser); - } - break; - case MEDIA_EVENT_CLICK_LINK_HREF: - { - LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << plugin->getClickTarget() << "\", uri is " << plugin->getClickURL() << LL_ENDL; - }; - break; - case MEDIA_EVENT_PLUGIN_FAILED_LAUNCH: - { - // The plugin failed to load properly. Make sure the timer doesn't retry. - // TODO: maybe mark this plugin as not loadable somehow? - mMediaSourceFailed = true; - - // Reset the last known state of the media to defaults. - resetPreviousMediaState(); - - // TODO: may want a different message for this case? - LLSD args; - args["PLUGIN"] = LLMIMETypes::implType(mCurrentMimeType); - LLNotificationsUtil::add("MediaPluginFailed", args); - } - break; - - case MEDIA_EVENT_PLUGIN_FAILED: - { - // The plugin crashed. - mMediaSourceFailed = true; - - // Reset the last known state of the media to defaults. - resetPreviousMediaState(); - - LLSD args; - args["PLUGIN"] = LLMIMETypes::implType(mCurrentMimeType); - // SJB: This is getting called every frame if the plugin fails to load, continuously respawining the alert! - //LLNotificationsUtil::add("MediaPluginFailed", args); - } - break; - - case MEDIA_EVENT_CURSOR_CHANGED: - { - LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << plugin->getCursorName() << LL_ENDL; - - std::string cursor = plugin->getCursorName(); - - if(cursor == "arrow") - mLastSetCursor = UI_CURSOR_ARROW; - else if(cursor == "ibeam") - mLastSetCursor = UI_CURSOR_IBEAM; - else if(cursor == "splith") - mLastSetCursor = UI_CURSOR_SIZEWE; - else if(cursor == "splitv") - mLastSetCursor = UI_CURSOR_SIZENS; - else if(cursor == "hand") - mLastSetCursor = UI_CURSOR_HAND; - else // for anything else, default to the arrow - mLastSetCursor = UI_CURSOR_ARROW; - } - break; - - case LLViewerMediaObserver::MEDIA_EVENT_NAVIGATE_BEGIN: - { - LL_DEBUGS("Media") << "MEDIA_EVENT_NAVIGATE_BEGIN, uri is: " << plugin->getNavigateURI() << LL_ENDL; - hideNotification(); - - if(getNavState() == MEDIANAVSTATE_SERVER_SENT) - { - setNavState(MEDIANAVSTATE_SERVER_BEGUN); - } - else - { - setNavState(MEDIANAVSTATE_BEGUN); - } - } - break; - - case LLViewerMediaObserver::MEDIA_EVENT_NAVIGATE_COMPLETE: - { - LL_DEBUGS("Media") << "MEDIA_EVENT_NAVIGATE_COMPLETE, uri is: " << plugin->getNavigateURI() << LL_ENDL; - - std::string url = plugin->getNavigateURI(); - if(getNavState() == MEDIANAVSTATE_BEGUN) - { - if(mCurrentMediaURL == url) - { - // This is a navigate that takes us to the same url as the previous navigate. - setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS); - } - else - { - mCurrentMediaURL = url; - setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED); - } - } - else if(getNavState() == MEDIANAVSTATE_SERVER_BEGUN) - { - mCurrentMediaURL = url; - setNavState(MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED); - } - else - { - // all other cases need to leave the state alone. - } - } - break; - - case LLViewerMediaObserver::MEDIA_EVENT_LOCATION_CHANGED: - { - LL_DEBUGS("Media") << "MEDIA_EVENT_LOCATION_CHANGED, uri is: " << plugin->getLocation() << LL_ENDL; - - std::string url = plugin->getLocation(); - - if(getNavState() == MEDIANAVSTATE_BEGUN) - { - if(mCurrentMediaURL == url) - { - // This is a navigate that takes us to the same url as the previous navigate. - setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS); - } - else - { - mCurrentMediaURL = url; - setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED); - } - } - else if(getNavState() == MEDIANAVSTATE_SERVER_BEGUN) - { - mCurrentMediaURL = url; - setNavState(MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED); - } - else - { - // Don't track redirects. - setNavState(MEDIANAVSTATE_NONE); - } - } - break; - - case LLViewerMediaObserver::MEDIA_EVENT_PICK_FILE_REQUEST: - { - // Display a file picker - std::string response; - - LLFilePicker& picker = LLFilePicker::instance(); - if (!picker.getOpenFile(LLFilePicker::FFLOAD_ALL)) - { - // The user didn't pick a file -- the empty response string will indicate this. - } - - response = picker.getFirstFile(); - - plugin->sendPickFileResponse(response); - } - break; - - - case LLViewerMediaObserver::MEDIA_EVENT_AUTH_REQUEST: - { - LLNotification::Params auth_request_params; - auth_request_params.name = "AuthRequest"; - - // pass in host name and realm for site (may be zero length but will always exist) - LLSD args; - LLURL raw_url( plugin->getAuthURL().c_str() ); - args["HOST_NAME"] = raw_url.getAuthority(); - args["REALM"] = plugin->getAuthRealm(); - auth_request_params.substitutions = args; - - auth_request_params.payload = LLSD().with("media_id", mTextureId); - auth_request_params.functor.function = boost::bind(&LLViewerMedia::onAuthSubmit, _1, _2); - LLNotifications::instance().add(auth_request_params); - }; - break; - - case LLViewerMediaObserver::MEDIA_EVENT_CLOSE_REQUEST: - { - std::string uuid = plugin->getClickUUID(); - - llinfos << "MEDIA_EVENT_CLOSE_REQUEST for uuid " << uuid << llendl; - - if(uuid.empty()) - { - // This close request is directed at this instance, let it fall through. - } - else - { - // This close request is directed at another instance - pass_through = false; - LLFloaterMediaBrowser::closeRequest(uuid); - LLFloaterWebContent::closeRequest(uuid); - } - } - break; - - case LLViewerMediaObserver::MEDIA_EVENT_GEOMETRY_CHANGE: - { - std::string uuid = plugin->getClickUUID(); - - llinfos << "MEDIA_EVENT_GEOMETRY_CHANGE for uuid " << uuid << llendl; - - if(uuid.empty()) - { - // This geometry change request is directed at this instance, let it fall through. - } - else - { - // This request is directed at another instance - pass_through = false; - LLFloaterMediaBrowser::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight()); - LLFloaterWebContent::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight()); - } - } - break; - - default: - break; - } - - if(pass_through) - { - // Just chain the event to observers. - emitEvent(plugin, event); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -void LLViewerMediaImpl::handleCookieSet(LLPluginClassMedia* self, const std::string &cookie) -{ - LLViewerMedia::getCookieStore()->setCookies(cookie); -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -void -LLViewerMediaImpl::cut() -{ - if (mMediaSource) - mMediaSource->cut(); -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -BOOL -LLViewerMediaImpl::canCut() const -{ - if (mMediaSource) - return mMediaSource->canCut(); - else - return FALSE; -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -void -LLViewerMediaImpl::copy() -{ - if (mMediaSource) - mMediaSource->copy(); -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -BOOL -LLViewerMediaImpl::canCopy() const -{ - if (mMediaSource) - return mMediaSource->canCopy(); - else - return FALSE; -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -void -LLViewerMediaImpl::paste() -{ - if (mMediaSource) - mMediaSource->paste(); -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -BOOL -LLViewerMediaImpl::canPaste() const -{ - if (mMediaSource) - return mMediaSource->canPaste(); - else - return FALSE; -} - -void LLViewerMediaImpl::setUpdated(BOOL updated) -{ - mIsUpdated = updated ; -} - -BOOL LLViewerMediaImpl::isUpdated() -{ - return mIsUpdated ; -} - -void LLViewerMediaImpl::calculateInterest() -{ - LLViewerMediaTexture* texture = LLViewerTextureManager::findMediaTexture( mTextureId ); - - if(texture != NULL) - { - mInterest = texture->getMaxVirtualSize(); - } - else - { - // This will be a relatively common case now, since it will always be true for unloaded media. - mInterest = 0.0f; - } - - // Calculate distance from the avatar, for use in the proximity calculation. - mProximityDistance = 0.0f; - mProximityCamera = 0.0f; - if(!mObjectList.empty()) - { - // Just use the first object in the list. We could go through the list and find the closest object, but this should work well enough. - std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; - LLVOVolume* objp = *iter ; - llassert_always(objp != NULL) ; - - // The distance calculation is invalid for HUD attachments -- leave both mProximityDistance and mProximityCamera at 0 for them. - if(!objp->isHUDAttachment()) - { - LLVector3d obj_global = objp->getPositionGlobal() ; - LLVector3d agent_global = gAgent.getPositionGlobal() ; - LLVector3d global_delta = agent_global - obj_global ; - mProximityDistance = global_delta.magVecSquared(); // use distance-squared because it's cheaper and sorts the same. - - LLVector3d camera_delta = gAgentCamera.getCameraPositionGlobal() - obj_global; - mProximityCamera = camera_delta.magVec(); - } - } - - if(mNeedsMuteCheck) - { - // Check all objects this instance is associated with, and those objects' owners, against the mute list - mIsMuted = false; - - std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; - for(; iter != mObjectList.end() ; ++iter) - { - LLVOVolume *obj = *iter; - llassert(obj); - if (!obj) continue; - if(LLMuteList::getInstance() && - LLMuteList::getInstance()->isMuted(obj->getID())) - { - mIsMuted = true; - } - else - { - // We won't have full permissions data for all objects. Attempt to mute objects when we can tell their owners are muted. - if (LLSelectMgr::getInstance()) - { - LLPermissions* obj_perm = LLSelectMgr::getInstance()->findObjectPermissions(obj); - if(obj_perm) - { - if(LLMuteList::getInstance() && - LLMuteList::getInstance()->isMuted(obj_perm->getOwner())) - mIsMuted = true; - } - } - } - } - - mNeedsMuteCheck = false; - } -} - -F64 LLViewerMediaImpl::getApproximateTextureInterest() -{ - F64 result = 0.0f; - - if(mMediaSource) - { - result = mMediaSource->getFullWidth(); - result *= mMediaSource->getFullHeight(); - } - else - { - // No media source is loaded -- all we have to go on is the texture size that has been set on the impl, if any. - result = mMediaWidth; - result *= mMediaHeight; - } - - return result; -} - -void LLViewerMediaImpl::setUsedInUI(bool used_in_ui) -{ - mUsedInUI = used_in_ui; - - // HACK: Force elements used in UI to load right away. - // This fixes some issues where UI code that uses the browser instance doesn't expect it to be unloaded. - if(mUsedInUI && (mPriority == LLPluginClassMedia::PRIORITY_UNLOADED)) - { - if(getVisible()) - { - setPriority(LLPluginClassMedia::PRIORITY_NORMAL); - } - else - { - setPriority(LLPluginClassMedia::PRIORITY_HIDDEN); - } - - createMediaSource(); - } -}; - -void LLViewerMediaImpl::setBackgroundColor(LLColor4 color) -{ - mBackgroundColor = color; - - if(mMediaSource) - { - mMediaSource->setBackgroundColor(mBackgroundColor); - } -}; - -F64 LLViewerMediaImpl::getCPUUsage() const -{ - F64 result = 0.0f; - - if(mMediaSource) - { - result = mMediaSource->getCPUUsage(); - } - - return result; -} - -void LLViewerMediaImpl::setPriority(LLPluginClassMedia::EPriority priority) -{ - if(mPriority != priority) - { - LL_DEBUGS("PluginPriority") - << "changing priority of media id " << mTextureId - << " from " << LLPluginClassMedia::priorityToString(mPriority) - << " to " << LLPluginClassMedia::priorityToString(priority) - << LL_ENDL; - } - - mPriority = priority; - - if(priority == LLPluginClassMedia::PRIORITY_UNLOADED) - { - if(mMediaSource) - { - // Need to unload the media source - - // First, save off previous media state - mPreviousMediaState = mMediaSource->getStatus(); - mPreviousMediaTime = mMediaSource->getCurrentTime(); - - destroyMediaSource(); - } - } - - if(mMediaSource) - { - mMediaSource->setPriority(mPriority); - } - - // NOTE: loading (or reloading) media sources whose priority has risen above PRIORITY_UNLOADED is done in update(). -} - -void LLViewerMediaImpl::setLowPrioritySizeLimit(int size) -{ - if(mMediaSource) - { - mMediaSource->setLowPrioritySizeLimit(size); - } -} - -void LLViewerMediaImpl::setNavState(EMediaNavState state) -{ - mMediaNavState = state; - - switch (state) - { - case MEDIANAVSTATE_NONE: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_NONE" << llendl; break; - case MEDIANAVSTATE_BEGUN: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_BEGUN" << llendl; break; - case MEDIANAVSTATE_FIRST_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_FIRST_LOCATION_CHANGED" << llendl; break; - case MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS" << llendl; break; - case MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED" << llendl; break; - case MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS" << llendl; break; - case MEDIANAVSTATE_SERVER_SENT: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_SENT" << llendl; break; - case MEDIANAVSTATE_SERVER_BEGUN: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_BEGUN" << llendl; break; - case MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED" << llendl; break; - case MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED" << llendl; break; - } -} - -void LLViewerMediaImpl::setNavigateSuspended(bool suspend) -{ - if(mNavigateSuspended != suspend) - { - mNavigateSuspended = suspend; - if(!suspend) - { - // We're coming out of suspend. If someone tried to do a navigate while suspended, do one now instead. - if(mNavigateSuspendedDeferred) - { - mNavigateSuspendedDeferred = false; - navigateInternal(); - } - } - } -} - -void LLViewerMediaImpl::cancelMimeTypeProbe() -{ - if(mMimeTypeProbe != NULL) - { - // There doesn't seem to be a way to actually cancel an outstanding request. - // Simulate it by telling the LLMimeDiscoveryResponder not to write back any results. - mMimeTypeProbe->cancelRequest(); - - // The above should already have set mMimeTypeProbe to NULL. - if(mMimeTypeProbe != NULL) - { - llerrs << "internal error: mMimeTypeProbe is not NULL after cancelling request." << llendl; - } - } -} - -void LLViewerMediaImpl::addObject(LLVOVolume* obj) -{ - std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; - for(; iter != mObjectList.end() ; ++iter) - { - if(*iter == obj) - { - return ; //already in the list. - } - } - - mObjectList.push_back(obj) ; - mNeedsMuteCheck = true; -} - -void LLViewerMediaImpl::removeObject(LLVOVolume* obj) -{ - mObjectList.remove(obj) ; - mNeedsMuteCheck = true; -} - -const std::list< LLVOVolume* >* LLViewerMediaImpl::getObjectList() const -{ - return &mObjectList ; -} - -LLVOVolume *LLViewerMediaImpl::getSomeObject() -{ - LLVOVolume *result = NULL; - - std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; - if(iter != mObjectList.end()) - { - result = *iter; - } - - return result; -} - -void LLViewerMediaImpl::setTextureID(LLUUID id) -{ - if(id != mTextureId) - { - if(mTextureId.notNull()) - { - // Remove this item's entry from the map - sViewerMediaTextureIDMap.erase(mTextureId); - } - - if(id.notNull()) - { - sViewerMediaTextureIDMap.insert(LLViewerMedia::impl_id_map::value_type(id, this)); - } - - mTextureId = id; - } -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::isAutoPlayable() const -{ - return (mMediaAutoPlay && - gSavedSettings.getBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING) && - gSavedSettings.getBOOL("MediaTentativeAutoPlay")); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::shouldShowBasedOnClass() const -{ - // If this is parcel media or in the UI, return true always - if (getUsedInUI() || isParcelMedia()) return true; - - bool attached_to_another_avatar = isAttachedToAnotherAvatar(); - bool inside_parcel = isInAgentParcel(); - - // llinfos << " hasFocus = " << hasFocus() << - // " others = " << (attached_to_another_avatar && gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING)) << - // " within = " << (inside_parcel && gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING)) << - // " outside = " << (!inside_parcel && gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING)) << llendl; - - // If it has focus, we should show it - // This is incorrect, and causes EXT-6750 (disabled attachment media still plays) -// if (hasFocus()) -// return true; - - // If it is attached to an avatar and the pref is off, we shouldn't show it - if (attached_to_another_avatar) - return gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING); - - if (inside_parcel) - return gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING); - else - return gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING); -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::isAttachedToAnotherAvatar() const -{ - bool result = false; - - std::list< LLVOVolume* >::const_iterator iter = mObjectList.begin(); - std::list< LLVOVolume* >::const_iterator end = mObjectList.end(); - for ( ; iter != end; iter++) - { - if (isObjectAttachedToAnotherAvatar(*iter)) - { - result = true; - break; - } - } - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -//static -bool LLViewerMediaImpl::isObjectAttachedToAnotherAvatar(LLVOVolume *obj) -{ - bool result = false; - LLXform *xform = obj; - // Walk up parent chain - while (NULL != xform) - { - LLViewerObject *object = dynamic_cast (xform); - if (NULL != object) - { - LLVOAvatar *avatar = object->asAvatar(); - if ((NULL != avatar) && (avatar != gAgentAvatarp)) - { - result = true; - break; - } - } - xform = xform->getParent(); - } - return result; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -bool LLViewerMediaImpl::isInAgentParcel() const -{ - bool result = false; - - std::list< LLVOVolume* >::const_iterator iter = mObjectList.begin(); - std::list< LLVOVolume* >::const_iterator end = mObjectList.end(); - for ( ; iter != end; iter++) - { - LLVOVolume *object = *iter; - if (LLViewerMediaImpl::isObjectInAgentParcel(object)) - { - result = true; - break; - } - } - return result; -} - -LLNotificationPtr LLViewerMediaImpl::getCurrentNotification() const -{ - return mNotification; -} - -////////////////////////////////////////////////////////////////////////////////////////// -// -// static -bool LLViewerMediaImpl::isObjectInAgentParcel(LLVOVolume *obj) -{ - return (LLViewerParcelMgr::getInstance()->inAgentParcel(obj->getPositionGlobal())); -} +/** + * @file llviewermedia.cpp + * @brief Client interface to the media engine + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llagent.h" +#include "llagentcamera.h" +#include "llviewermedia.h" +#include "llviewermediafocus.h" +#include "llmimetypes.h" +#include "llmediaentry.h" +#include "llversioninfo.h" +#include "llviewercontrol.h" +#include "llviewertexture.h" +#include "llviewerparcelmedia.h" +#include "llviewerparcelmgr.h" +#include "llviewertexturelist.h" +#include "llvovolume.h" +#include "llpluginclassmedia.h" +#include "llplugincookiestore.h" +#include "llviewerwindow.h" +#include "llfocusmgr.h" +#include "llcallbacklist.h" +#include "llparcel.h" +#include "llaudioengine.h" // for gAudiop +#include "llurldispatcher.h" +#include "llvoavatar.h" +#include "llvoavatarself.h" +#include "llviewerregion.h" +#include "llwebsharing.h" // For LLWebSharing::setOpenIDCookie(), *TODO: find a better way to do this! +#include "llfilepicker.h" +#include "llnotifications.h" +#include "lldir.h" +#include "llevent.h" // LLSimpleListener +#include "llnotificationsutil.h" +#include "lluuid.h" +#include "llkeyboard.h" +#include "llmutelist.h" +#include "llpanelprofile.h" +#include "llappviewer.h" +#include "lllogininstance.h" +//#include "llfirstuse.h" +#include "llwindow.h" + +#include "llfloatermediabrowser.h" // for handling window close requests and geometry change requests in media browser windows. +#include "llfloaterwebcontent.h" // for handling window close requests and geometry change requests in media browser windows. + +#include // for SkinFolder listener +#include + +/*static*/ const char* LLViewerMedia::AUTO_PLAY_MEDIA_SETTING = "ParcelMediaAutoPlayEnable"; +/*static*/ const char* LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING = "MediaShowOnOthers"; +/*static*/ const char* LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING = "MediaShowWithinParcel"; +/*static*/ const char* LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING = "MediaShowOutsideParcel"; + + +// Move this to its own file. + +LLViewerMediaEventEmitter::~LLViewerMediaEventEmitter() +{ + observerListType::iterator iter = mObservers.begin(); + + while( iter != mObservers.end() ) + { + LLViewerMediaObserver *self = *iter; + iter++; + remObserver(self); + } +} + +/////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaEventEmitter::addObserver( LLViewerMediaObserver* observer ) +{ + if ( ! observer ) + return false; + + if ( std::find( mObservers.begin(), mObservers.end(), observer ) != mObservers.end() ) + return false; + + mObservers.push_back( observer ); + observer->mEmitters.push_back( this ); + + return true; +} + +/////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaEventEmitter::remObserver( LLViewerMediaObserver* observer ) +{ + if ( ! observer ) + return false; + + mObservers.remove( observer ); + observer->mEmitters.remove(this); + + return true; +} + +/////////////////////////////////////////////////////////////////////////////// +// +void LLViewerMediaEventEmitter::emitEvent( LLPluginClassMedia* media, LLViewerMediaObserver::EMediaEvent event ) +{ + // Broadcast the event to any observers. + observerListType::iterator iter = mObservers.begin(); + while( iter != mObservers.end() ) + { + LLViewerMediaObserver *self = *iter; + ++iter; + self->handleMediaEvent( media, event ); + } +} + +// Move this to its own file. +LLViewerMediaObserver::~LLViewerMediaObserver() +{ + std::list::iterator iter = mEmitters.begin(); + + while( iter != mEmitters.end() ) + { + LLViewerMediaEventEmitter *self = *iter; + iter++; + self->remObserver( this ); + } +} + + +// Move this to its own file. +// helper class that tries to download a URL from a web site and calls a method +// on the Panel Land Media and to discover the MIME type +class LLMimeDiscoveryResponder : public LLHTTPClient::Responder +{ +LOG_CLASS(LLMimeDiscoveryResponder); +public: + LLMimeDiscoveryResponder( viewer_media_t media_impl) + : mMediaImpl(media_impl), + mInitialized(false) + { + if(mMediaImpl->mMimeTypeProbe != NULL) + { + llerrs << "impl already has an outstanding responder" << llendl; + } + + mMediaImpl->mMimeTypeProbe = this; + } + + ~LLMimeDiscoveryResponder() + { + disconnectOwner(); + } + + virtual void completedHeader(U32 status, const std::string& reason, const LLSD& content) + { + std::string media_type = content["content-type"].asString(); + std::string::size_type idx1 = media_type.find_first_of(";"); + std::string mime_type = media_type.substr(0, idx1); + + lldebugs << "status is " << status << ", media type \"" << media_type << "\"" << llendl; + + // 2xx status codes indicate success. + // Most 4xx status codes are successful enough for our purposes. + // 499 is the error code for host not found, timeout, etc. + // 500 means "Internal Server error" but we decided it's okay to + // accept this and go past it in the MIME type probe + // 302 means the resource can be found temporarily in a different place - added this for join.secondlife.com + // 499 is a code specifc to join.secondlife.com (????) apparently safe to ignore +// if( ((status >= 200) && (status < 300)) || +// ((status >= 400) && (status < 499)) || +// (status == 500) || +// (status == 302) || +// (status == 499) +// ) + // We now no longer check the error code returned from the probe. + // If we have a mime type, use it. If not, default to the web plugin and let it handle error reporting. + if(1) + { + // The probe was successful. + if(mime_type.empty()) + { + // Some sites don't return any content-type header at all. + // Treat an empty mime type as text/html. + mime_type = "text/html"; + } + + completeAny(status, mime_type); + } + else + { + llwarns << "responder failed with status " << status << ", reason " << reason << llendl; + + if(mMediaImpl) + { + mMediaImpl->mMediaSourceFailed = true; + } + } + + } + + void completeAny(U32 status, const std::string& mime_type) + { + // the call to initializeMedia may disconnect the responder, which will clear mMediaImpl. + // Make a local copy so we can call loadURI() afterwards. + LLViewerMediaImpl *impl = mMediaImpl; + + if(impl && !mInitialized && ! mime_type.empty()) + { + if(impl->initializeMedia(mime_type)) + { + mInitialized = true; + impl->loadURI(); + disconnectOwner(); + } + } + } + + void cancelRequest() + { + disconnectOwner(); + } + +private: + void disconnectOwner() + { + if(mMediaImpl) + { + if(mMediaImpl->mMimeTypeProbe != this) + { + llerrs << "internal error: mMediaImpl->mMimeTypeProbe != this" << llendl; + } + + mMediaImpl->mMimeTypeProbe = NULL; + } + mMediaImpl = NULL; + } + + +public: + LLViewerMediaImpl *mMediaImpl; + bool mInitialized; +}; + +class LLViewerMediaOpenIDResponder : public LLHTTPClient::Responder +{ +LOG_CLASS(LLViewerMediaOpenIDResponder); +public: + LLViewerMediaOpenIDResponder( ) + { + } + + ~LLViewerMediaOpenIDResponder() + { + } + + /* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content) + { + LL_DEBUGS("MediaAuth") << "status = " << status << ", reason = " << reason << LL_ENDL; + LL_DEBUGS("MediaAuth") << content << LL_ENDL; + std::string cookie = content["set-cookie"].asString(); + + LLViewerMedia::openIDCookieResponse(cookie); + } + + /* virtual */ void completedRaw( + U32 status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + // This is just here to disable the default behavior (attempting to parse the response as llsd). + // We don't care about the content of the response, only the set-cookie header. + } + +}; + +class LLViewerMediaWebProfileResponder : public LLHTTPClient::Responder +{ +LOG_CLASS(LLViewerMediaWebProfileResponder); +public: + LLViewerMediaWebProfileResponder(std::string host) + { + mHost = host; + } + + ~LLViewerMediaWebProfileResponder() + { + } + + /* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content) + { + LL_WARNS("MediaAuth") << "status = " << status << ", reason = " << reason << LL_ENDL; + LL_WARNS("MediaAuth") << content << LL_ENDL; + + std::string cookie = content["set-cookie"].asString(); + + LLViewerMedia::getCookieStore()->setCookiesFromHost(cookie, mHost); + } + + void completedRaw( + U32 status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + // This is just here to disable the default behavior (attempting to parse the response as llsd). + // We don't care about the content of the response, only the set-cookie header. + } + + std::string mHost; +}; + + +LLPluginCookieStore *LLViewerMedia::sCookieStore = NULL; +LLURL LLViewerMedia::sOpenIDURL; +std::string LLViewerMedia::sOpenIDCookie; +LLPluginClassMedia* LLViewerMedia::sSpareBrowserMediaSource = NULL; +static LLViewerMedia::impl_list sViewerMediaImplList; +static LLViewerMedia::impl_id_map sViewerMediaTextureIDMap; +static LLTimer sMediaCreateTimer; +static const F32 LLVIEWERMEDIA_CREATE_DELAY = 1.0f; +static F32 sGlobalVolume = 1.0f; +static F64 sLowestLoadableImplInterest = 0.0f; +static bool sAnyMediaShowing = false; +static boost::signals2::connection sTeleportFinishConnection; +static std::string sUpdatedCookies; +static const char *PLUGIN_COOKIE_FILE_NAME = "plugin_cookies.txt"; + +////////////////////////////////////////////////////////////////////////////////////////// +static void add_media_impl(LLViewerMediaImpl* media) +{ + sViewerMediaImplList.push_back(media); +} + +////////////////////////////////////////////////////////////////////////////////////////// +static void remove_media_impl(LLViewerMediaImpl* media) +{ + LLViewerMedia::impl_list::iterator iter = sViewerMediaImplList.begin(); + LLViewerMedia::impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end; iter++) + { + if(media == *iter) + { + sViewerMediaImplList.erase(iter); + return; + } + } +} + +class LLViewerMediaMuteListObserver : public LLMuteListObserver +{ + /* virtual */ void onChange() { LLViewerMedia::muteListChanged();} +}; + +static LLViewerMediaMuteListObserver sViewerMediaMuteListObserver; +static bool sViewerMediaMuteListObserverInitialized = false; +static bool sInWorldMediaDisabled = false; + + +////////////////////////////////////////////////////////////////////////////////////////// +// LLViewerMedia + +////////////////////////////////////////////////////////////////////////////////////////// +// static +viewer_media_t LLViewerMedia::newMediaImpl( + const LLUUID& texture_id, + S32 media_width, + S32 media_height, + U8 media_auto_scale, + U8 media_loop) +{ + LLViewerMediaImpl* media_impl = getMediaImplFromTextureID(texture_id); + if(media_impl == NULL || texture_id.isNull()) + { + // Create the media impl + media_impl = new LLViewerMediaImpl(texture_id, media_width, media_height, media_auto_scale, media_loop); + } + else + { + media_impl->unload(); + media_impl->setTextureID(texture_id); + media_impl->mMediaWidth = media_width; + media_impl->mMediaHeight = media_height; + media_impl->mMediaAutoScale = media_auto_scale; + media_impl->mMediaLoop = media_loop; + } + + return media_impl; +} + +viewer_media_t LLViewerMedia::updateMediaImpl(LLMediaEntry* media_entry, const std::string& previous_url, bool update_from_self) +{ + // Try to find media with the same media ID + viewer_media_t media_impl = getMediaImplFromTextureID(media_entry->getMediaID()); + + lldebugs << "called, current URL is \"" << media_entry->getCurrentURL() + << "\", previous URL is \"" << previous_url + << "\", update_from_self is " << (update_from_self?"true":"false") + << llendl; + + bool was_loaded = false; + bool needs_navigate = false; + + if(media_impl) + { + was_loaded = media_impl->hasMedia(); + + media_impl->setHomeURL(media_entry->getHomeURL()); + + media_impl->mMediaAutoScale = media_entry->getAutoScale(); + media_impl->mMediaLoop = media_entry->getAutoLoop(); + media_impl->mMediaWidth = media_entry->getWidthPixels(); + media_impl->mMediaHeight = media_entry->getHeightPixels(); + media_impl->mMediaAutoPlay = media_entry->getAutoPlay(); + media_impl->mMediaEntryURL = media_entry->getCurrentURL(); + if (media_impl->mMediaSource) + { + media_impl->mMediaSource->setAutoScale(media_impl->mMediaAutoScale); + media_impl->mMediaSource->setLoop(media_impl->mMediaLoop); + media_impl->mMediaSource->setSize(media_entry->getWidthPixels(), media_entry->getHeightPixels()); + } + + bool url_changed = (media_impl->mMediaEntryURL != previous_url); + if(media_impl->mMediaEntryURL.empty()) + { + if(url_changed) + { + // The current media URL is now empty. Unload the media source. + media_impl->unload(); + + lldebugs << "Unloading media instance (new current URL is empty)." << llendl; + } + } + else + { + // The current media URL is not empty. + // If (the media was already loaded OR the media was set to autoplay) AND this update didn't come from this agent, + // do a navigate. + bool auto_play = media_impl->isAutoPlayable(); + if((was_loaded || auto_play) && !update_from_self) + { + needs_navigate = url_changed; + } + + lldebugs << "was_loaded is " << (was_loaded?"true":"false") + << ", auto_play is " << (auto_play?"true":"false") + << ", needs_navigate is " << (needs_navigate?"true":"false") << llendl; + } + } + else + { + media_impl = newMediaImpl( + media_entry->getMediaID(), + media_entry->getWidthPixels(), + media_entry->getHeightPixels(), + media_entry->getAutoScale(), + media_entry->getAutoLoop()); + + media_impl->setHomeURL(media_entry->getHomeURL()); + media_impl->mMediaAutoPlay = media_entry->getAutoPlay(); + media_impl->mMediaEntryURL = media_entry->getCurrentURL(); + if(media_impl->isAutoPlayable()) + { + needs_navigate = true; + } + } + + if(media_impl) + { + if(needs_navigate) + { + media_impl->navigateTo(media_impl->mMediaEntryURL, "", true, true); + lldebugs << "navigating to URL " << media_impl->mMediaEntryURL << llendl; + } + else if(!media_impl->mMediaURL.empty() && (media_impl->mMediaURL != media_impl->mMediaEntryURL)) + { + // If we already have a non-empty media URL set and we aren't doing a navigate, update the media URL to match the media entry. + media_impl->mMediaURL = media_impl->mMediaEntryURL; + + // If this causes a navigate at some point (such as after a reload), it should be considered server-driven so it isn't broadcast. + media_impl->mNavigateServerRequest = true; + + lldebugs << "updating URL in the media impl to " << media_impl->mMediaEntryURL << llendl; + } + } + + return media_impl; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +LLViewerMediaImpl* LLViewerMedia::getMediaImplFromTextureID(const LLUUID& texture_id) +{ + LLViewerMediaImpl* result = NULL; + + // Look up the texture ID in the texture id->impl map. + impl_id_map::iterator iter = sViewerMediaTextureIDMap.find(texture_id); + if(iter != sViewerMediaTextureIDMap.end()) + { + result = iter->second; + } + + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +std::string LLViewerMedia::getCurrentUserAgent() +{ + // Don't use user-visible string to avoid + // punctuation and strange characters. + std::string skin_name = gSavedSettings.getString("SkinCurrent"); + + // Just in case we need to check browser differences in A/B test + // builds. + std::string channel = LLVersionInfo::getChannel(); + + // append our magic version number string to the browser user agent id + // See the HTTP 1.0 and 1.1 specifications for allowed formats: + // http://www.ietf.org/rfc/rfc1945.txt section 10.15 + // http://www.ietf.org/rfc/rfc2068.txt section 3.8 + // This was also helpful: + // http://www.mozilla.org/build/revised-user-agent-strings.html + std::ostringstream codec; + codec << "SecondLife/"; + codec << LLVersionInfo::getVersion(); + codec << " (" << channel << "; " << skin_name << " skin)"; + llinfos << codec.str() << llendl; + + return codec.str(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::updateBrowserUserAgent() +{ + std::string user_agent = getCurrentUserAgent(); + + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource && pimpl->mMediaSource->pluginSupportsMediaBrowser()) + { + pimpl->mMediaSource->setBrowserUserAgent(user_agent); + } + } + +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::handleSkinCurrentChanged(const LLSD& /*newvalue*/) +{ + // gSavedSettings is already updated when this function is called. + updateBrowserUserAgent(); + return true; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::textureHasMedia(const LLUUID& texture_id) +{ + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->getMediaTextureID() == texture_id) + { + return true; + } + } + return false; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setVolume(F32 volume) +{ + if(volume != sGlobalVolume) + { + sGlobalVolume = volume; + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + pimpl->updateVolume(); + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +F32 LLViewerMedia::getVolume() +{ + return sGlobalVolume; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::muteListChanged() +{ + // When the mute list changes, we need to check mute status on all impls. + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + pimpl->mNeedsMuteCheck = true; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setInWorldMediaDisabled(bool disabled) +{ + sInWorldMediaDisabled = disabled; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::getInWorldMediaDisabled() +{ + return sInWorldMediaDisabled; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::isInterestingEnough(const LLVOVolume *object, const F64 &object_interest) +{ + bool result = false; + + if (NULL == object) + { + result = false; + } + // Focused? Then it is interesting! + else if (LLViewerMediaFocus::getInstance()->getFocusedObjectID() == object->getID()) + { + result = true; + } + // Selected? Then it is interesting! + // XXX Sadly, 'contains()' doesn't take a const :( + else if (LLSelectMgr::getInstance()->getSelection()->contains(const_cast(object))) + { + result = true; + } + else + { + lldebugs << "object interest = " << object_interest << ", lowest loadable = " << sLowestLoadableImplInterest << llendl; + if(object_interest >= sLowestLoadableImplInterest) + result = true; + } + + return result; +} + +LLViewerMedia::impl_list &LLViewerMedia::getPriorityList() +{ + return sViewerMediaImplList; +} + +// This is the predicate function used to sort sViewerMediaImplList by priority. +bool LLViewerMedia::priorityComparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2) +{ + if(i1->isForcedUnloaded() && !i2->isForcedUnloaded()) + { + // Muted or failed items always go to the end of the list, period. + return false; + } + else if(i2->isForcedUnloaded() && !i1->isForcedUnloaded()) + { + // Muted or failed items always go to the end of the list, period. + return true; + } + else if(i1->hasFocus()) + { + // The item with user focus always comes to the front of the list, period. + return true; + } + else if(i2->hasFocus()) + { + // The item with user focus always comes to the front of the list, period. + return false; + } + else if(i1->isParcelMedia()) + { + // The parcel media impl sorts above all other inworld media, unless one has focus. + return true; + } + else if(i2->isParcelMedia()) + { + // The parcel media impl sorts above all other inworld media, unless one has focus. + return false; + } + else if(i1->getUsedInUI() && !i2->getUsedInUI()) + { + // i1 is a UI element, i2 is not. This makes i1 "less than" i2, so it sorts earlier in our list. + return true; + } + else if(i2->getUsedInUI() && !i1->getUsedInUI()) + { + // i2 is a UI element, i1 is not. This makes i2 "less than" i1, so it sorts earlier in our list. + return false; + } + else if(i1->isPlayable() && !i2->isPlayable()) + { + // Playable items sort above ones that wouldn't play even if they got high enough priority + return true; + } + else if(!i1->isPlayable() && i2->isPlayable()) + { + // Playable items sort above ones that wouldn't play even if they got high enough priority + return false; + } + else if(i1->getInterest() == i2->getInterest()) + { + // Generally this will mean both objects have zero interest. In this case, sort on distance. + return (i1->getProximityDistance() < i2->getProximityDistance()); + } + else + { + // The object with the larger interest value should be earlier in the list, so we reverse the sense of the comparison here. + return (i1->getInterest() > i2->getInterest()); + } +} + +static bool proximity_comparitor(const LLViewerMediaImpl* i1, const LLViewerMediaImpl* i2) +{ + if(i1->getProximityDistance() < i2->getProximityDistance()) + { + return true; + } + else if(i1->getProximityDistance() > i2->getProximityDistance()) + { + return false; + } + else + { + // Both objects have the same distance. This most likely means they're two faces of the same object. + // They may also be faces on different objects with exactly the same distance (like HUD objects). + // We don't actually care what the sort order is for this case, as long as it's stable and doesn't change when you enable/disable media. + // Comparing the impl pointers gives a completely arbitrary ordering, but it will be stable. + return (i1 < i2); + } +} + +static LLFastTimer::DeclareTimer FTM_MEDIA_UPDATE("Update Media"); + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::updateMedia(void *dummy_arg) +{ + LLFastTimer t1(FTM_MEDIA_UPDATE); + + // Enable/disable the plugin read thread + LLPluginProcessParent::setUseReadThread(gSavedSettings.getBOOL("PluginUseReadThread")); + + // HACK: we always try to keep a spare running webkit plugin around to improve launch times. + createSpareBrowserMediaSource(); + + sAnyMediaShowing = false; + sUpdatedCookies = getCookieStore()->getChangedCookies(); + if(!sUpdatedCookies.empty()) + { + lldebugs << "updated cookies will be sent to all loaded plugins: " << llendl; + lldebugs << sUpdatedCookies << llendl; + } + + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end;) + { + LLViewerMediaImpl* pimpl = *iter++; + pimpl->update(); + pimpl->calculateInterest(); + } + + // Let the spare media source actually launch + if(sSpareBrowserMediaSource) + { + sSpareBrowserMediaSource->idle(); + } + + // Sort the static instance list using our interest criteria + sViewerMediaImplList.sort(priorityComparitor); + + // Go through the list again and adjust according to priority. + iter = sViewerMediaImplList.begin(); + end = sViewerMediaImplList.end(); + + F64 total_cpu = 0.0f; + int impl_count_total = 0; + int impl_count_interest_low = 0; + int impl_count_interest_normal = 0; + + std::vector proximity_order; + + bool inworld_media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia"); + bool inworld_audio_enabled = gSavedSettings.getBOOL("AudioStreamingMusic"); + U32 max_instances = gSavedSettings.getU32("PluginInstancesTotal"); + U32 max_normal = gSavedSettings.getU32("PluginInstancesNormal"); + U32 max_low = gSavedSettings.getU32("PluginInstancesLow"); + F32 max_cpu = gSavedSettings.getF32("PluginInstancesCPULimit"); + // Setting max_cpu to 0.0 disables CPU usage checking. + bool check_cpu_usage = (max_cpu != 0.0f); + + LLViewerMediaImpl* lowest_interest_loadable = NULL; + + // Notes on tweakable params: + // max_instances must be set high enough to allow the various instances used in the UI (for the help browser, search, etc.) to be loaded. + // If max_normal + max_low is less than max_instances, things will tend to get unloaded instead of being set to slideshow. + + for(; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + + LLPluginClassMedia::EPriority new_priority = LLPluginClassMedia::PRIORITY_NORMAL; + + if(pimpl->isForcedUnloaded() || (impl_count_total >= (int)max_instances)) + { + // Never load muted or failed impls. + // Hard limit on the number of instances that will be loaded at one time + new_priority = LLPluginClassMedia::PRIORITY_UNLOADED; + } + else if(!pimpl->getVisible()) + { + new_priority = LLPluginClassMedia::PRIORITY_HIDDEN; + } + else if(pimpl->hasFocus()) + { + new_priority = LLPluginClassMedia::PRIORITY_HIGH; + impl_count_interest_normal++; // count this against the count of "normal" instances for priority purposes + } + else if(pimpl->getUsedInUI()) + { + new_priority = LLPluginClassMedia::PRIORITY_NORMAL; + impl_count_interest_normal++; + } + else if(pimpl->isParcelMedia()) + { + new_priority = LLPluginClassMedia::PRIORITY_NORMAL; + impl_count_interest_normal++; + } + else + { + // Look at interest and CPU usage for instances that aren't in any of the above states. + + // Heuristic -- if the media texture's approximate screen area is less than 1/4 of the native area of the texture, + // turn it down to low instead of normal. This may downsample for plugins that support it. + bool media_is_small = false; + F64 approximate_interest = pimpl->getApproximateTextureInterest(); + if(approximate_interest == 0.0f) + { + // this media has no current size, which probably means it's not loaded. + media_is_small = true; + } + else if(pimpl->getInterest() < (approximate_interest / 4)) + { + media_is_small = true; + } + + if(pimpl->getInterest() == 0.0f) + { + // This media is completely invisible, due to being outside the view frustrum or out of range. + new_priority = LLPluginClassMedia::PRIORITY_HIDDEN; + } + else if(check_cpu_usage && (total_cpu > max_cpu)) + { + // Higher priority plugins have already used up the CPU budget. Set remaining ones to slideshow priority. + new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW; + } + else if((impl_count_interest_normal < (int)max_normal) && !media_is_small) + { + // Up to max_normal inworld get normal priority + new_priority = LLPluginClassMedia::PRIORITY_NORMAL; + impl_count_interest_normal++; + } + else if (impl_count_interest_low + impl_count_interest_normal < (int)max_low + (int)max_normal) + { + // The next max_low inworld get turned down + new_priority = LLPluginClassMedia::PRIORITY_LOW; + impl_count_interest_low++; + + // Set the low priority size for downsampling to approximately the size the texture is displayed at. + { + F32 approximate_interest_dimension = fsqrtf(pimpl->getInterest()); + + pimpl->setLowPrioritySizeLimit(llround(approximate_interest_dimension)); + } + } + else + { + // Any additional impls (up to max_instances) get very infrequent time + new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW; + } + } + + if(!pimpl->getUsedInUI() && (new_priority != LLPluginClassMedia::PRIORITY_UNLOADED)) + { + // This is a loadable inworld impl -- the last one in the list in this class defines the lowest loadable interest. + lowest_interest_loadable = pimpl; + + impl_count_total++; + } + + // Overrides if the window is minimized or we lost focus (taking care + // not to accidentally "raise" the priority either) + if (!gViewerWindow->getActive() /* viewer window minimized? */ + && new_priority > LLPluginClassMedia::PRIORITY_HIDDEN) + { + new_priority = LLPluginClassMedia::PRIORITY_HIDDEN; + } + else if (!gFocusMgr.getAppHasFocus() /* viewer window lost focus? */ + && new_priority > LLPluginClassMedia::PRIORITY_LOW) + { + new_priority = LLPluginClassMedia::PRIORITY_LOW; + } + + if(!inworld_media_enabled) + { + // If inworld media is locked out, force all inworld media to stay unloaded. + if(!pimpl->getUsedInUI()) + { + new_priority = LLPluginClassMedia::PRIORITY_UNLOADED; + } + } + // update the audio stream here as well + if( !inworld_audio_enabled) + { + if(LLViewerMedia::isParcelAudioPlaying() && gAudiop && LLViewerMedia::hasParcelAudio()) + { + gAudiop->stopInternetStream(); + } + } + pimpl->setPriority(new_priority); + + if(pimpl->getUsedInUI()) + { + // Any impls used in the UI should not be in the proximity list. + pimpl->mProximity = -1; + } + else + { + proximity_order.push_back(pimpl); + } + + total_cpu += pimpl->getCPUUsage(); + + if (!pimpl->getUsedInUI() && pimpl->hasMedia()) + { + sAnyMediaShowing = true; + } + + } + + // Re-calculate this every time. + sLowestLoadableImplInterest = 0.0f; + + // Only do this calculation if we've hit the impl count limit -- up until that point we always need to load media data. + if(lowest_interest_loadable && (impl_count_total >= (int)max_instances)) + { + // Get the interest value of this impl's object for use by isInterestingEnough + LLVOVolume *object = lowest_interest_loadable->getSomeObject(); + if(object) + { + // NOTE: Don't use getMediaInterest() here. We want the pixel area, not the total media interest, + // so that we match up with the calculation done in LLMediaDataClient. + sLowestLoadableImplInterest = object->getPixelArea(); + } + } + + if(gSavedSettings.getBOOL("MediaPerformanceManagerDebug")) + { + // Give impls the same ordering as the priority list + // they're already in the right order for this. + } + else + { + // Use a distance-based sort for proximity values. + std::stable_sort(proximity_order.begin(), proximity_order.end(), proximity_comparitor); + } + + // Transfer the proximity order to the proximity fields in the objects. + for(int i = 0; i < (int)proximity_order.size(); i++) + { + proximity_order[i]->mProximity = i; + } + + LL_DEBUGS("PluginPriority") << "Total reported CPU usage is " << total_cpu << llendl; + +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::isAnyMediaShowing() +{ + return sAnyMediaShowing; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setAllMediaEnabled(bool val) +{ + // Set "tentative" autoplay first. We need to do this here or else + // re-enabling won't start up the media below. + gSavedSettings.setBOOL("MediaTentativeAutoPlay", val); + + // Then + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + + for(; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if (!pimpl->getUsedInUI()) + { + pimpl->setDisabled(!val); + } + } + + // Also do Parcel Media and Parcel Audio + if (val) + { + if (!LLViewerMedia::isParcelMediaPlaying() && LLViewerMedia::hasParcelMedia()) + { + LLViewerParcelMedia::play(LLViewerParcelMgr::getInstance()->getAgentParcel()); + } + + if (gSavedSettings.getBOOL("AudioStreamingMusic") && + !LLViewerMedia::isParcelAudioPlaying() && + gAudiop && + LLViewerMedia::hasParcelAudio()) + { + gAudiop->startInternetStream(LLViewerMedia::getParcelAudioURL()); + } + } + else { + // This actually unloads the impl, as opposed to "stop"ping the media + LLViewerParcelMedia::stop(); + if (gAudiop) gAudiop->stopInternetStream(); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::isParcelMediaPlaying() +{ + return (LLViewerMedia::hasParcelMedia() && LLViewerParcelMedia::getParcelMedia() && LLViewerParcelMedia::getParcelMedia()->hasMedia()); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::isParcelAudioPlaying() +{ + return (LLViewerMedia::hasParcelAudio() && gAudiop && LLAudioEngine::AUDIO_PLAYING == gAudiop->isInternetStreamPlaying()); +} + +void LLViewerMedia::onAuthSubmit(const LLSD& notification, const LLSD& response) +{ + LLViewerMediaImpl *impl = LLViewerMedia::getMediaImplFromTextureID(notification["payload"]["media_id"]); + if(impl) + { + LLPluginClassMedia* media = impl->getMediaPlugin(); + if(media) + { + if (response["ok"]) + { + media->sendAuthResponse(true, response["username"], response["password"]); + } + else + { + media->sendAuthResponse(false, "", ""); + } + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::clearAllCookies() +{ + // Clear all cookies for all plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->clear_cookies(); + } + } + + // Clear all cookies from the cookie store + getCookieStore()->setAllCookies(""); + + // FIXME: this may not be sufficient, since the on-disk cookie file won't get written until some browser instance exits cleanly. + // It also won't clear cookies for other accounts, or for any account if we're not logged in, and won't do anything at all if there are no webkit plugins loaded. + // Until such time as we can centralize cookie storage, the following hack should cover these cases: + + // HACK: Look for cookie files in all possible places and delete them. + // NOTE: this assumes knowledge of what happens inside the webkit plugin (it's what adds 'browser_profile' to the path and names the cookie file) + + // Places that cookie files can be: + // /browser_profile/cookies + // /first_last/browser_profile/cookies (note that there may be any number of these!) + // /first_last/plugin_cookies.txt (note that there may be any number of these!) + + std::string base_dir = gDirUtilp->getOSUserAppDir() + gDirUtilp->getDirDelimiter(); + std::string target; + std::string filename; + + lldebugs << "base dir = " << base_dir << llendl; + + // The non-logged-in version is easy + target = base_dir; + target += "browser_profile"; + target += gDirUtilp->getDirDelimiter(); + target += "cookies"; + lldebugs << "target = " << target << llendl; + if(LLFile::isfile(target)) + { + LLFile::remove(target); + } + + // the hard part: iterate over all user directories and delete the cookie file from each one + while(gDirUtilp->getNextFileInDir(base_dir, "*_*", filename)) + { + target = base_dir; + target += filename; + target += gDirUtilp->getDirDelimiter(); + target += "browser_profile"; + target += gDirUtilp->getDirDelimiter(); + target += "cookies"; + lldebugs << "target = " << target << llendl; + if(LLFile::isfile(target)) + { + LLFile::remove(target); + } + + // Other accounts may have new-style cookie files too -- delete them as well + target = base_dir; + target += filename; + target += gDirUtilp->getDirDelimiter(); + target += PLUGIN_COOKIE_FILE_NAME; + lldebugs << "target = " << target << llendl; + if(LLFile::isfile(target)) + { + LLFile::remove(target); + } + } + + // If we have an OpenID cookie, re-add it to the cookie store. + setOpenIDCookie(); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::clearAllCaches() +{ + // Clear all plugins' caches + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + pimpl->clearCache(); + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setCookiesEnabled(bool enabled) +{ + // Set the "cookies enabled" flag for all loaded plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->enable_cookies(enabled); + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int port) +{ + // Set the proxy config for all loaded plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->proxy_setup(enable, host, port); + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +///////////////////////////////////////////////////////////////////////////////////////// +// static +LLPluginCookieStore *LLViewerMedia::getCookieStore() +{ + if(sCookieStore == NULL) + { + sCookieStore = new LLPluginCookieStore; + } + + return sCookieStore; +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::loadCookieFile() +{ + // build filename for each user + std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PLUGIN_COOKIE_FILE_NAME); + + if (resolved_filename.empty()) + { + llinfos << "can't get path to plugin cookie file - probably not logged in yet." << llendl; + return; + } + + // open the file for reading + llifstream file(resolved_filename); + if (!file.is_open()) + { + llwarns << "can't load plugin cookies from file \"" << PLUGIN_COOKIE_FILE_NAME << "\"" << llendl; + return; + } + + getCookieStore()->readAllCookies(file, true); + + file.close(); + + // send the clear_cookies message to all loaded plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->clear_cookies(); + } + } + + // If we have an OpenID cookie, re-add it to the cookie store. + setOpenIDCookie(); +} + + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::saveCookieFile() +{ + // build filename for each user + std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PLUGIN_COOKIE_FILE_NAME); + + if (resolved_filename.empty()) + { + llinfos << "can't get path to plugin cookie file - probably not logged in yet." << llendl; + return; + } + + // open a file for writing + llofstream file (resolved_filename); + if (!file.is_open()) + { + llwarns << "can't open plugin cookie file \"" << PLUGIN_COOKIE_FILE_NAME << "\" for writing" << llendl; + return; + } + + getCookieStore()->writePersistentCookies(file); + + file.close(); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::addCookie(const std::string &name, const std::string &value, const std::string &domain, const LLDate &expires, const std::string &path, bool secure) +{ + std::stringstream cookie; + + cookie << name << "=" << LLPluginCookieStore::quoteString(value); + + if(expires.notNull()) + { + cookie << "; expires=" << expires.asRFC1123(); + } + + cookie << "; domain=" << domain; + + cookie << "; path=" << path; + + if(secure) + { + cookie << "; secure"; + } + + getCookieStore()->setCookies(cookie.str()); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::addSessionCookie(const std::string &name, const std::string &value, const std::string &domain, const std::string &path, bool secure) +{ + // A session cookie just has a NULL date. + addCookie(name, value, domain, LLDate(), path, secure); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::removeCookie(const std::string &name, const std::string &domain, const std::string &path ) +{ + // To remove a cookie, add one with the same name, domain, and path that expires in the past. + + addCookie(name, "", domain, LLDate(LLDate::now().secondsSinceEpoch() - 1.0), path); +} + + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setOpenIDCookie() +{ + if(!sOpenIDCookie.empty()) + { + // The LLURL can give me the 'authority', which is of the form: [username[:password]@]hostname[:port] + // We want just the hostname for the cookie code, but LLURL doesn't seem to have a way to extract that. + // We therefore do it here. + std::string authority = sOpenIDURL.mAuthority; + std::string::size_type host_start = authority.find('@'); + if(host_start == std::string::npos) + { + // no username/password + host_start = 0; + } + else + { + // Hostname starts after the @. + // (If the hostname part is empty, this may put host_start at the end of the string. In that case, it will end up passing through an empty hostname, which is correct.) + ++host_start; + } + std::string::size_type host_end = authority.rfind(':'); + if((host_end == std::string::npos) || (host_end < host_start)) + { + // no port + host_end = authority.size(); + } + + getCookieStore()->setCookiesFromHost(sOpenIDCookie, authority.substr(host_start, host_end - host_start)); + + // *HACK: Doing this here is nasty, find a better way. + LLWebSharing::instance().setOpenIDCookie(sOpenIDCookie); + + // Do a web profile get so we can store the cookie + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "*/*"; + headers["Cookie"] = sOpenIDCookie; + headers["User-Agent"] = getCurrentUserAgent(); + + std::string profile_url = getProfileURL(""); + LLURL raw_profile_url( profile_url.c_str() ); + + LLHTTPClient::get(profile_url, + new LLViewerMediaWebProfileResponder(raw_profile_url.getAuthority()), + headers); + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::openIDSetup(const std::string &openid_url, const std::string &openid_token) +{ + LL_DEBUGS("MediaAuth") << "url = \"" << openid_url << "\", token = \"" << openid_token << "\"" << LL_ENDL; + + // post the token to the url + // the responder will need to extract the cookie(s). + + // Save the OpenID URL for later -- we may need the host when adding the cookie. + sOpenIDURL.init(openid_url.c_str()); + + // We shouldn't ever do this twice, but just in case this code gets repurposed later, clear existing cookies. + sOpenIDCookie.clear(); + + LLSD headers = LLSD::emptyMap(); + // Keep LLHTTPClient from adding an "Accept: application/llsd+xml" header + headers["Accept"] = "*/*"; + // and use the expected content-type for a post, instead of the LLHTTPClient::postRaw() default of "application/octet-stream" + headers["Content-Type"] = "application/x-www-form-urlencoded"; + + // postRaw() takes ownership of the buffer and releases it later, so we need to allocate a new buffer here. + size_t size = openid_token.size(); + U8 *data = new U8[size]; + memcpy(data, openid_token.data(), size); + + LLHTTPClient::postRaw( + openid_url, + data, + size, + new LLViewerMediaOpenIDResponder(), + headers); + +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::openIDCookieResponse(const std::string &cookie) +{ + LL_DEBUGS("MediaAuth") << "Cookie received: \"" << cookie << "\"" << LL_ENDL; + + sOpenIDCookie += cookie; + + setOpenIDCookie(); +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::proxyWindowOpened(const std::string &target, const std::string &uuid) +{ + if(uuid.empty()) + return; + + for (impl_list::iterator iter = sViewerMediaImplList.begin(); iter != sViewerMediaImplList.end(); iter++) + { + if((*iter)->mMediaSource && (*iter)->mMediaSource->pluginSupportsMediaBrowser()) + { + (*iter)->mMediaSource->proxyWindowOpened(target, uuid); + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::proxyWindowClosed(const std::string &uuid) +{ + if(uuid.empty()) + return; + + for (impl_list::iterator iter = sViewerMediaImplList.begin(); iter != sViewerMediaImplList.end(); iter++) + { + if((*iter)->mMediaSource && (*iter)->mMediaSource->pluginSupportsMediaBrowser()) + { + (*iter)->mMediaSource->proxyWindowClosed(uuid); + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::createSpareBrowserMediaSource() +{ + // If we don't have a spare browser media source, create one. + // However, if PluginAttachDebuggerToPlugins is set then don't spawn a spare + // SLPlugin process in order to not be confused by an unrelated gdb terminal + // popping up at the moment we start a media plugin. + if (!sSpareBrowserMediaSource && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")) + { + // The null owner will keep the browser plugin from fully initializing + // (specifically, it keeps LLPluginClassMedia from negotiating a size change, + // which keeps MediaPluginWebkit::initBrowserWindow from doing anything until we have some necessary data, like the background color) + sSpareBrowserMediaSource = LLViewerMediaImpl::newSourceFromMediaType("text/html", NULL, 0, 0); + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +LLPluginClassMedia* LLViewerMedia::getSpareBrowserMediaSource() +{ + LLPluginClassMedia* result = sSpareBrowserMediaSource; + sSpareBrowserMediaSource = NULL; + return result; +}; + +bool LLViewerMedia::hasInWorldMedia() +{ + if (sInWorldMediaDisabled) return false; + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + // This should be quick, because there should be very few non-in-world-media impls + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if (!pimpl->getUsedInUI() && !pimpl->isParcelMedia()) + { + // Found an in-world media impl + return true; + } + } + return false; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::hasParcelMedia() +{ + return !LLViewerParcelMedia::getURL().empty(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +bool LLViewerMedia::hasParcelAudio() +{ + return !LLViewerMedia::getParcelAudioURL().empty(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +std::string LLViewerMedia::getParcelAudioURL() +{ + return LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::initClass() +{ + gIdleCallbacks.addFunction(LLViewerMedia::updateMedia, NULL); + sTeleportFinishConnection = LLViewerParcelMgr::getInstance()-> + setTeleportFinishedCallback(boost::bind(&LLViewerMedia::onTeleportFinished)); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::cleanupClass() +{ + gIdleCallbacks.deleteFunction(LLViewerMedia::updateMedia, NULL); + sTeleportFinishConnection.disconnect(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::onTeleportFinished() +{ + // On teleport, clear this setting (i.e. set it to true) + gSavedSettings.setBOOL("MediaTentativeAutoPlay", true); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// LLViewerMediaImpl +////////////////////////////////////////////////////////////////////////////////////////// +LLViewerMediaImpl::LLViewerMediaImpl( const LLUUID& texture_id, + S32 media_width, + S32 media_height, + U8 media_auto_scale, + U8 media_loop) +: + mMediaSource( NULL ), + mMovieImageHasMips(false), + mMediaWidth(media_width), + mMediaHeight(media_height), + mMediaAutoScale(media_auto_scale), + mMediaLoop(media_loop), + mNeedsNewTexture(true), + mTextureUsedWidth(0), + mTextureUsedHeight(0), + mSuspendUpdates(false), + mVisible(true), + mLastSetCursor( UI_CURSOR_ARROW ), + mMediaNavState( MEDIANAVSTATE_NONE ), + mInterest(0.0f), + mUsedInUI(false), + mHasFocus(false), + mPriority(LLPluginClassMedia::PRIORITY_UNLOADED), + mNavigateRediscoverType(false), + mNavigateServerRequest(false), + mMediaSourceFailed(false), + mRequestedVolume(1.0f), + mIsMuted(false), + mNeedsMuteCheck(false), + mPreviousMediaState(MEDIA_NONE), + mPreviousMediaTime(0.0f), + mIsDisabled(false), + mIsParcelMedia(false), + mProximity(-1), + mProximityDistance(0.0f), + mMimeTypeProbe(NULL), + mMediaAutoPlay(false), + mInNearbyMediaList(false), + mClearCache(false), + mBackgroundColor(LLColor4::white), + mNavigateSuspended(false), + mNavigateSuspendedDeferred(false), + mIsUpdated(false), + mTrustedBrowser(false) +{ + + // Set up the mute list observer if it hasn't been set up already. + if(!sViewerMediaMuteListObserverInitialized) + { + LLMuteList::getInstance()->addObserver(&sViewerMediaMuteListObserver); + sViewerMediaMuteListObserverInitialized = true; + } + + add_media_impl(this); + + setTextureID(texture_id); + + // connect this media_impl to the media texture, creating it if it doesn't exist.0 + // This is necessary because we need to be able to use getMaxVirtualSize() even if the media plugin is not loaded. + LLViewerMediaTexture* media_tex = LLViewerTextureManager::getMediaTexture(mTextureId); + if(media_tex) + { + media_tex->setMediaImpl(); + } + +} + +////////////////////////////////////////////////////////////////////////////////////////// +LLViewerMediaImpl::~LLViewerMediaImpl() +{ + destroyMediaSource(); + + LLViewerMediaTexture::removeMediaImplFromTexture(mTextureId) ; + + setTextureID(); + remove_media_impl(this); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::emitEvent(LLPluginClassMedia* plugin, LLViewerMediaObserver::EMediaEvent event) +{ + // Broadcast to observers using the superclass version + LLViewerMediaEventEmitter::emitEvent(plugin, event); + + // If this media is on one or more LLVOVolume objects, tell them about the event as well. + std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; + while(iter != mObjectList.end()) + { + LLVOVolume *self = *iter; + ++iter; + self->mediaEvent(this, plugin, event); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type) +{ + bool mimeTypeChanged = (mMimeType != mime_type); + bool pluginChanged = (LLMIMETypes::implType(mCurrentMimeType) != LLMIMETypes::implType(mime_type)); + + if(!mMediaSource || pluginChanged) + { + // We don't have a plugin at all, or the new mime type is handled by a different plugin than the old mime type. + (void)initializePlugin(mime_type); + } + else if(mimeTypeChanged) + { + // The same plugin should be able to handle the new media -- just update the stored mime type. + mMimeType = mime_type; + } + + return (mMediaSource != NULL); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::createMediaSource() +{ + if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) + { + // This media shouldn't be created yet. + return; + } + + if(! mMediaURL.empty()) + { + navigateInternal(); + } + else if(! mMimeType.empty()) + { + if (!initializeMedia(mMimeType)) + { + LL_WARNS("Media") << "Failed to initialize media for mime type " << mMimeType << LL_ENDL; + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::destroyMediaSource() +{ + mNeedsNewTexture = true; + + // Tell the viewer media texture it's no longer active + LLViewerMediaTexture* oldImage = LLViewerTextureManager::findMediaTexture( mTextureId ); + if (oldImage) + { + oldImage->setPlaying(FALSE) ; + } + + cancelMimeTypeProbe(); + + if(mMediaSource) + { + mMediaSource->setDeleteOK(true) ; + delete mMediaSource; + mMediaSource = NULL; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::setMediaType(const std::string& media_type) +{ + mMimeType = media_type; +} + +////////////////////////////////////////////////////////////////////////////////////////// +/*static*/ +LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_type, LLPluginClassMediaOwner *owner /* may be NULL */, S32 default_width, S32 default_height, const std::string target) +{ + std::string plugin_basename = LLMIMETypes::implType(media_type); + LLPluginClassMedia* media_source = NULL; + + // HACK: we always try to keep a spare running webkit plugin around to improve launch times. + // If a spare was already created before PluginAttachDebuggerToPlugins was set, don't use it. + if(plugin_basename == "media_plugin_webkit" && !gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")) + { + media_source = LLViewerMedia::getSpareBrowserMediaSource(); + if(media_source) + { + media_source->setOwner(owner); + media_source->setTarget(target); + media_source->setSize(default_width, default_height); + + return media_source; + } + } + + if(plugin_basename.empty()) + { + LL_WARNS("Media") << "Couldn't find plugin for media type " << media_type << LL_ENDL; + } + else + { + std::string launcher_name = gDirUtilp->getLLPluginLauncher(); + std::string plugin_name = gDirUtilp->getLLPluginFilename(plugin_basename); + std::string user_data_path = gDirUtilp->getOSUserAppDir(); + user_data_path += gDirUtilp->getDirDelimiter(); + + // Fix for EXT-5960 - make browser profile specific to user (cache, cookies etc.) + // If the linden username returned is blank, that can only mean we are + // at the login page displaying login Web page or Web browser test via Develop menu. + // In this case we just use whatever gDirUtilp->getOSUserAppDir() gives us (this + // is what we always used before this change) + std::string linden_user_dir = gDirUtilp->getLindenUserDir(); + if ( ! linden_user_dir.empty() ) + { + // gDirUtilp->getLindenUserDir() is whole path, not just Linden name + user_data_path = linden_user_dir; + user_data_path += gDirUtilp->getDirDelimiter(); + }; + + // See if the plugin executable exists + llstat s; + if(LLFile::stat(launcher_name, &s)) + { + LL_WARNS("Media") << "Couldn't find launcher at " << launcher_name << LL_ENDL; + } + else if(LLFile::stat(plugin_name, &s)) + { + LL_WARNS("Media") << "Couldn't find plugin at " << plugin_name << LL_ENDL; + } + else + { + media_source = new LLPluginClassMedia(owner); + media_source->setSize(default_width, default_height); + media_source->setUserDataPath(user_data_path); + media_source->setLanguageCode(LLUI::getLanguage()); + + // collect 'cookies enabled' setting from prefs and send to embedded browser + bool cookies_enabled = gSavedSettings.getBOOL( "CookiesEnabled" ); + media_source->enable_cookies( cookies_enabled ); + + // collect 'plugins enabled' setting from prefs and send to embedded browser + bool plugins_enabled = gSavedSettings.getBOOL( "BrowserPluginsEnabled" ); + media_source->setPluginsEnabled( plugins_enabled ); + + // collect 'javascript enabled' setting from prefs and send to embedded browser + bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" ); + media_source->setJavascriptEnabled( javascript_enabled ); + + media_source->setTarget(target); + + const std::string plugin_dir = gDirUtilp->getLLPluginDir(); + if (media_source->init(launcher_name, plugin_dir, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) + { + return media_source; + } + else + { + LL_WARNS("Media") << "Failed to init plugin. Destroying." << LL_ENDL; + delete media_source; + } + } + } + + LL_WARNS("Plugin") << "plugin intialization failed for mime type: " << media_type << LL_ENDL; + LLSD args; + args["MIME_TYPE"] = media_type; + LLNotificationsUtil::add("NoPlugin", args); + + return NULL; +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::initializePlugin(const std::string& media_type) +{ + if(mMediaSource) + { + // Save the previous media source's last set size before destroying it. + mMediaWidth = mMediaSource->getSetWidth(); + mMediaHeight = mMediaSource->getSetHeight(); + } + + // Always delete the old media impl first. + destroyMediaSource(); + + // and unconditionally set the mime type + mMimeType = media_type; + + if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) + { + // This impl should not be loaded at this time. + LL_DEBUGS("PluginPriority") << this << "Not loading (PRIORITY_UNLOADED)" << LL_ENDL; + + return false; + } + + // If we got here, we want to ignore previous init failures. + mMediaSourceFailed = false; + + // Save the MIME type that really caused the plugin to load + mCurrentMimeType = mMimeType; + + LLPluginClassMedia* media_source = newSourceFromMediaType(mMimeType, this, mMediaWidth, mMediaHeight, mTarget); + + if (media_source) + { + media_source->setDisableTimeout(gSavedSettings.getBOOL("DebugPluginDisableTimeout")); + media_source->setLoop(mMediaLoop); + media_source->setAutoScale(mMediaAutoScale); + media_source->setBrowserUserAgent(LLViewerMedia::getCurrentUserAgent()); + media_source->focus(mHasFocus); + media_source->setBackgroundColor(mBackgroundColor); + + if(gSavedSettings.getBOOL("BrowserIgnoreSSLCertErrors")) + { + media_source->ignore_ssl_cert_errors(true); + } + + // the correct way to deal with certs it to load ours from CA.pem and append them to the ones + // Qt/WebKit loads from your system location. + // Note: This needs the new CA.pem file with the Equifax Secure Certificate Authority + // cert at the bottom: (MIIDIDCCAomgAwIBAgIENd70zzANBg) + std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); + media_source->addCertificateFilePath( ca_path ); + + media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); + + if(mClearCache) + { + mClearCache = false; + media_source->clear_cache(); + } + + // TODO: Only send cookies to plugins that need them + // Ideally, the plugin should tell us whether it handles cookies or not -- either via the init response or through a separate message. + // Due to the ordering of messages, it's possible we wouldn't get that information back in time to send cookies before sending a navigate message, + // which could cause odd race conditions. + std::string all_cookies = LLViewerMedia::getCookieStore()->getAllCookies(); + lldebugs << "setting cookies: " << all_cookies << llendl; + if(!all_cookies.empty()) + { + media_source->set_cookies(all_cookies); + } + + mMediaSource = media_source; + mMediaSource->setDeleteOK(false) ; + updateVolume(); + + return true; + } + + // Make sure the timer doesn't try re-initing this plugin repeatedly until something else changes. + mMediaSourceFailed = true; + + return false; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::loadURI() +{ + if(mMediaSource) + { + // trim whitespace from front and back of URL - fixes EXT-5363 + LLStringUtil::trim( mMediaURL ); + + // *HACK: we don't know if the URI coming in is properly escaped + // (the contract doesn't specify whether it is escaped or not. + // but LLQtWebKit expects it to be, so we do our best to encode + // special characters) + // The strings below were taken right from http://www.ietf.org/rfc/rfc1738.txt + // Note especially that '%' and '/' are there. + std::string uri = LLURI::escape(mMediaURL, + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789" + "$-_.+" + "!*'()," + "{}|\\^~[]`" + "<>#%" + ";/?:@&=", + false); + llinfos << "Asking media source to load URI: " << uri << llendl; + + mMediaSource->loadURI( uri ); + + // A non-zero mPreviousMediaTime means that either this media was previously unloaded by the priority code while playing/paused, + // or a seek happened before the media loaded. In either case, seek to the saved time. + if(mPreviousMediaTime != 0.0f) + { + seek(mPreviousMediaTime); + } + + if(mPreviousMediaState == MEDIA_PLAYING) + { + // This media was playing before this instance was unloaded. + start(); + } + else if(mPreviousMediaState == MEDIA_PAUSED) + { + // This media was paused before this instance was unloaded. + pause(); + } + else + { + // No relevant previous media play state -- if we're loading the URL, we want to start playing. + start(); + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::setSize(int width, int height) +{ + mMediaWidth = width; + mMediaHeight = height; + if(mMediaSource) + { + mMediaSource->setSize(width, height); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::showNotification(LLNotificationPtr notify) +{ + mNotification = notify; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::hideNotification() +{ + mNotification.reset(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::play() +{ + // If the media source isn't there, try to initialize it and load an URL. + if(mMediaSource == NULL) + { + if(!initializeMedia(mMimeType)) + { + // This may be the case where the plugin's priority is PRIORITY_UNLOADED + return; + } + + // Only do this if the media source was just loaded. + loadURI(); + } + + // always start the media + start(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::stop() +{ + if(mMediaSource) + { + mMediaSource->stop(); + // destroyMediaSource(); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::pause() +{ + if(mMediaSource) + { + mMediaSource->pause(); + } + else + { + mPreviousMediaState = MEDIA_PAUSED; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::start() +{ + if(mMediaSource) + { + mMediaSource->start(); + } + else + { + mPreviousMediaState = MEDIA_PLAYING; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::seek(F32 time) +{ + if(mMediaSource) + { + mMediaSource->seek(time); + } + else + { + // Save the seek time to be set when the media is loaded. + mPreviousMediaTime = time; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::skipBack(F32 step_scale) +{ + if(mMediaSource) + { + if(mMediaSource->pluginSupportsMediaTime()) + { + F64 back_step = mMediaSource->getCurrentTime() - (mMediaSource->getDuration()*step_scale); + if(back_step < 0.0) + { + back_step = 0.0; + } + mMediaSource->seek(back_step); + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::skipForward(F32 step_scale) +{ + if(mMediaSource) + { + if(mMediaSource->pluginSupportsMediaTime()) + { + F64 forward_step = mMediaSource->getCurrentTime() + (mMediaSource->getDuration()*step_scale); + if(forward_step > mMediaSource->getDuration()) + { + forward_step = mMediaSource->getDuration(); + } + mMediaSource->seek(forward_step); + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::setVolume(F32 volume) +{ + mRequestedVolume = volume; + updateVolume(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::updateVolume() +{ + if(mMediaSource) + { + // always scale the volume by the global media volume + F32 volume = mRequestedVolume * LLViewerMedia::getVolume(); + + if (mProximityCamera > 0) + { + if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMax")) + { + volume = 0; + } + else if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMin")) + { + // attenuated_volume = 1 / (roll_off_rate * (d - min))^2 + // the +1 is there so that for distance 0 the volume stays the same + F64 adjusted_distance = mProximityCamera - gSavedSettings.getF32("MediaRollOffMin"); + F64 attenuation = 1.0 + (gSavedSettings.getF32("MediaRollOffRate") * adjusted_distance); + attenuation = 1.0 / (attenuation * attenuation); + // the attenuation multiplier should never be more than one since that would increase volume + volume = volume * llmin(1.0, attenuation); + } + } + + mMediaSource->setVolume(volume); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +F32 LLViewerMediaImpl::getVolume() +{ + return mRequestedVolume; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::focus(bool focus) +{ + mHasFocus = focus; + + if (mMediaSource) + { + // call focus just for the hell of it, even though this apopears to be a nop + mMediaSource->focus(focus); + if (focus) + { + // spoof a mouse click to *actually* pass focus + // Don't do this anymore -- it actually clicks through now. +// mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_DOWN, 1, 1, 0); +// mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_UP, 1, 1, 0); + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::hasFocus() const +{ + // FIXME: This might be able to be a bit smarter by hooking into LLViewerMediaFocus, etc. + return mHasFocus; +} + +std::string LLViewerMediaImpl::getCurrentMediaURL() +{ + if(!mCurrentMediaURL.empty()) + { + return mCurrentMediaURL; + } + + return mMediaURL; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::clearCache() +{ + if(mMediaSource) + { + mMediaSource->clear_cache(); + } + else + { + mClearCache = true; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::mouseDown(S32 x, S32 y, MASK mask, S32 button) +{ + scaleMouse(&x, &y); + mLastMouseX = x; + mLastMouseY = y; +// llinfos << "mouse down (" << x << ", " << y << ")" << llendl; + if (mMediaSource) + { + mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_DOWN, button, x, y, mask); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::mouseUp(S32 x, S32 y, MASK mask, S32 button) +{ + scaleMouse(&x, &y); + mLastMouseX = x; + mLastMouseY = y; +// llinfos << "mouse up (" << x << ", " << y << ")" << llendl; + if (mMediaSource) + { + mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_UP, button, x, y, mask); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::mouseMove(S32 x, S32 y, MASK mask) +{ + scaleMouse(&x, &y); + mLastMouseX = x; + mLastMouseY = y; +// llinfos << "mouse move (" << x << ", " << y << ")" << llendl; + if (mMediaSource) + { + mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_MOVE, 0, x, y, mask); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +//static +void LLViewerMediaImpl::scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y) +{ + F32 texture_x = texture_coords.mV[VX]; + F32 texture_y = texture_coords.mV[VY]; + + // Deal with repeating textures by wrapping the coordinates into the range [0, 1.0) + texture_x = fmodf(texture_x, 1.0f); + if(texture_x < 0.0f) + texture_x = 1.0 + texture_x; + + texture_y = fmodf(texture_y, 1.0f); + if(texture_y < 0.0f) + texture_y = 1.0 + texture_y; + + // scale x and y to texel units. + *x = llround(texture_x * mMediaSource->getTextureWidth()); + *y = llround((1.0f - texture_y) * mMediaSource->getTextureHeight()); + + // Adjust for the difference between the actual texture height and the amount of the texture in use. + *y -= (mMediaSource->getTextureHeight() - mMediaSource->getHeight()); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::mouseDown(const LLVector2& texture_coords, MASK mask, S32 button) +{ + if(mMediaSource) + { + S32 x, y; + scaleTextureCoords(texture_coords, &x, &y); + + mouseDown(x, y, mask, button); + } +} + +void LLViewerMediaImpl::mouseUp(const LLVector2& texture_coords, MASK mask, S32 button) +{ + if(mMediaSource) + { + S32 x, y; + scaleTextureCoords(texture_coords, &x, &y); + + mouseUp(x, y, mask, button); + } +} + +void LLViewerMediaImpl::mouseMove(const LLVector2& texture_coords, MASK mask) +{ + if(mMediaSource) + { + S32 x, y; + scaleTextureCoords(texture_coords, &x, &y); + + mouseMove(x, y, mask); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::mouseDoubleClick(S32 x, S32 y, MASK mask, S32 button) +{ + scaleMouse(&x, &y); + mLastMouseX = x; + mLastMouseY = y; + if (mMediaSource) + { + mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_DOUBLE_CLICK, button, x, y, mask); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::scrollWheel(S32 x, S32 y, MASK mask) +{ + scaleMouse(&x, &y); + mLastMouseX = x; + mLastMouseY = y; + if (mMediaSource) + { + mMediaSource->scrollEvent(x, y, mask); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::onMouseCaptureLost() +{ + if (mMediaSource) + { + mMediaSource->mouseEvent(LLPluginClassMedia::MOUSE_EVENT_UP, 0, mLastMouseX, mLastMouseY, 0); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +BOOL LLViewerMediaImpl::handleMouseUp(S32 x, S32 y, MASK mask) +{ + // NOTE: this is called when the mouse is released when we have capture. + // Due to the way mouse coordinates are mapped to the object, we can't use the x and y coordinates that come in with the event. + + if(hasMouseCapture()) + { + // Release the mouse -- this will also send a mouseup to the media + gFocusMgr.setMouseCapture( FALSE ); + } + + return TRUE; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::updateJavascriptObject() +{ + if ( mMediaSource ) + { + // flag to expose this information to internal browser or not. + bool expose_javascript_object = gSavedSettings.getBOOL("BrowserEnableJSObject"); + mMediaSource->jsExposeObjectEvent( expose_javascript_object ); + + // indicate if the values we have are valid (currently do this blanket-fashion for + // everything depending on whether you are logged in or not - this may require a + // more granular approach once variables are added that ARE valid before login + bool logged_in = LLLoginInstance::getInstance()->authSuccess(); + mMediaSource->jsValuesValidEvent( logged_in ); + + // current location within a region + LLVector3 agent_pos = gAgent.getPositionAgent(); + double x = agent_pos.mV[ VX ]; + double y = agent_pos.mV[ VY ]; + double z = agent_pos.mV[ VZ ]; + mMediaSource->jsAgentLocationEvent( x, y, z ); + + // current region agent is in + std::string region_name(""); + LLViewerRegion* region = gAgent.getRegion(); + if ( region ) + { + region_name = region->getName(); + }; + mMediaSource->jsAgentRegionEvent( region_name ); + + // language code the viewer is set to + mMediaSource->jsAgentLanguageEvent( LLUI::getLanguage() ); + + // maturity setting the agent has selected + if ( gAgent.prefersAdult() ) + mMediaSource->jsAgentMaturityEvent( "GMA" ); // Adult means see adult, mature and general content + else + if ( gAgent.prefersMature() ) + mMediaSource->jsAgentMaturityEvent( "GM" ); // Mature means see mature and general content + else + if ( gAgent.prefersPG() ) + mMediaSource->jsAgentMaturityEvent( "G" ); // PG means only see General content + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +std::string LLViewerMediaImpl::getName() const +{ + if (mMediaSource) + { + return mMediaSource->getMediaName(); + } + + return LLStringUtil::null; +}; + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateBack() +{ + if (mMediaSource) + { + mMediaSource->browse_back(); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateForward() +{ + if (mMediaSource) + { + mMediaSource->browse_forward(); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateReload() +{ + navigateTo(getCurrentMediaURL(), "", true, false); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateHome() +{ + bool rediscover_mimetype = mHomeMimeType.empty(); + navigateTo(mHomeURL, mHomeMimeType, rediscover_mimetype, false); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::unload() +{ + // Unload the media impl and clear its state. + destroyMediaSource(); + resetPreviousMediaState(); + mMediaURL.clear(); + mMimeType.clear(); + mCurrentMediaURL.clear(); + mCurrentMimeType.clear(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type, bool server_request) +{ + cancelMimeTypeProbe(); + + if(mMediaURL != url) + { + // Don't carry media play state across distinct URLs. + resetPreviousMediaState(); + } + + // Always set the current URL and MIME type. + mMediaURL = url; + mMimeType = mime_type; + + // Clear the current media URL, since it will no longer be correct. + mCurrentMediaURL.clear(); + + // if mime type discovery was requested, we'll need to do it when the media loads + mNavigateRediscoverType = rediscover_type; + + // and if this was a server request, the navigate on load will also need to be one. + mNavigateServerRequest = server_request; + + // An explicit navigate resets the "failed" flag. + mMediaSourceFailed = false; + + if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) + { + // Helpful to have media urls in log file. Shouldn't be spammy. + llinfos << "NOT LOADING media id= " << mTextureId << " url=" << url << " mime_type=" << mime_type << llendl; + + // This impl should not be loaded at this time. + LL_DEBUGS("PluginPriority") << this << "Not loading (PRIORITY_UNLOADED)" << LL_ENDL; + + return; + } + + navigateInternal(); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateInternal() +{ + // Helpful to have media urls in log file. Shouldn't be spammy. + llinfos << "media id= " << mTextureId << " url=" << mMediaURL << " mime_type=" << mMimeType << llendl; + + if(mNavigateSuspended) + { + llwarns << "Deferring navigate." << llendl; + mNavigateSuspendedDeferred = true; + return; + } + + if(mMimeTypeProbe != NULL) + { + llwarns << "MIME type probe already in progress -- bailing out." << llendl; + return; + } + + if(mNavigateServerRequest) + { + setNavState(MEDIANAVSTATE_SERVER_SENT); + } + else + { + setNavState(MEDIANAVSTATE_NONE); + } + + // If the caller has specified a non-empty MIME type, look that up in our MIME types list. + // If we have a plugin for that MIME type, use that instead of attempting auto-discovery. + // This helps in supporting legacy media content where the server the media resides on returns a bogus MIME type + // but the parcel owner has correctly set the MIME type in the parcel media settings. + + if(!mMimeType.empty() && (mMimeType != LLMIMETypes::getDefaultMimeType())) + { + std::string plugin_basename = LLMIMETypes::implType(mMimeType); + if(!plugin_basename.empty()) + { + // We have a plugin for this mime type + mNavigateRediscoverType = false; + } + } + + if(mNavigateRediscoverType) + { + + LLURI uri(mMediaURL); + std::string scheme = uri.scheme(); + + if(scheme.empty() || "http" == scheme || "https" == scheme) + { + // If we don't set an Accept header, LLHTTPClient will add one like this: + // Accept: application/llsd+xml + // which is really not what we want. + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "*/*"; + // Allow cookies in the response, to prevent a redirect loop when accessing join.secondlife.com + headers["Cookie"] = ""; + LLHTTPClient::getHeaderOnly( mMediaURL, new LLMimeDiscoveryResponder(this), headers, 10.0f); + } + else if("data" == scheme || "file" == scheme || "about" == scheme) + { + // FIXME: figure out how to really discover the type for these schemes + // We use "data" internally for a text/html url for loading the login screen + if(initializeMedia("text/html")) + { + loadURI(); + } + } + else + { + // This catches 'rtsp://' urls + if(initializeMedia(scheme)) + { + loadURI(); + } + } + } + else if(initializeMedia(mMimeType)) + { + loadURI(); + } + else + { + LL_WARNS("Media") << "Couldn't navigate to: " << mMediaURL << " as there is no media type for: " << mMimeType << LL_ENDL; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::navigateStop() +{ + if(mMediaSource) + { + mMediaSource->browse_stop(); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::handleKeyHere(KEY key, MASK mask) +{ + bool result = false; + + if (mMediaSource) + { + // FIXME: THIS IS SO WRONG. + // Menu keys should be handled by the menu system and not passed to UI elements, but this is how LLTextEditor and LLLineEditor do it... + if( MASK_CONTROL & mask ) + { + result = true; + } + + if(!result) + { + + LLSD native_key_data = gViewerWindow->getWindow()->getNativeKeyData(); + + result = mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_DOWN ,key, mask, native_key_data); + // Since the viewer internal event dispatching doesn't give us key-up events, simulate one here. + (void)mMediaSource->keyEvent(LLPluginClassMedia::KEY_EVENT_UP ,key, mask, native_key_data); + } + } + + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::handleUnicodeCharHere(llwchar uni_char) +{ + bool result = false; + + if (mMediaSource) + { + // only accept 'printable' characters, sigh... + if (uni_char >= 32 // discard 'control' characters + && uni_char != 127) // SDL thinks this is 'delete' - yuck. + { + LLSD native_key_data = gViewerWindow->getWindow()->getNativeKeyData(); + + mMediaSource->textInput(wstring_to_utf8str(LLWString(1, uni_char)), gKeyboard->currentMask(FALSE), native_key_data); + } + } + + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::canNavigateForward() +{ + BOOL result = FALSE; + if (mMediaSource) + { + result = mMediaSource->getHistoryForwardAvailable(); + } + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::canNavigateBack() +{ + BOOL result = FALSE; + if (mMediaSource) + { + result = mMediaSource->getHistoryBackAvailable(); + } + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::update() +{ + if(mMediaSource == NULL) + { + if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED) + { + // This media source should not be loaded. + } + else if(mPriority <= LLPluginClassMedia::PRIORITY_SLIDESHOW) + { + // Don't load new instances that are at PRIORITY_SLIDESHOW or below. They're just kept around to preserve state. + } + else if(mMimeTypeProbe != NULL) + { + // this media source is doing a MIME type probe -- don't try loading it again. + } + else + { + // This media may need to be loaded. + if(sMediaCreateTimer.hasExpired()) + { + LL_DEBUGS("PluginPriority") << this << ": creating media based on timer expiration" << LL_ENDL; + createMediaSource(); + sMediaCreateTimer.setTimerExpirySec(LLVIEWERMEDIA_CREATE_DELAY); + } + else + { + LL_DEBUGS("PluginPriority") << this << ": NOT creating media (waiting on timer)" << LL_ENDL; + } + } + } + else + { + updateVolume(); + + // TODO: this is updated every frame - is this bad? + updateJavascriptObject(); + + // If we didn't just create the impl, it may need to get cookie updates. + if(!sUpdatedCookies.empty()) + { + // TODO: Only send cookies to plugins that need them + mMediaSource->set_cookies(sUpdatedCookies); + } + } + + + if(mMediaSource == NULL) + { + return; + } + + // Make sure a navigate doesn't happen during the idle -- it can cause mMediaSource to get destroyed, which can cause a crash. + setNavigateSuspended(true); + + mMediaSource->idle(); + + setNavigateSuspended(false); + + if(mMediaSource == NULL) + { + return; + } + + if(mMediaSource->isPluginExited()) + { + resetPreviousMediaState(); + destroyMediaSource(); + return; + } + + if(!mMediaSource->textureValid()) + { + return; + } + + if(mSuspendUpdates || !mVisible) + { + return; + } + + LLViewerMediaTexture* placeholder_image = updatePlaceholderImage(); + + if(placeholder_image) + { + LLRect dirty_rect; + + // Since we're updating this texture, we know it's playing. Tell the texture to do its replacement magic so it gets rendered. + placeholder_image->setPlaying(TRUE); + + if(mMediaSource->getDirty(&dirty_rect)) + { + // Constrain the dirty rect to be inside the texture + S32 x_pos = llmax(dirty_rect.mLeft, 0); + S32 y_pos = llmax(dirty_rect.mBottom, 0); + S32 width = llmin(dirty_rect.mRight, placeholder_image->getWidth()) - x_pos; + S32 height = llmin(dirty_rect.mTop, placeholder_image->getHeight()) - y_pos; + + if(width > 0 && height > 0) + { + + U8* data = mMediaSource->getBitsData(); + + // Offset the pixels pointer to match x_pos and y_pos + data += ( x_pos * mMediaSource->getTextureDepth() * mMediaSource->getBitsWidth() ); + data += ( y_pos * mMediaSource->getTextureDepth() ); + + placeholder_image->setSubImage( + data, + mMediaSource->getBitsWidth(), + mMediaSource->getBitsHeight(), + x_pos, + y_pos, + width, + height); + + } + + mMediaSource->resetDirty(); + } + } +} + + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::updateImagesMediaStreams() +{ +} + + +////////////////////////////////////////////////////////////////////////////////////////// +LLViewerMediaTexture* LLViewerMediaImpl::updatePlaceholderImage() +{ + if(mTextureId.isNull()) + { + // The code that created this instance will read from the plugin's bits. + return NULL; + } + + LLViewerMediaTexture* placeholder_image = LLViewerTextureManager::getMediaTexture( mTextureId ); + + if (mNeedsNewTexture + || placeholder_image->getUseMipMaps() + || (placeholder_image->getWidth() != mMediaSource->getTextureWidth()) + || (placeholder_image->getHeight() != mMediaSource->getTextureHeight()) + || (mTextureUsedWidth != mMediaSource->getWidth()) + || (mTextureUsedHeight != mMediaSource->getHeight()) + ) + { + LL_DEBUGS("Media") << "initializing media placeholder" << LL_ENDL; + LL_DEBUGS("Media") << "movie image id " << mTextureId << LL_ENDL; + + int texture_width = mMediaSource->getTextureWidth(); + int texture_height = mMediaSource->getTextureHeight(); + int texture_depth = mMediaSource->getTextureDepth(); + + // MEDIAOPT: check to see if size actually changed before doing work + placeholder_image->destroyGLTexture(); + // MEDIAOPT: apparently just calling setUseMipMaps(FALSE) doesn't work? + placeholder_image->reinit(FALSE); // probably not needed + + // MEDIAOPT: seems insane that we actually have to make an imageraw then + // immediately discard it + LLPointer raw = new LLImageRaw(texture_width, texture_height, texture_depth); + // Clear the texture to the background color, ignoring alpha. + // convert background color channels from [0.0, 1.0] to [0, 255]; + raw->clear(int(mBackgroundColor.mV[VX] * 255.0f), int(mBackgroundColor.mV[VY] * 255.0f), int(mBackgroundColor.mV[VZ] * 255.0f), 0xff); + int discard_level = 0; + + // ask media source for correct GL image format constants + placeholder_image->setExplicitFormat(mMediaSource->getTextureFormatInternal(), + mMediaSource->getTextureFormatPrimary(), + mMediaSource->getTextureFormatType(), + mMediaSource->getTextureFormatSwapBytes()); + + placeholder_image->createGLTexture(discard_level, raw); + + // MEDIAOPT: set this dynamically on play/stop + // FIXME +// placeholder_image->mIsMediaTexture = true; + mNeedsNewTexture = false; + + // If the amount of the texture being drawn by the media goes down in either width or height, + // recreate the texture to avoid leaving parts of the old image behind. + mTextureUsedWidth = mMediaSource->getWidth(); + mTextureUsedHeight = mMediaSource->getHeight(); + } + + return placeholder_image; +} + + +////////////////////////////////////////////////////////////////////////////////////////// +LLUUID LLViewerMediaImpl::getMediaTextureID() const +{ + return mTextureId; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::setVisible(bool visible) +{ + mVisible = visible; + + if(mVisible) + { + if(mMediaSource && mMediaSource->isPluginExited()) + { + destroyMediaSource(); + } + + if(!mMediaSource) + { + createMediaSource(); + } + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::mouseCapture() +{ + gFocusMgr.setMouseCapture(this); +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::scaleMouse(S32 *mouse_x, S32 *mouse_y) +{ +#if 0 + S32 media_width, media_height; + S32 texture_width, texture_height; + getMediaSize( &media_width, &media_height ); + getTextureSize( &texture_width, &texture_height ); + S32 y_delta = texture_height - media_height; + + *mouse_y -= y_delta; +#endif +} + + + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::isMediaTimeBased() +{ + bool result = false; + + if(mMediaSource) + { + result = mMediaSource->pluginSupportsMediaTime(); + } + + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::isMediaPlaying() +{ + bool result = false; + + if(mMediaSource) + { + EMediaStatus status = mMediaSource->getStatus(); + if(status == MEDIA_PLAYING || status == MEDIA_LOADING) + result = true; + } + + return result; +} +////////////////////////////////////////////////////////////////////////////////////////// +bool LLViewerMediaImpl::isMediaPaused() +{ + bool result = false; + + if(mMediaSource) + { + if(mMediaSource->getStatus() == MEDIA_PAUSED) + result = true; + } + + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::hasMedia() const +{ + return mMediaSource != NULL; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +void LLViewerMediaImpl::resetPreviousMediaState() +{ + mPreviousMediaState = MEDIA_NONE; + mPreviousMediaTime = 0.0f; +} + + +////////////////////////////////////////////////////////////////////////////////////////// +// +void LLViewerMediaImpl::setDisabled(bool disabled, bool forcePlayOnEnable) +{ + if(mIsDisabled != disabled) + { + // Only do this on actual state transitions. + mIsDisabled = disabled; + + if(mIsDisabled) + { + // We just disabled this media. Clear all state. + unload(); + } + else + { + // We just (re)enabled this media. Do a navigate if auto-play is in order. + if(isAutoPlayable() || forcePlayOnEnable) + { + navigateTo(mMediaEntryURL, "", true, true); + } + } + + } +}; + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::isForcedUnloaded() const +{ + if(mIsMuted || mMediaSourceFailed || mIsDisabled) + { + return true; + } + + if(sInWorldMediaDisabled) + { + // When inworld media is disabled, all instances that aren't marked as "used in UI" will not be loaded. + if(!mUsedInUI) + { + return true; + } + } + + // If this media's class is not supposed to be shown, unload + if (!shouldShowBasedOnClass()) + { + return true; + } + + return false; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::isPlayable() const +{ + if(isForcedUnloaded()) + { + // All of the forced-unloaded criteria also imply not playable. + return false; + } + + if(hasMedia()) + { + // Anything that's already playing is, by definition, playable. + return true; + } + + if(!mMediaURL.empty()) + { + // If something has navigated the instance, it's ready to be played. + return true; + } + + return false; +} + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginClassMediaOwner::EMediaEvent event) +{ + bool pass_through = true; + switch(event) + { + case MEDIA_EVENT_CLICK_LINK_NOFOLLOW: + { + LL_DEBUGS("Media") << "MEDIA_EVENT_CLICK_LINK_NOFOLLOW, uri is: " << plugin->getClickURL() << LL_ENDL; + std::string url = plugin->getClickURL(); + std::string nav_type = plugin->getClickNavType(); + LLURLDispatcher::dispatch(url, nav_type, NULL, mTrustedBrowser); + } + break; + case MEDIA_EVENT_CLICK_LINK_HREF: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << plugin->getClickTarget() << "\", uri is " << plugin->getClickURL() << LL_ENDL; + }; + break; + case MEDIA_EVENT_PLUGIN_FAILED_LAUNCH: + { + // The plugin failed to load properly. Make sure the timer doesn't retry. + // TODO: maybe mark this plugin as not loadable somehow? + mMediaSourceFailed = true; + + // Reset the last known state of the media to defaults. + resetPreviousMediaState(); + + // TODO: may want a different message for this case? + LLSD args; + args["PLUGIN"] = LLMIMETypes::implType(mCurrentMimeType); + LLNotificationsUtil::add("MediaPluginFailed", args); + } + break; + + case MEDIA_EVENT_PLUGIN_FAILED: + { + // The plugin crashed. + mMediaSourceFailed = true; + + // Reset the last known state of the media to defaults. + resetPreviousMediaState(); + + LLSD args; + args["PLUGIN"] = LLMIMETypes::implType(mCurrentMimeType); + // SJB: This is getting called every frame if the plugin fails to load, continuously respawining the alert! + //LLNotificationsUtil::add("MediaPluginFailed", args); + } + break; + + case MEDIA_EVENT_CURSOR_CHANGED: + { + LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << plugin->getCursorName() << LL_ENDL; + + std::string cursor = plugin->getCursorName(); + + if(cursor == "arrow") + mLastSetCursor = UI_CURSOR_ARROW; + else if(cursor == "ibeam") + mLastSetCursor = UI_CURSOR_IBEAM; + else if(cursor == "splith") + mLastSetCursor = UI_CURSOR_SIZEWE; + else if(cursor == "splitv") + mLastSetCursor = UI_CURSOR_SIZENS; + else if(cursor == "hand") + mLastSetCursor = UI_CURSOR_HAND; + else // for anything else, default to the arrow + mLastSetCursor = UI_CURSOR_ARROW; + } + break; + + case LLViewerMediaObserver::MEDIA_EVENT_NAVIGATE_BEGIN: + { + LL_DEBUGS("Media") << "MEDIA_EVENT_NAVIGATE_BEGIN, uri is: " << plugin->getNavigateURI() << LL_ENDL; + hideNotification(); + + if(getNavState() == MEDIANAVSTATE_SERVER_SENT) + { + setNavState(MEDIANAVSTATE_SERVER_BEGUN); + } + else + { + setNavState(MEDIANAVSTATE_BEGUN); + } + } + break; + + case LLViewerMediaObserver::MEDIA_EVENT_NAVIGATE_COMPLETE: + { + LL_DEBUGS("Media") << "MEDIA_EVENT_NAVIGATE_COMPLETE, uri is: " << plugin->getNavigateURI() << LL_ENDL; + + std::string url = plugin->getNavigateURI(); + if(getNavState() == MEDIANAVSTATE_BEGUN) + { + if(mCurrentMediaURL == url) + { + // This is a navigate that takes us to the same url as the previous navigate. + setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS); + } + else + { + mCurrentMediaURL = url; + setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED); + } + } + else if(getNavState() == MEDIANAVSTATE_SERVER_BEGUN) + { + mCurrentMediaURL = url; + setNavState(MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED); + } + else + { + // all other cases need to leave the state alone. + } + } + break; + + case LLViewerMediaObserver::MEDIA_EVENT_LOCATION_CHANGED: + { + LL_DEBUGS("Media") << "MEDIA_EVENT_LOCATION_CHANGED, uri is: " << plugin->getLocation() << LL_ENDL; + + std::string url = plugin->getLocation(); + + if(getNavState() == MEDIANAVSTATE_BEGUN) + { + if(mCurrentMediaURL == url) + { + // This is a navigate that takes us to the same url as the previous navigate. + setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS); + } + else + { + mCurrentMediaURL = url; + setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED); + } + } + else if(getNavState() == MEDIANAVSTATE_SERVER_BEGUN) + { + mCurrentMediaURL = url; + setNavState(MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED); + } + else + { + // Don't track redirects. + setNavState(MEDIANAVSTATE_NONE); + } + } + break; + + case LLViewerMediaObserver::MEDIA_EVENT_PICK_FILE_REQUEST: + { + // Display a file picker + std::string response; + + LLFilePicker& picker = LLFilePicker::instance(); + if (!picker.getOpenFile(LLFilePicker::FFLOAD_ALL)) + { + // The user didn't pick a file -- the empty response string will indicate this. + } + + response = picker.getFirstFile(); + + plugin->sendPickFileResponse(response); + } + break; + + + case LLViewerMediaObserver::MEDIA_EVENT_AUTH_REQUEST: + { + LLNotification::Params auth_request_params; + auth_request_params.name = "AuthRequest"; + + // pass in host name and realm for site (may be zero length but will always exist) + LLSD args; + LLURL raw_url( plugin->getAuthURL().c_str() ); + args["HOST_NAME"] = raw_url.getAuthority(); + args["REALM"] = plugin->getAuthRealm(); + auth_request_params.substitutions = args; + + auth_request_params.payload = LLSD().with("media_id", mTextureId); + auth_request_params.functor.function = boost::bind(&LLViewerMedia::onAuthSubmit, _1, _2); + LLNotifications::instance().add(auth_request_params); + }; + break; + + case LLViewerMediaObserver::MEDIA_EVENT_CLOSE_REQUEST: + { + std::string uuid = plugin->getClickUUID(); + + llinfos << "MEDIA_EVENT_CLOSE_REQUEST for uuid " << uuid << llendl; + + if(uuid.empty()) + { + // This close request is directed at this instance, let it fall through. + } + else + { + // This close request is directed at another instance + pass_through = false; + LLFloaterMediaBrowser::closeRequest(uuid); + LLFloaterWebContent::closeRequest(uuid); + } + } + break; + + case LLViewerMediaObserver::MEDIA_EVENT_GEOMETRY_CHANGE: + { + std::string uuid = plugin->getClickUUID(); + + llinfos << "MEDIA_EVENT_GEOMETRY_CHANGE for uuid " << uuid << llendl; + + if(uuid.empty()) + { + // This geometry change request is directed at this instance, let it fall through. + } + else + { + // This request is directed at another instance + pass_through = false; + LLFloaterMediaBrowser::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight()); + LLFloaterWebContent::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight()); + } + } + break; + + default: + break; + } + + if(pass_through) + { + // Just chain the event to observers. + emitEvent(plugin, event); + } +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +void LLViewerMediaImpl::handleCookieSet(LLPluginClassMedia* self, const std::string &cookie) +{ + LLViewerMedia::getCookieStore()->setCookies(cookie); +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +void +LLViewerMediaImpl::cut() +{ + if (mMediaSource) + mMediaSource->cut(); +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +BOOL +LLViewerMediaImpl::canCut() const +{ + if (mMediaSource) + return mMediaSource->canCut(); + else + return FALSE; +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +void +LLViewerMediaImpl::copy() +{ + if (mMediaSource) + mMediaSource->copy(); +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +BOOL +LLViewerMediaImpl::canCopy() const +{ + if (mMediaSource) + return mMediaSource->canCopy(); + else + return FALSE; +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +void +LLViewerMediaImpl::paste() +{ + if (mMediaSource) + mMediaSource->paste(); +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +BOOL +LLViewerMediaImpl::canPaste() const +{ + if (mMediaSource) + return mMediaSource->canPaste(); + else + return FALSE; +} + +void LLViewerMediaImpl::setUpdated(BOOL updated) +{ + mIsUpdated = updated ; +} + +BOOL LLViewerMediaImpl::isUpdated() +{ + return mIsUpdated ; +} + +void LLViewerMediaImpl::calculateInterest() +{ + LLViewerMediaTexture* texture = LLViewerTextureManager::findMediaTexture( mTextureId ); + + if(texture != NULL) + { + mInterest = texture->getMaxVirtualSize(); + } + else + { + // This will be a relatively common case now, since it will always be true for unloaded media. + mInterest = 0.0f; + } + + // Calculate distance from the avatar, for use in the proximity calculation. + mProximityDistance = 0.0f; + mProximityCamera = 0.0f; + if(!mObjectList.empty()) + { + // Just use the first object in the list. We could go through the list and find the closest object, but this should work well enough. + std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; + LLVOVolume* objp = *iter ; + llassert_always(objp != NULL) ; + + // The distance calculation is invalid for HUD attachments -- leave both mProximityDistance and mProximityCamera at 0 for them. + if(!objp->isHUDAttachment()) + { + LLVector3d obj_global = objp->getPositionGlobal() ; + LLVector3d agent_global = gAgent.getPositionGlobal() ; + LLVector3d global_delta = agent_global - obj_global ; + mProximityDistance = global_delta.magVecSquared(); // use distance-squared because it's cheaper and sorts the same. + + LLVector3d camera_delta = gAgentCamera.getCameraPositionGlobal() - obj_global; + mProximityCamera = camera_delta.magVec(); + } + } + + if(mNeedsMuteCheck) + { + // Check all objects this instance is associated with, and those objects' owners, against the mute list + mIsMuted = false; + + std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; + for(; iter != mObjectList.end() ; ++iter) + { + LLVOVolume *obj = *iter; + llassert(obj); + if (!obj) continue; + if(LLMuteList::getInstance() && + LLMuteList::getInstance()->isMuted(obj->getID())) + { + mIsMuted = true; + } + else + { + // We won't have full permissions data for all objects. Attempt to mute objects when we can tell their owners are muted. + if (LLSelectMgr::getInstance()) + { + LLPermissions* obj_perm = LLSelectMgr::getInstance()->findObjectPermissions(obj); + if(obj_perm) + { + if(LLMuteList::getInstance() && + LLMuteList::getInstance()->isMuted(obj_perm->getOwner())) + mIsMuted = true; + } + } + } + } + + mNeedsMuteCheck = false; + } +} + +F64 LLViewerMediaImpl::getApproximateTextureInterest() +{ + F64 result = 0.0f; + + if(mMediaSource) + { + result = mMediaSource->getFullWidth(); + result *= mMediaSource->getFullHeight(); + } + else + { + // No media source is loaded -- all we have to go on is the texture size that has been set on the impl, if any. + result = mMediaWidth; + result *= mMediaHeight; + } + + return result; +} + +void LLViewerMediaImpl::setUsedInUI(bool used_in_ui) +{ + mUsedInUI = used_in_ui; + + // HACK: Force elements used in UI to load right away. + // This fixes some issues where UI code that uses the browser instance doesn't expect it to be unloaded. + if(mUsedInUI && (mPriority == LLPluginClassMedia::PRIORITY_UNLOADED)) + { + if(getVisible()) + { + setPriority(LLPluginClassMedia::PRIORITY_NORMAL); + } + else + { + setPriority(LLPluginClassMedia::PRIORITY_HIDDEN); + } + + createMediaSource(); + } +}; + +void LLViewerMediaImpl::setBackgroundColor(LLColor4 color) +{ + mBackgroundColor = color; + + if(mMediaSource) + { + mMediaSource->setBackgroundColor(mBackgroundColor); + } +}; + +F64 LLViewerMediaImpl::getCPUUsage() const +{ + F64 result = 0.0f; + + if(mMediaSource) + { + result = mMediaSource->getCPUUsage(); + } + + return result; +} + +void LLViewerMediaImpl::setPriority(LLPluginClassMedia::EPriority priority) +{ + if(mPriority != priority) + { + LL_DEBUGS("PluginPriority") + << "changing priority of media id " << mTextureId + << " from " << LLPluginClassMedia::priorityToString(mPriority) + << " to " << LLPluginClassMedia::priorityToString(priority) + << LL_ENDL; + } + + mPriority = priority; + + if(priority == LLPluginClassMedia::PRIORITY_UNLOADED) + { + if(mMediaSource) + { + // Need to unload the media source + + // First, save off previous media state + mPreviousMediaState = mMediaSource->getStatus(); + mPreviousMediaTime = mMediaSource->getCurrentTime(); + + destroyMediaSource(); + } + } + + if(mMediaSource) + { + mMediaSource->setPriority(mPriority); + } + + // NOTE: loading (or reloading) media sources whose priority has risen above PRIORITY_UNLOADED is done in update(). +} + +void LLViewerMediaImpl::setLowPrioritySizeLimit(int size) +{ + if(mMediaSource) + { + mMediaSource->setLowPrioritySizeLimit(size); + } +} + +void LLViewerMediaImpl::setNavState(EMediaNavState state) +{ + mMediaNavState = state; + + switch (state) + { + case MEDIANAVSTATE_NONE: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_NONE" << llendl; break; + case MEDIANAVSTATE_BEGUN: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_BEGUN" << llendl; break; + case MEDIANAVSTATE_FIRST_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_FIRST_LOCATION_CHANGED" << llendl; break; + case MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS" << llendl; break; + case MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED" << llendl; break; + case MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS" << llendl; break; + case MEDIANAVSTATE_SERVER_SENT: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_SENT" << llendl; break; + case MEDIANAVSTATE_SERVER_BEGUN: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_BEGUN" << llendl; break; + case MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED" << llendl; break; + case MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED" << llendl; break; + } +} + +void LLViewerMediaImpl::setNavigateSuspended(bool suspend) +{ + if(mNavigateSuspended != suspend) + { + mNavigateSuspended = suspend; + if(!suspend) + { + // We're coming out of suspend. If someone tried to do a navigate while suspended, do one now instead. + if(mNavigateSuspendedDeferred) + { + mNavigateSuspendedDeferred = false; + navigateInternal(); + } + } + } +} + +void LLViewerMediaImpl::cancelMimeTypeProbe() +{ + if(mMimeTypeProbe != NULL) + { + // There doesn't seem to be a way to actually cancel an outstanding request. + // Simulate it by telling the LLMimeDiscoveryResponder not to write back any results. + mMimeTypeProbe->cancelRequest(); + + // The above should already have set mMimeTypeProbe to NULL. + if(mMimeTypeProbe != NULL) + { + llerrs << "internal error: mMimeTypeProbe is not NULL after cancelling request." << llendl; + } + } +} + +void LLViewerMediaImpl::addObject(LLVOVolume* obj) +{ + std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; + for(; iter != mObjectList.end() ; ++iter) + { + if(*iter == obj) + { + return ; //already in the list. + } + } + + mObjectList.push_back(obj) ; + mNeedsMuteCheck = true; +} + +void LLViewerMediaImpl::removeObject(LLVOVolume* obj) +{ + mObjectList.remove(obj) ; + mNeedsMuteCheck = true; +} + +const std::list< LLVOVolume* >* LLViewerMediaImpl::getObjectList() const +{ + return &mObjectList ; +} + +LLVOVolume *LLViewerMediaImpl::getSomeObject() +{ + LLVOVolume *result = NULL; + + std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ; + if(iter != mObjectList.end()) + { + result = *iter; + } + + return result; +} + +void LLViewerMediaImpl::setTextureID(LLUUID id) +{ + if(id != mTextureId) + { + if(mTextureId.notNull()) + { + // Remove this item's entry from the map + sViewerMediaTextureIDMap.erase(mTextureId); + } + + if(id.notNull()) + { + sViewerMediaTextureIDMap.insert(LLViewerMedia::impl_id_map::value_type(id, this)); + } + + mTextureId = id; + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::isAutoPlayable() const +{ + return (mMediaAutoPlay && + gSavedSettings.getBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING) && + gSavedSettings.getBOOL("MediaTentativeAutoPlay")); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::shouldShowBasedOnClass() const +{ + // If this is parcel media or in the UI, return true always + if (getUsedInUI() || isParcelMedia()) return true; + + bool attached_to_another_avatar = isAttachedToAnotherAvatar(); + bool inside_parcel = isInAgentParcel(); + + // llinfos << " hasFocus = " << hasFocus() << + // " others = " << (attached_to_another_avatar && gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING)) << + // " within = " << (inside_parcel && gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING)) << + // " outside = " << (!inside_parcel && gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING)) << llendl; + + // If it has focus, we should show it + // This is incorrect, and causes EXT-6750 (disabled attachment media still plays) +// if (hasFocus()) +// return true; + + // If it is attached to an avatar and the pref is off, we shouldn't show it + if (attached_to_another_avatar) + return gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_ON_OTHERS_SETTING); + + if (inside_parcel) + return gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_WITHIN_PARCEL_SETTING); + else + return gSavedSettings.getBOOL(LLViewerMedia::SHOW_MEDIA_OUTSIDE_PARCEL_SETTING); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::isAttachedToAnotherAvatar() const +{ + bool result = false; + + std::list< LLVOVolume* >::const_iterator iter = mObjectList.begin(); + std::list< LLVOVolume* >::const_iterator end = mObjectList.end(); + for ( ; iter != end; iter++) + { + if (isObjectAttachedToAnotherAvatar(*iter)) + { + result = true; + break; + } + } + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +//static +bool LLViewerMediaImpl::isObjectAttachedToAnotherAvatar(LLVOVolume *obj) +{ + bool result = false; + LLXform *xform = obj; + // Walk up parent chain + while (NULL != xform) + { + LLViewerObject *object = dynamic_cast (xform); + if (NULL != object) + { + LLVOAvatar *avatar = object->asAvatar(); + if ((NULL != avatar) && (avatar != gAgentAvatarp)) + { + result = true; + break; + } + } + xform = xform->getParent(); + } + return result; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +bool LLViewerMediaImpl::isInAgentParcel() const +{ + bool result = false; + + std::list< LLVOVolume* >::const_iterator iter = mObjectList.begin(); + std::list< LLVOVolume* >::const_iterator end = mObjectList.end(); + for ( ; iter != end; iter++) + { + LLVOVolume *object = *iter; + if (LLViewerMediaImpl::isObjectInAgentParcel(object)) + { + result = true; + break; + } + } + return result; +} + +LLNotificationPtr LLViewerMediaImpl::getCurrentNotification() const +{ + return mNotification; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// +// static +bool LLViewerMediaImpl::isObjectInAgentParcel(LLVOVolume *obj) +{ + return (LLViewerParcelMgr::getInstance()->inAgentParcel(obj->getPositionGlobal())); +} diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index e2e342cc45..a70c6f4887 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -339,7 +339,10 @@ public: LLVOVolume *getSomeObject(); void setUpdated(BOOL updated) ; BOOL isUpdated() ; - + + // updates the javascript object in the embedded browser with viewer values + void updateJavascriptObject(); + // Updates the "interest" value in this object void calculateInterest(); F64 getInterest() const { return mInterest; }; diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 0d4a095e14..32c1d7083a 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -183,11 +183,11 @@ parameter="http://join.secondlife.com/"/> + label="Web Content Floater Debug Test" + name="Web Content Floater Debug Test"> + parameter="http://callum-linden.s3.amazonaws.com/browsertest.html"/> - - - installables - - GL - - copyright - Copyright (c) 1991-2000 Silicon Graphics, Inc. - description - A standard for 3D Graphics rendering engine. - license - GL - packages - - darwin - - md5sum - 0bd2795a2afe09f6c563f2f888f24cc9 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-darwin-20080613.tar.bz2 - - linux - - md5sum - 2ab29212a7f3acdaebf10059af816be0 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-linux-20080812.tar.bz2 - - linux64 - - md5sum - 9c3dff3817f1105f9054401fdef1fe50 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-linux64-20080909.tar.bz2 - - windows - - md5sum - 91155239b02f576384603795d41eb971 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-windows-20090505.tar.bz2 - - - - SDL - - copyright - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga - description - The Simple DirectMedia Layer libraries are used for handling input and basic window/GL setup on the Linux client. Packages also include cursors. - license - lgpl - packages - - linux - - md5sum - fce0ff7d2cdf0f36c1647e6a3916e29e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/SDL-1.2.12-linux-20090218.tar.bz2 - - - - apr_suite - - license - apache 2.0 - packages - - darwin - - md5sum - 115d8ac44a91efdb173e9b3e478c46b6 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.3.7-darwin-20090805.tar.bz2 - - linux - - md5sum - 7b84cd6a3c601a104d9c09e58ef2f50c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.2.8-linux-20080812.tar.bz2 - - linux64 - - md5sum - 1a7e1186855d48d8316ce86803095f70 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.2.8-linux64-20080909a.tar.bz2 - - windows - - md5sum - a02619c1e30a3db02d3883bf1ad7a1e6 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/apr_suite-1.3.8-windows-20090911.tar.bz2 - - - - ares - - copyright - Copyright 1998 by the Massachusetts Institute of Technology. - description - Performs DNS requests and name resolves asynchronously. Used with libcurl to keep all HTTP operations async. - license - c-ares - packages - - darwin - - md5sum - cdb2f5c4a5a1f9ecd75bc1dbdd4db8e9 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-darwin-20100606.tar.bz2 - - linux - - md5sum - 91694429e391efeea1de974df26032a2 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-linux-20100527.tar.bz2 - - linux64 - - md5sum - c4242416e0b2e642c0bf062a19a250e4 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.3.0-linux64-20080909.tar.bz2 - - windows - - md5sum - 4b84738eec2e21b0c096d53b79ee2681 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-windows-20100611a.tar.bz2 - - - - artwork-common - - copyright - (C) 2008 Linden Research, Inc. - description - Second Life(TM) Viewer Artwork - license - artwork - packages - - darwin - - md5sum - 5e047437d73d1017bf270a6c6e936f23 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/artwork-common-20090415.tar.bz2 - - linux - - md5sum - 5e047437d73d1017bf270a6c6e936f23 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/artwork-common-20090415.tar.bz2 - - windows - - md5sum - 5e047437d73d1017bf270a6c6e936f23 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/artwork-common-20090415.tar.bz2 - - - - berkeley - - copyright - Copyright (c) 1990-1999 Sleepycat Software. All rights reserved. - description - a high-performance, embedded database library - license - sleepycat - - boost - - copyright - various - description - A set of portable C++ libraries which provide a wide set of functionality. - license - boost - packages - - darwin - - md5sum - 71defd179827bf172b76d6020023e0e8 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-darwin-20100222a.tar.bz2 - - linux - - md5sum - 4db3d74e40d149eeec06f4d97a609bb1 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-linux-20100624.tar.bz2 - - linux64 - - md5sum - af4badd6b2c10bc4db82ff1256695892 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-linux64-20100119.tar.bz2 - - windows - - md5sum - 72e6e2eff5d146a107f3059b6c31fb95 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-windows-20100630.tar.bz2 - - - - curl - - copyright - Copyright (c) 1996 - 2008, Daniel Stenberg, <daniel@haxx.se>. - description - Client-side URL transfer library. Handles moving data across the net in many different protocols. Used to GET/POST/PUT/DELETE web resources. - license - curl - packages - - darwin - - md5sum - ca8f0134fa5ab6f34a6eeb8d0896c9b0 - url - https://s3.amazonaws.com/automated-builds-secondlife-com/hg/repo/brad_curl-autobuild/rev/216961/arch/Darwin/installer/curl-7.21.1-darwin-20101214.tar.bz2 - - linux - - md5sum - 9c9b629b62bf874d550c430ad678dc04 - url - https://s3.amazonaws.com/automated-builds-secondlife-com/hg/repo/brad_curl-autobuild/rev/216961/arch/Linux/installer/curl-7.21.1-linux-20101215.tar.bz2 - - linux64 - - md5sum - 6994192cea7ab2d885a158a3de474273 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.16.4a-linux64-20090303.tar.bz2 - - windows - - md5sum - 48691883065a82d53691d73aae81d4c1 - url - https://s3.amazonaws.com/automated-builds-secondlife-com/hg/repo/brad_curl-autobuild/rev/216961/arch/CYGWIN/installer/curl-7.21.1-windows-20101214.tar.bz2 - - - - dbghelp - - copyright - Copyright Microsoft Corporation - description - dbghelp: Debug helper from Microsoft Debugging Tools For Windows - license - MSDTW - packages - - windows - - md5sum - b7563064037e032143ca2d610aae5153 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbghelp-6.11.1.404-windows-20090520.tar.bz2 - - - - dbusglib - - copyright - Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. - description - dbus/dbus-glib: headers only - license - AFL2.1 - packages - - linux - - md5sum - eb25444142d4102b0ce1b7ffaadb071e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbusglib-linux-20080707.tar.bz2 - - - - elfio - - license - lgpl - packages - - linux - - md5sum - 82ea408af2f968cfe5f013ab241323ef - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/elfio-1.0.3-linux-20080812.tar.bz2 - - - - expat - - copyright - Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd - description - An XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags). - license - mit - packages - - darwin - - md5sum - c457a0a041ac4946265889a503d26c3d - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-darwin-20090805.tar.bz2 - - linux - - md5sum - 67b470fd446b08c9831d1039674eae4e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-linux-20080812.tar.bz2 - - linux64 - - md5sum - 278c61871419b9a4d50a4f88b7922403 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-linux64-20080909.tar.bz2 - - windows - - md5sum - 5dbbdb4a9b5bec86d180ef20a5f8ccfb - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/expat-1.95.8-windows-20090917.tar.bz2 - - - - fmod - - copyright - FMOD Sound System, copyright (C) Firelight Technologies Pty, Ltd., 1994-2006. - description - Audio engine and mp3 stream decoder . - license - fmod - packages - - darwin - - md5sum - 261bcd3387066cf0a1d46549400052b5 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-darwin-20101007.tar.bz2 - - linux - - md5sum - 8490d97430c12c2e1ac19ff80a8d4db4 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-linux-20101007.tar.bz2 - - windows - - md5sum - bab1babcb01ff9849b7f072d352e1ecd - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/fmod-3.75-windows-20101007.tar.bz2 - - - - fontconfig - - license - mit - packages - - linux - - md5sum - 9af6a1ed39fa540bfcaa402b0ea22f78 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fontconfig-2.2.3-linux-20080613.tar.bz2 - - - - freeglut - - license - mit - packages - - windows - - md5sum - fcbb695ff203775fad96d184bf5f34fc - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freeglut-2.4.0-windows-20090608.tar.bz2 - - - - freetype - - copyright - Copyright - description - Font - license - freetype - packages - - darwin - - md5sum - f00144dfb597140f328774c3244f0c3e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-darwin-20090922.tar.bz2 - - linux - - md5sum - 9de3f44be65645c7f6af236139596942 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-linux-2010-02-19a-nommap.tar.bz2 - - linux64 - - md5sum - 35f6fa557ba90f9cda0a18d1af2055a4 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.1.5-linux64-20080909.tar.bz2 - - windows - - md5sum - 88980fd6d91ac541b62dea877ebe6ba6 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-windows-20090917.tar.bz2 - - - - glh_linear - - copyright - Copyright (c) 2000 Cass Everitt; Copyright (c) 2000 NVIDIA Corporation; All rights reserved. - description - nVidia NVParse SDK: platform-indepenedent C++ Apple OpenGL helper library - license - glh_linear - packages - - darwin - - md5sum - 23bd9a75e5a2365a827461e6c324f52b - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-darwin-20080613.tar.bz2 - - linux - - md5sum - 23bd9a75e5a2365a827461e6c324f52b - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-linux-20080812.tar.bz2 - - linux64 - - md5sum - 2965646aea1d2a6aec1fbc431c02733f - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-linux-20080613.tar.bz2 - - windows - - md5sum - 38b9ddfe8dceff55ee4351016a937d1b - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-windows-20080613.tar.bz2 - - - - glib - - description - GLib is a library containing many useful C routines for things such as trees, hashes, and lists. - license - gpl - packages - - darwin - - md5sum - 6cc5ce1fafd10299fdb890b3d4c3cf53 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glib-2.0-darwin-20080817.tar.bz2 - - linux - - md5sum - 2f1a9e14f9213c2c9564c1c1cfdd6d47 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glib-2.0-linux-20080817.tar.bz2 - - windows - - md5sum - 3d5e29d444dde4815b36082eedfc775a - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glib-2.0-windows-20080817.tar.bz2 - - - - glui - - license - lgpl - packages - - darwin - - md5sum - 84f792a860691d0fad6d1de6eeb31baa - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.36-darwin-20090623a.tar.bz2 - - windows - - md5sum - 5b8631fe510d4ebaeb965c673937e1e7 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glui-2.3.6-windows-freeglut-20090608.tar.bz2 - - - - google - - license - mit - packages - - linux - - md5sum - 40db900872612615e849f17cbdfd2c27 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-linux-20080812.tar.bz2 - - - - google-perftools - - copyright - Copyright (c) 2005, Google Inc. - description - Heap performance and validity checking tools from google. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler. - license - bsd - packages - - windows - - md5sum - 32dba32ddd460a08e082898ebba6315c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google-perftools-1.0-windows-20090406.tar.bz2 - - - - google_breakpad - - copyright - Copyright (c) 2006, Google Inc. - description - An open-source multi-platform crash reporting system - license - bsd - packages - - darwin - - md5sum - ced4010b59f1a579caa7fe3c18512499 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-darwin-20100528a.tar.bz2 - - linux - - md5sum - 29c3e7dad60bbf02c811786436d99523 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/google_breakpad-0.0.0-rev599-linux-20100521b.tar.bz2 - - windows - - md5sum - 0859d47242990125f17eaab30bece2ff - url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/google_breakpad-0.0.0-rev599-windows-20100524.tar.bz2 - - - - googlemock - - copyright - Copyright 2008, Google Inc. - description - Google C++ Mocking Framework (or Google Mock for short) is a library for writing and using C++ mock classes. - license - bsd - packages - - darwin - - md5sum - 4863e9fea433d0a4be761ea5d3e8346a - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-darwin-20090626.tar.bz2 - - linux - - md5sum - 877dabecf84339690191c6115c76366e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-linux32-20090527.tar.bz2 - - windows - - md5sum - f601a82ea91030974072da8924cae41e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-windows-20090921.tar.bz2 - - - - gstreamer - - license - lgpl - packages - - linux - - md5sum - c829b638b6eef71ca63418cb9aea46a2 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gstreamer-linux-20080613.tar.bz2 - - linux64 - - md5sum - befc7520fe01250f39458f65c29bc584 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gstreamer-linux64-20080909.tar.bz2 - - - - gtk-atk-pango-glib - - copyright - Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - description - Libraries associated with GTK for gui features. atk: interfaces for accessibility; glib: low-level core functionality for using GTK+ and GNOME; pango: layout/rendering of text w/ emphasis on internationalization. - license - lgpl - packages - - linux - - md5sum - 21c16a74f8fc9a62e3ab944a6eb7403d - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gtk-atk-pango-glib-linux-20080616.tar.bz - - windows - - md5sum - d963750bcd333a108b3697d220c87d09 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gtk-atk-pango-glib-windows-20080613.tar.bz2 - - - - havok - - copyright - on file - description - Physics engine for the simulator - license - havok - packages - - darwin - - md5sum - f64c08771a4fc456db2a55b47302078b - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/havok-4.6-darwin-20080812.tar.bz2 - - linux - - md5sum - af7b1fc9072443009f19e43fb3c8342f - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/havok-4.6.1-linux-20081029.tar.bz2 - - linux64 - - md5sum - cd4076d6caf5fabff36bf48bd01e4ba8 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/havok-4.6.1-linux64-20081030.tar.bz2 - - windows - - md5sum - f25fbb29c2275267233c79f0c68ca37f - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/havok-4.6.1-windows-20081030.tar.bz2 - - - - jpeglib - - copyright - Copyright (c) 2003, Yves Piguet. - description - An open-source JPEG (JFIF) library - license - jpeglib - packages - - darwin - - md5sum - 8d38d74c481e9aab4518c8f2a7d52800 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-darwin-20080812.tar.bz2 - - linux - - md5sum - 8aa8e01e0c21f60f0ede0ffb04e9214f - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-linux-20081218.tar.bz2 - - linux64 - - md5sum - 0e7facf7d48531d20c0cd6a3c3f04021 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-linux64-20080909.tar.bz2 - - windows - - md5sum - 6a6bb0143a2561e3276dab4bcfa425ef - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jpeglib-6b-windows-20090917a.tar.bz2 - - - - jsoncpp - - copyright - json-cpp library released to Public Domain by Baptiste Lepilleur <blep@users.sourceforge.net> - description - jsoncpp is an implementation of a JSON (http://json.org) reader and writer in C++. - license - jsoncpp - packages - - darwin - - md5sum - 4c6b949778099a63550898f00f3e6a5e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-darwin-20090923.tar.bz2 - - linux - - md5sum - a2a94b8ca1d32f23e3e668d64023514e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-linux-20090922.tar.bz2 - - linux64 - - md5sum - a06ab38628ab7b53b8f3326cd942a6a8 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-linux64-20090922.tar.bz2 - - windows - - md5sum - caf152cfc730737c124f7612cf68fbd3 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-svn-r69-windows-20090922.tar.bz2 - - - - kdu - - copyright - on file - description - Kakadu (KDU) JPEG-2000 decoder library. - license - kdu - packages - - darwin - - md5sum - 8261994de5af6581e08c26fefe1b2810 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-darwin-20101123.tar.bz2 - - linux - - md5sum - ed3e58899a424684dad49c94ba3813e7 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-linux-20101124.tar.bz2 - - windows - - md5sum - 066e089a5d9faeaf131e1f4e4860a163 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/kdu-6.4.1-windows-20101123.tar.bz2 - - - - libmono - - copyright - (C) 2005 Novell, Inc. http://www.novell.com - description - An open source implementation of the ECMA/ISO ECMA-334 Common L\ -anguage Infrstructure (CLI) international standard - license - lgpl - packages - - darwin - - md5sum - 39a803fcbe6f11b72358fc78b7777b6c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libmono-darwin-20080724.tar.bz2 - - linux - - md5sum - 9bc0f8b7d5e0ff194b6d5635daf9ae3a - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libmono-1.2.6-linux-20080816a.tar.bz2 - - linux64 - - md5sum - 451521b4cb57c35caf3efb8dcf99b99e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libmono-1.2.6-linux64-20080926.tar.bz2 - - windows - - md5sum - 6712a09311a914752f47d5d62562a239 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libmono-1.2.6-windows-20080903.tar.bz2 - - - - libpng - - copyright - Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson - description - An open, extensible image format with lossless compression. PNG Reference Library - license - libpng - packages - - darwin - - md5sum - 82659b48831cbf58bf04b86602939e0b - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-darwin-20090304.tar.bz2 - - linux - - md5sum - f5e84c991f6e3caacb26db259593cbea - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-linux-20090304.tar.bz2 - - linux64 - - md5sum - 5ee1e62bde38520c7f134c4afb9ac9b1 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-linux64-20090304.tar.bz2 - - windows - - md5sum - c781cd9846cf20afb90ac40ad1a0ce9d - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.2.35-windows-20090917.tar.bz2 - - - - libuuid - - copyright - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - description - Generates UUIDs under Linux. Originally a part of the ext2fs filesystem. Also see lluuid.cpp for all platforms. Part of the e2fsprogs package. - license - lgpl - packages - - linux - - md5sum - 91b194aed4b38bc23493b198009a8c6a - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libuuid-linux-20090417.tar.bz2 - - - - libxml - - license - mit - packages - - linux - - md5sum - 4b5d2dcfe8a49b73fb69f10aab441092 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libxml-2.6.24-linux-20080613.tar.bz2 - - linux64 - - md5sum - 921d7f980519101afb74623e29e9d175 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libxml-2.6.24-linux64-20080909.tar.bz2 - - - - llqtwebkit - - license - lgpl - packages - - darwin - - md5sum - f07b063cdc207479b111576dc74127f0 - url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110322.tar.bz2 - - linux - - md5sum - 5d743c93b970abe685b185de83001a6e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20100923.tar.bz2 - - windows - - md5sum - 1e66b1ecab911a60ba50b59361ef62e1 - url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.7.1-20110317.tar.bz2 - - - - mesa - - copyright - Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - description - Mesa 3-D graphics library. Provides the required Apple OpenGL headers under Linux. - license - mesa - packages - - linux - - md5sum - 70d0bbe1145fff29a0131349c898260e - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7.0-linux-20080812.tar.bz2 - - linux64 - - md5sum - 56630977f9261bd82039b0da08a0685c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-6.2.1-linux64-20081016.tar.bz2 - - windows - - md5sum - 82cdcdcb2d0615389a7480485ea35f4c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7.0-windows-20080613.tar.bz2 - - - - mysql - - license - gpl - packages - - darwin - - md5sum - df27f2db244ea2762759a06cd75ada4e - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/mysql-darwin-20080812.tar.bz2 - - linux - - md5sum - cc86b4cc858655e23704d1168325d7b9 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/mysqlclient-linux-20090320.tar.bz2 - - windows - - md5sum - 98bac06680dca907e783d8dd4aa9edde - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/mysql-windows-20080804.tar.bz2 - - - - ndofdev - - copyright - Copyright (c) 2007, 3Dconnexion, Inc. - All rights reserved. - description - in use on windows and darwin for joystick support. - license - linden - packages - - darwin - - md5sum - 17999c47e17f2dd9e12a22372ce8ff14 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-darwin-20080812.tar.bz2 - - linux - - md5sum - 9469c3732a33a154fa0a2807b9f36ccc - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-linux-0.2-20080828.tar.bz2 - - windows - - md5sum - f0df8a1e60991095e3adca1450b8c9c0 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-windows-20090917.tar.bz2 - - - - ogg-vorbis - - copyright - Copyright (C) 2008 Xiph.org Foundation - description - Ogg: container format Vorbis: audio compression scheme - license - ogg-vorbis - packages - - darwin - - md5sum - a6843398b780645c4897c9776c688926 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.03-1.1.2-darwin-20080812.tar.bz2 - - linux - - md5sum - 6dc0536329a0aadf76e3054ffd4da61c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.2.0-linux-20081201.tar.bz2 - - linux64 - - md5sum - 964c71e6ee22be1bcaf6d480e74cdd14 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.2.0-linux64-20080909.tar.bz2 - - windows - - md5sum - 9bf1fea65e66b2cd3075e6ffd7eb57ad - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.1.3-1.2.0-windows-20080723.tar.bz2 - - - - openSSL - - license - openSSL - packages - - darwin - - md5sum - 11d2be4f2b172430747b7d4a6739e3d8 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8l-darwin-20100428.tar.bz2 - - linux - - md5sum - f219ef07b02e2abb9282345c3a8f2b39 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.7c-linux-20080812.tar.bz2 - - linux64 - - md5sum - 00b23f28a2457d9dabbaff0b29ee7323 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8g-linux64-20080909.tar.bz2 - - windows - - md5sum - dd85209081b832e836de6e1538541d89 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openSSL-0.9.8j-windows-20090129.tar.bz2 - - - - openal-soft - - copyright - Copyright (C) 2008 by authors. - description - 3D Audio library - license - lgpl - packages - - darwin - - md5sum - a0757244e3e6688fde2ffeea35cc1f96 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-darwin-20080924.tar.bz2 - - linux - - md5sum - 75a7004ab14bea46594b1c652f1a6040 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-linux-20100120-3ad86a1c.tar.bz2 - - linux64 - - md5sum - 5ad0a3ab623356c1ad61394ba238f99f - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-soft-1.6.372-linux64-20081219.tar.bz2 - - windows - - md5sum - a0757244e3e6688fde2ffeea35cc1f96 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-windows-20080924.tar.bz2 - - - - openjpeg - - copyright - Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - description - An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release - license - openjpeg - packages - - darwin - - md5sum - 23313fda213a2496945435db2a0ee78b - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3.0-darwin-20090501.tar.bz2 - - linux - - md5sum - 02af0dad64803e0d821bc09e6038682c - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3-linux-20081124b.tar.bz2 - - linux64 - - md5sum - 44f1bc9d47e4a54fc274c213f2cb565f - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.2.0-linux64-20080909.tar.bz2 - - windows - - md5sum - 41541a98106894e28a6bf585010fea65 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.3-windows-20090407.tar.bz2 - - - - pulseaudio - - copyright - Copyright 2004-2006 Lennart Poettering, Copyright 2006 Pierre Ossman (ossman@cendio.se) for Cendio AB - description - pulseaudio: headers only - license - lgpl - packages - - linux - - md5sum - 30cb00069fe2a545fbf7be1070386236 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/linux-pulse-headers-0.9.14.tar.bz2 - - - - quicktime - - copyright - Copyright (C) 1990-2007 by Apple Computer, Inc., all rights reserved. - description - Separate download. Used to play in-world video clips on a prim. - license - quicktime - packages - - windows - - md5sum - be45825cc14ede53790ac93c58307dcb - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/quicktime-sdk-windows-7.3-20091110.tar.bz2 - - - - smartheap - - copyright - Copyright (C) 1991-2000 Compuware Corporation. All Rights Reserved. - description - Memory Management Library - license - smartheap - packages - - darwin - - md5sum - f54131b5f228e805c64c2e4e6c96579a - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/smartheap-6.0.2-darwin-20080610.tar.bz2 - - linux - - md5sum - 499208522bf7d7843e1d014d64214e06 - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/smartheap-6.0.2-linux-20080610.tar.bz2 - - windows - - md5sum - 78fd47017f21d11eae43bca3e38a3e1e - url - scp:install-packages.lindenlab.com:/local/www/install-packages/doc/smartheap-6.0.2-windows-20080611.tar.bz2 - - - - tut - - copyright - Copyright 2002-2006 Vladimir Dyuzhev, Copyright 2007 Denis Kononenko, Copyright 2008 Michal Rzechonek - description - C++ Template Unit Test - license - bsd - packages - - common - - md5sum - a1b8a118ba9df1f2a73f6aafa7980e83 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-2008-11-30-common-20081208.tar.bz2 - - - - unistd - - copyright - (c) 2008 Linden Lab. - description - Placeholder file to make flex happy on windows. - license - linden - packages - - windows - - md5sum - 6353aff33d7d03b22055aec76f53a866 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/unistd-windows-20080611.tar.bz2 - - - - slvoice - - copyright - - license - vivox - packages - - darwin - - md5sum - 2f9b3528d4b5f858fb8dcee4b6dd5188 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-darwin-20101117a.tar.bz2 - - linux - - md5sum - cde4728b8a75a76c72a8785815cb769f - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-linux-20101117a.tar.bz2 - - windows - - md5sum - 940ac55a6d0141c958bf2b14939d8474 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-windows-20101117a.tar.bz2 - - - - xmlrpc-epi - - copyright - Copyright 2000 Epinions, Inc. - description - Implementation of the xmlrpc protocol in C that provides an API for developers to serialize RPC requests to and from XML. - license - xmlrpc-epi - packages - - darwin - - md5sum - 2d3a918c88d756422c1a8139ebe15f56 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-darwin-20080812.tar.bz2 - - linux - - md5sum - 84a219199240ea70f54439c02acef0cd - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-linux-20080812.tar.bz2 - - linux64 - - md5sum - dc67b896c56116df8e18f2d1bbd07031 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-linux64-20080909.tar.bz2 - - windows - - md5sum - 262629bcaa39dcf7266caa50da01a599 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc-epi-0.51-windows-20091016.tar.bz2 - - - - zlib - - copyright - Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler - description - A Massively Spiffy Yet Delicately Unobtrusive Compression Library (Also Free, Not to Mention Unencumbered by Patents) - license - zlib - packages - - darwin - - md5sum - c844e1b05723ce078dbbd5aea9cdd3ad - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.1.4-darwin-20080818.tar.bz2 - - linux - - md5sum - 26fe88213c213dc6153690ab142c25ca - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3dfsg-linux-20091208.tar.bz2 - - linux64 - - md5sum - 4bddfb2c6dd7b1470a3ed675ac14bd9a - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3-linux64-20080909.tar.bz2 - - windows - - md5sum - 73baf52a740d151fddbc2a008369c462 - url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3-windows-20090921.tar.bz2 - - - - - licenses - - AFL2.1 - - url - http://opensource-definition.org/licenses/afl-2.1.html - - GL - - url - http://www.xfree86.org/4.4.0/LICENSE9.html#sgi - - MSDTW - - text - MICROSOFT SOFTWARE LICENSE TERMS -MICROSOFT DEBUGGING TOOLS FOR WINDOWS -These license terms are an agreement between Microsoft Corporation (or based on where you live, one of -its affiliates) and you. Please read them. They apply to the software named above, which includes the -media on which you received it, if any. The terms also apply to any Microsoft -* updates, -* supplements, -* Internet-based services -* support services, and -* Debugging symbol files that you may access over the internet -for this software, unless other terms accompany those items. If so, those terms apply. -By using the software, you accept these terms. If you do not accept them, do not use the -software. -If you comply with these license terms, you have the rights below. -1. INSTALLATION AND USE RIGHTS. One user may install and use any number of copies of the -software on your devices to design, develop, debug and test your programs. -2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. -a. Distributable Code. The software contains code that you are permitted to distribute in programs -you develop if you comply with the terms below. -i. Right to Use and Distribute. The code and text files listed below are “Distributable Code.” -* REDIST.TXT Files. You may copy and distribute the object code form of code listed in -REDIST.TXT files. -* Sample Code. You may modify, copy, and distribute the source and object code form of -code marked as “sample.” -* Third Party Distribution. You may permit distributors of your programs to copy and -distribute the Distributable Code as part of those programs. -ii. Distribution Requirements. For any Distributable Code you distribute, you must -* add significant primary functionality to it in your programs; -* require distributors and external end users to agree to terms that protect it at least as much -as this agreement; -* display your valid copyright notice on your programs; and -* indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, -related to the distribution or use of your programs. -iii. Distribution Restrictions. You may not -* alter any copyright, trademark or patent notice in the Distributable Code; -* distribute any symbol files which you may access or use under these license terms for the -software; -* use Microsoft’s trademarks in your programs’ names or in a way that suggests your -programs come from or are endorsed by Microsoft; -* distribute Distributable Code to run on a platform other than the Windows platform; -* include Distributable Code in malicious, deceptive or unlawful programs; or -* modify or distribute the source code of any Distributable Code so that any part of it -becomes subject to an Excluded License. An Excluded License is one that requires, as a -condition of use, modification or distribution, that -* the code be disclosed or distributed in source code form; or -* others have the right to modify it. -3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights -to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights -despite this limitation, you may use the software only as expressly permitted in this agreement. In -doing so, you must comply with any technical limitations in the software that only allow you to use it in -certain ways. You may not -* work around any technical limitations in the software; -* reverse engineer, decompile or disassemble the software, except and only to the extent that -applicable law expressly permits, despite this limitation; -* make more copies of the software than specified in this agreement or allowed by applicable law, -despite this limitation; -* publish the software for others to copy; -* rent, lease or lend the software; -* transfer the software or this agreement to any third party; or -* use the software for commercial software hosting services. -4. INTERNET-BASED SERVICES. Microsoft provides Internet-based services with the software. It may -change or cancel them at any time. -a. Consent for Internet-Based Services. The software contains features which may connect to -Microsoft or service provider computer systems over the Internet. In some cases, you will not -receive a separate notice when they connect. You may switch these features on or you may -choose not to use them. For more information about these features, see -http://www.microsoft.com/info/privacy/default.mspx. By using these features, you consent to the transmission of -this information. Microsoft does not use the information to identify or contact you. -b. Misuse of Internet-based Services. You may not use these services in any way that could -harm them or impair anyone else’s use of them. You may not use the services to try to gain -unauthorized access to any service, data, account or network by any means. - -5. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the -software. -6. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy -and use the documentation for your internal, reference purposes. -7. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You -must comply with all domestic and international export laws and regulations that apply to the software. -These laws include restrictions on destinations, end users and end use. For additional information, see -www.microsoft.com/exporting. -8. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. -9. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based -services and support services that you use, are the entire agreement for the software and support -services. -10. APPLICABLE LAW. -a. United States. If you acquired the software in the United States, Washington state law governs -the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of -laws principles. The laws of the state where you live govern all other claims, including claims under -state consumer protection laws, unfair competition laws, and in tort. -b. Outside the United States. If you acquired the software in any other country, the laws of that -country apply. -11. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the -laws of your country. You may also have rights with respect to the party from whom you acquired the -software. This agreement does not change your rights under the laws of your country if the laws of -your country do not permit it to do so. -12. DISCLAIMER OF WARRANTY. The software is licensed “as-is.” You bear the risk of using -it. Microsoft gives no express warranties, guarantees or conditions. You may have -additional consumer rights under your local laws which this agreement cannot change. To -the extent permitted under your local laws, Microsoft excludes the implied warranties of -merchantability, fitness for a particular purpose and non-infringement. -13. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from -Microsoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any -other damages, including consequential, lost profits, special, indirect or incidental -damages. -This limitation applies to -* anything related to the software, services, content (including code) on third party Internet sites, or -third party programs; and -* claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, -or other tort to the extent permitted by applicable law. -It also applies even if Microsoft knew or should have known about the possibility of the damages. The -above limitation or exclusion may not apply to you because your country may not allow the exclusion or -limitation of incidental, consequential or other damages. - - - apache 2.0 - - url - http://www.apache.org/licenses/LICENSE-2.0 - - artwork - - text - COPYRIGHT AND PERMISSION NOTICE - -Second Life(TM) Viewer Artwork. Copyright (C) 2008 Linden Research, Inc. - -Linden Research, Inc. ("Linden Lab") licenses the Second Life viewer -artwork and other works in the files distributed with this Notice under -the Creative Commons Attribution-Share Alike 3.0 License, available at -http://creativecommons.org/licenses/by-sa/3.0/legalcode. For the license -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/. - -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 -and clearly identify any changes made to the original works. Include -this Notice and information where copyright notices are usually included, -for example, after your own copyright notice acknowledging your use of -the Second Life viewer artwork, in a text file distributed with your -program, in your application's About window, or on a credits page for -your work. - - url - http://svn.secondlife.com/svn/linden/trunk/doc/LICENSE-logos.txt - - boost - - url - http://www.boost.org/LICENSE_1_0.txt - - bsd - - url - http://www.opensource.org/licenses/bsd-license.php - - c-ares - - text - http://daniel.haxx.se/projects/c-ares/license.html - - curl - - url - http://curl.haxx.se/docs/copyright.html - - fmod - - url - http://www.fmod.org/ifmodlicense.html - - freetype - - url - http://freetype.sourceforge.net/FTL.TXT - - glh_linear - - text - glh - is a platform-indepenedent C++ OpenGL helper library - -Copyright (c) 2000 Cass Everitt -Copyright (c) 2000 NVIDIA Corporation -All rights reserved. - -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following -conditions are met: - -Redistributions of source code must retain the above -copyright notice, this list of conditions and the following -disclaimer. -Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials -provided with the distribution. -The names of contributors to this software may not be used -to endorse or promote products derived from this software -without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -Cass Everitt - cass@r3.nu - - - - glut - - url - http://www.xmission.com/~nate/glut/README-win32.txt - - gpl - - url - http://www.gnu.org/licenses/gpl.html - - havok - - text - on file - - intel - - text - Haven't yet found. - - - jpeglib - - text - http://nyctergatis.com/jpeglib/ - - jsoncpp - - text - The json-cpp library and this documentation are in Public Domain. Retrieved from http://jsoncpp.sourceforge.net/ on 2009-09-04. - url - http://jsoncpp.sourceforge.net - - kdu - - text - jpeg2000 license #00024 (on file) - - lgpl - - url - http://www.gnu.org/copyleft/lgpl.html - - libpng - - text - http://www.libpng.org/pub/png/src/libpng-LICENSE.txt - - linden - - text - Using this license for Linden Lab owned library files - - mesa - - url - http://www.mesa3d.org/license.html - - mit - - text - http://www.jclark.com/xml/copying.txt - - ogg-vorbis - - url - http://www.xiph.org/licenses/bsd/ - - openSSL - - url - http://www.openssl.org/source/license.html - - openjpeg - - url - http://www.openjpeg.org/BSDlicense.txt - - quicktime - - text - ENGLISH - -Apple Computer, Inc. -QuickTime 7 Software Developer Kit (SDK) -Software License Agreement - -PLEASE READ THIS SOFTWARE LICENSE AGREEMENT ("LICENSE") BEFORE USING THE SOFTWARE. BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS LICENSE. IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, SIGNIFY YOUR AGREEMENT TO BE BOUND BY THE TERMS OF THIS LICENSE BY CLICKING THE "AGREE/ACCEPT" BUTTON. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, RETURN THE APPLE SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT FOR A REFUND OR, IF THE SOFTWARE WAS ACCESSED ELECTRONICALLY, CLICK "DISAGREE/DECLINE". - -IMPORTANT NOTE: To the extent this software may be used to reproduce materials, it is licensed to you only for reproduction of materials you are authorized or legally permitted to reproduce. - -1. License. Any software, tools, utilities, sample code, documentation, fonts, API?s, header files and other materials accompanying this License, whether on disk, print or electronic documentation, in read only memory, or any other media, (collectively, the "Apple Software") are licensed, not sold, to you by Apple Computer, Inc. ("Apple") for use only under the terms of this License, and Apple reserves all rights not expressly granted to you. The rights granted herein are limited to Apple's and its licensors' intellectual property rights in the Apple Software and do not include any other patents or intellectual property rights. You own the media on which the Apple Software is recorded but Apple and/or Apple's licensor(s) retain ownership of the Apple Software itself. The Apple Software in this package and any copies, modifications and derivative works that this License authorizes you to make are subject to this License. - -2. Permitted Uses and Restrictions. You may use the Apple Software to develop application software that is compatible with, and runs only on Mac OS X and/or Windows platforms with QuickTime installed. Except for compiling header files and linking libraries as necessary to build your application software, you have no right to modify, incorporate into or include in combination with your own programs, license or otherwise redistribute any portion of the Apple Software. Your software application may not interfere with the functionality of QuickTime Player or the QuickTime Plug-in, including but not limited to file type or MIME type associations that are registered to QuickTime. You may make only as many internal use copies of the Apple Software as reasonably necessary to use the Apple Software as permitted in this paragraph and distribute such copies only to your employees whose job duties require them to so use the Apple Software. You must reproduce on each copy of the Apple Software or portion thereof, the Apple copyright notice and any other proprietary legends that were on the original copy of the Apple Software. Except as expressly permitted in this License, you may not decompile, reverse engineer, disassemble, modify, rent, lease, loan, sublicense, distribute or create derivative works based upon the Apple Software in whole or part. Your rights under this License will terminate automatically without notice from Apple if you fail to comply with any term(s) of this License. In addition, Apple reserves the right to terminate this License if a new version of Apple's operating system software or the Apple Software is released which is incompatible with the Apple Software. - -3. Disclaimer Of Warranty. The Apple Software may be "alpha", "beta", "development", pre-release, untested, and/or not fully tested and may contain errors that could cause failures or loss of data, be incomplete or contain inaccuracies. YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THE APPLE SOFTWARE IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU. EXCEPT FOR THE LIMITED WARRANTY ON MEDIA SET FORTH ABOVE AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE APPLE SOFTWARE IS PROVIDED "AS IS", WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND APPLE AND APPLE'S LICENSORS (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE PURPOSES OF SECTIONS 4 AND 5) HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE APPLE SOFTWARE, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. APPLE DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE APPLE SOFTWARE, THAT THE FUNCTIONS CONTAINED IN THE APPLE SOFTWARE WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE APPLE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE APPLE SOFTWARE WILL BE CORRECTED. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SHOULD THE APPLE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO THE ABOVE EXCLUSION AND LIMITATIONS MAY NOT APPLY TO YOU. - -4. Limitation Of Liability. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT SHALL APPLE BE LIABLE FOR PERSONAL INJURY, OR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY TO USE THE APPLE SOFTWARE, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT OR OTHERWISE) AND EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event shall Apple's total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount of fifty dollars ($50.00). The foregoing limitations will apply even if the above stated remedy fails of its essential purpose. - -5. Export Control. You may not use or otherwise export or reexport the Apple Product except as authorized by United States law and the laws of the jurisdiction in which the Apple Product was obtained. In particular, but without limitation, the Apple Product may not be exported or re-exported (a) into any U.S. embargoed countries or (b) to anyone on the U.S. Treasury Department's list of Specially Designated Nationals or the U.S. Department of Commerce Denied Person?s List or Entity List. By using the Apple Product, you represent and warrant that you are not located in any such country or on any such list. - -6. Government End Users. The Apple Software and related documentation are "Commercial Items", as that term is defined at 48 C.F.R. ?2.101, consisting of "Commercial Computer Software" and "Commercial Computer Software Documentation", as such terms are used in 48 C.F.R. ?12.212 or 48 C.F.R. ?227.7202, as applicable. Consistent with 48 C.F.R. ?12.212 or 48 C.F.R. ?227.7202-1through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. - -7. Controlling Law and Severability. This License will be governed by and construed in accordance with the laws of the State of California, as applied to agreements entered into and to be performed entirely within California between California residents. This License shall not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded. If for any reason a court of competent jurisdiction finds any provision, or portion thereof, to be unenforceable, the remainder of this License shall continue in full force and effect. - -8. Complete Agreement. This License constitutes the entire agreement between the parties with respect to the use of the Apple Software licensed hereunder and supersedes all prior or contemporaneous understandings regarding such subject matter. No amendment to or modification of this License will be binding unless in writing and signed by Apple. Any translation of this License is done for local requirements and in the event of a dispute between the English and any non-English versions, the English version of this License shall govern. - -EA0300 - - - sleepycat - - url - http://opensource.org/licenses/sleepycat.php - - smartheap - - text - on file - - - things - - - vivox - - text - on file - - xmlrpc-epi - - url - http://xmlrpc-epi.sourceforge.net/main.php?t=license - - zlib - - url - http://www.gzip.org/zlib/zlib_license.html - - - - -- cgit v1.3 From d2c697832f707ebcc102b489b83bdf6ed1760d93 Mon Sep 17 00:00:00 2001 From: callum Date: Tue, 17 May 2011 09:31:43 -0700 Subject: Point to updated (working) builds of LLQtWebKit. Windows one was missing debug libs/dlls Mac one was missing updated exports. Linux one included for completeness. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ba0eb75f16..7044cc27c8 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1062,9 +1062,9 @@ archive hash - 1aec55e90d510ffa3beb83c427af8312 + f13dd42b97d11b138625d5d08c141f63 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/229944/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110513.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110516.tar.bz name darwin @@ -1074,9 +1074,9 @@ archive hash - 834215a2a004efb983e318d9c458d112 + 9f4d1203d2138398d3b17b78021ed536 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/229944/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110513.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110517.tar.bz2 name linux @@ -1086,9 +1086,9 @@ archive hash - 4442288be66754063f7dbc53b9b4a9a9 + 2cacfcffe0e019fd22d6efe57840775f url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/229944/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110513.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110516.tar.bz2 name windows -- cgit v1.3 From 465072626e7ad2aa33b3cc48f1a161a0023c5483 Mon Sep 17 00:00:00 2001 From: callum Date: Tue, 17 May 2011 10:05:49 -0700 Subject: Typo in Mac/Darwin LLQtWebkit archive name --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 7044cc27c8..e13b00b086 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1064,7 +1064,7 @@ hash f13dd42b97d11b138625d5d08c141f63 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110516.tar.bz + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110516.tar.bz2 name darwin -- cgit v1.3 From bd37b14e9217935b9d70faf04c835c9d4aeda9c7 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Tue, 17 May 2011 17:25:38 -0400 Subject: BUILDFIX: copy/paste error in mesh autobuild.xml causes configure to fail. copy/paste error in autobuild.xml caused INSTALL_PROPRIETARY to be set to TRUE for OS builds. This causes configure to fail as llconvexdecomposition is not available to OS devs. Changing INSTALL_PROPRIETARY to false for OS devs so that llconvexdecompositionstub is used instead. problem only affects windows builds. --- autobuild.xml | 1 - 1 file changed, 1 deletion(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 0e4db1bdca..94c2fe1b9d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2317,7 +2317,6 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON - -DINSTALL_PROPRIETARY=TRUE -DUSE_KDU=FALSE -DFMOD=FALSE -- cgit v1.3 From 9075e1104fd8238991f42b90e51b77d3497db02a Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 17 May 2011 19:26:18 -0400 Subject: fix merge error in open source configurations to disable proprietary components --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 94c2fe1b9d..d908344df9 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2393,7 +2393,7 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON - -DINSTALL_PROPRIETARY=TRUE + -DINSTALL_PROPRIETARY=FALSE -DUSE_KDU=FALSE -DFMOD=FALSE @@ -2469,7 +2469,7 @@ -G "Visual Studio 10" -DUNATTENDED:BOOL=ON - -DINSTALL_PROPRIETARY=TRUE + -DINSTALL_PROPRIETARY=FALSE -DUSE_KDU=FALSE -DFMOD=FALSE -- cgit v1.3 From 42654e759e4c1971bd2f5ea9968190a19c3956f0 Mon Sep 17 00:00:00 2001 From: callum Date: Tue, 17 May 2011 17:47:06 -0700 Subject: Replace older (but working) reference to version of LLQtWebKit for Linux --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index e13b00b086..b84a2c848b 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1074,9 +1074,9 @@ archive hash - 9f4d1203d2138398d3b17b78021ed536 + c05a33ee8b6f253b5a744596dfc3707d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110517.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20101013.tar.bz2 name linux -- cgit v1.3 From b1803a8cb9a12807f6cf287f2fa9223af1ae6040 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Thu, 19 May 2011 17:25:42 -0600 Subject: fix for SH-1185: uploading large mesh file sometimes fails and locks up viewer. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 0e4db1bdca..c2196fcf21 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -18,9 +18,9 @@ archive hash - 7c546f54f6ed654f713c778af3925dd4 + 930bdd987a321eda1838caba8cd6098f url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226566/arch/Darwin/installer/glod-1.0pre4-darwin-20110413.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/230348/arch/Darwin/installer/glod-1.0pre4-darwin-20110519.tar.bz2 name darwin @@ -30,9 +30,9 @@ archive hash - 18c708163d2a669bc3c030b05b4ebe61 + fb33b6cac2e6b98f93c5efa2af2e5a00 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226657/arch/Linux/installer/glod-1.0pre4-linux-20110414.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/230348/arch/Linux/installer/glod-1.0pre4-linux-20110519.tar.bz2 name linux @@ -42,9 +42,9 @@ archive hash - c4ae6cddc04e0b2908a301726a53922c + 388cf0e292f756b4bb37696622f0bbc5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/226194/arch/CYGWIN/installer/glod-1.0pre4-windows-20110408.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/230348/arch/CYGWIN/installer/glod-1.0pre4-windows-20110519.tar.bz2 name windows -- cgit v1.3 From ae6ceb6193aa2070fbcafa79a8531af80cce1507 Mon Sep 17 00:00:00 2001 From: callum Date: Wed, 25 May 2011 10:19:00 -0700 Subject: Point to updated version of LLQtWebKit that supports local changes., --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index b84a2c848b..151f680e3e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1062,9 +1062,9 @@ archive hash - f13dd42b97d11b138625d5d08c141f63 + c62b44436e1c4319e75e646512b1632c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110516.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230953/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110525.tar.bz2 name darwin @@ -1086,9 +1086,9 @@ archive hash - 2cacfcffe0e019fd22d6efe57840775f + 3cc6ab358f7f19cbdee7774d222380f3 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230056/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110516.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230953/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110525.tar.bz2 name windows -- cgit v1.3 From 4cd295badd5fa51c6b9d5cb52726e48a57ba3bec Mon Sep 17 00:00:00 2001 From: callum Date: Thu, 26 May 2011 12:42:19 -0700 Subject: Updated links to new version of LLQtWebKit package for Mac with valid exports file. Addition of Windows version for completenes. No changes. --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 09ebee3720..8851e003ea 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1206,9 +1206,9 @@ archive hash - c62b44436e1c4319e75e646512b1632c + 82798d0da3ac3d97c91517a575d9ea1c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230953/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110525.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/231093/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110526.tar.bz2 name darwin @@ -1230,9 +1230,9 @@ archive hash - 3cc6ab358f7f19cbdee7774d222380f3 + f0708d18943a05013493f69ab7dc6429 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/230953/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110525.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/231093/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110526.tar.bz2 name windows -- cgit v1.3 From fe9eccdbae9af3c61bff4637c1a61cdc09068a32 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Wed, 1 Jun 2011 15:40:29 -0700 Subject: updating slvoice libraries --- autobuild.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 8851e003ea..a33cfdd4fd 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1524,7 +1524,7 @@ hash bb0abe962b3b8208ed2dab0424aab33d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 name linux @@ -1570,9 +1570,9 @@ archive hash - e19576af3c0affc71293d8f0bcce2606 + 24e735ae005f3ce7a21a09cc02cece17 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-darwin-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-slvoice/rev/231678/arch/Darwin/installer/slvoice-3.2.0002.10426-darwin-20110601.tar.bz2 name darwin @@ -1582,9 +1582,9 @@ archive hash - 53fefed8120d7c6a0eb6778edae6fa32 + 8a0bc982367d6fdc20a28b391cd40566 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-linux-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-slvoice/rev/231678/arch/Linux/installer/slvoice-3.2.0002.10426-linux-20110601.tar.bz2 name linux @@ -1594,9 +1594,9 @@ archive hash - 44f84b3b45f7067a104a7c34d50d62f0 + 1e821cc7d25eabad013b7f3db260dd6b url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/slvoice-3.2.0002.9361-windows-20110120.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-slvoice/rev/231678/arch/CYGWIN/installer/slvoice-3.2.0002.10426-windows-20110601.tar.bz2 name windows -- cgit v1.3 From a3842d963764d0231c0fb7b1777e05fb776af358 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Mon, 6 Jun 2011 23:04:48 -0600 Subject: fix for SH-588: Uploading a mesh crashes viewer --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 2c8a254a75..45c05d19ad 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -18,9 +18,9 @@ archive hash - 930bdd987a321eda1838caba8cd6098f + 3ecad1f19fb884e4ce0c27f6407cb5d9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/230348/arch/Darwin/installer/glod-1.0pre4-darwin-20110519.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232171/arch/Darwin/installer/glod-1.0pre4-darwin-20110606.tar.bz2 name darwin @@ -30,9 +30,9 @@ archive hash - fb33b6cac2e6b98f93c5efa2af2e5a00 + f1f73a9ca1d2dfa68570c7379ebabcce url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/230348/arch/Linux/installer/glod-1.0pre4-linux-20110519.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232171/arch/Linux/installer/glod-1.0pre4-linux-20110607.tar.bz2 name linux @@ -42,9 +42,9 @@ archive hash - 388cf0e292f756b4bb37696622f0bbc5 + afcf9be19bebee7713ca5188b645d2b0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/230348/arch/CYGWIN/installer/glod-1.0pre4-windows-20110519.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232171/arch/CYGWIN/installer/glod-1.0pre4-windows-20110606.tar.bz2 name windows -- cgit v1.3 From dfdf6aed23272a4e960bed085bced3ec74108125 Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Tue, 7 Jun 2011 18:22:09 -0600 Subject: fix for SH-1765: palm tree model fails to load in viewer --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 45c05d19ad..1548a9678d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -18,9 +18,9 @@ archive hash - 3ecad1f19fb884e4ce0c27f6407cb5d9 + 76827e62b9af4756caa1d3d8da0bafc3 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232171/arch/Darwin/installer/glod-1.0pre4-darwin-20110606.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232275/arch/Darwin/installer/glod-1.0pre4-darwin-20110607.tar.bz2 name darwin @@ -30,9 +30,9 @@ archive hash - f1f73a9ca1d2dfa68570c7379ebabcce + 7841a681db47017ccc6527b52876bacb url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232171/arch/Linux/installer/glod-1.0pre4-linux-20110607.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232275/arch/Linux/installer/glod-1.0pre4-linux-20110607.tar.bz2 name linux @@ -42,9 +42,9 @@ archive hash - afcf9be19bebee7713ca5188b645d2b0 + cca713fe7395260d91aaef2f2b5d820a url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232171/arch/CYGWIN/installer/glod-1.0pre4-windows-20110606.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232275/arch/CYGWIN/installer/glod-1.0pre4-windows-20110607.tar.bz2 name windows -- cgit v1.3 From 7847c8941f8c78ab7cdef65aadf4dfccf645bbf3 Mon Sep 17 00:00:00 2001 From: callum Date: Thu, 9 Jun 2011 13:48:35 -0700 Subject: EXP-676 FIX As a web developer, I want to access information about the current state of the SL client, such as avatar location --- autobuild.xml | 8 +-- indra/llplugin/llpluginclassmedia.cpp | 18 +----- indra/llplugin/llpluginclassmedia.h | 3 +- indra/media_plugins/webkit/media_plugin_webkit.cpp | 36 ++++++----- indra/newview/llviewermedia.cpp | 69 +++++++++++----------- 5 files changed, 64 insertions(+), 70 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index b59e3757c4..3fb0d6a9be 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1206,9 +1206,9 @@ archive hash - 82798d0da3ac3d97c91517a575d9ea1c + a7c80fd8516df3b879b669b2b220067f url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/231093/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110526.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/232420/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110608.tar.bz2 name darwin @@ -1230,9 +1230,9 @@ archive hash - f0708d18943a05013493f69ab7dc6429 + b9cc0333cc274c9cc40256ab7146b4fc url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/231093/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110526.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/232420/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110608.tar.bz2 name windows diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 8f161201f4..d3d0403bbb 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -436,27 +436,15 @@ std::string LLPluginClassMedia::translateModifiers(MASK modifiers) return result; } -void LLPluginClassMedia::jsExposeObjectEvent( bool expose ) +void LLPluginClassMedia::jsEnableObject( bool enable ) { if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) { return; } - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_expose_object"); - message.setValueBoolean( "expose", expose ); - sendMessage( message ); -} - -void LLPluginClassMedia::jsValuesValidEvent( bool valid ) -{ - if( ! mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked() ) - { - return; - } - - LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_values_valid"); - message.setValueBoolean( "valid", valid ); + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "js_enable_object"); + message.setValueBoolean( "enable", enable ); sendMessage( message ); } diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index c061390699..f8ed89f644 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -119,8 +119,7 @@ public: void scrollEvent(int x, int y, MASK modifiers); // Javascript <-> viewer events - void jsExposeObjectEvent( bool expose ); - void jsValuesValidEvent( bool valid ); + void jsEnableObject( bool enable ); void jsAgentLocationEvent( double x, double y, double z ); void jsAgentGlobalLocationEvent( double x, double y, double z ); void jsAgentOrientationEvent( double angle ); diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 27f3c7260e..fca071c628 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -1168,19 +1168,11 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) authResponse(message_in); } else - if(message_name == "js_expose_object") + if(message_name == "js_enable_object") { #if LLQTWEBKIT_API_VERSION >= 9 - bool expose_object = message_in.getValueBoolean( "expose" ); - LLQtWebKit::getInstance()->setExposeObject( expose_object ); -#endif - } - else - if(message_name == "js_values_valid") - { -#if LLQTWEBKIT_API_VERSION >= 9 - bool valid = message_in.getValueBoolean( "valid" ); - LLQtWebKit::getInstance()->setValuesValid( valid ); + bool enable = message_in.getValueBoolean( "enable" ); + LLQtWebKit::getInstance()->setSLObjectEnabled( enable ); #endif } else @@ -1191,6 +1183,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) F32 y = message_in.getValueReal("y"); F32 z = message_in.getValueReal("z"); LLQtWebKit::getInstance()->setAgentLocation( x, y, z ); + LLQtWebKit::getInstance()->emitLocation(); #endif } else @@ -1201,6 +1194,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) F32 y = message_in.getValueReal("y"); F32 z = message_in.getValueReal("z"); LLQtWebKit::getInstance()->setAgentGlobalLocation( x, y, z ); + LLQtWebKit::getInstance()->emitLocation(); #endif } else @@ -1209,6 +1203,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) #if LLQTWEBKIT_API_VERSION >= 9 F32 angle = message_in.getValueReal("angle"); LLQtWebKit::getInstance()->setAgentOrientation( angle ); + LLQtWebKit::getInstance()->emitLocation(); #endif } else @@ -1217,14 +1212,25 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) #if LLQTWEBKIT_API_VERSION >= 9 const std::string& region = message_in.getValue("region"); LLQtWebKit::getInstance()->setAgentRegion( region ); + LLQtWebKit::getInstance()->emitLocation(); #endif } else - if(message_name == "js_agent_maturity") + if(message_name == "js_agent_maturity") + { +#if LLQTWEBKIT_API_VERSION >= 9 + const std::string& maturity = message_in.getValue("maturity"); + LLQtWebKit::getInstance()->setAgentMaturity( maturity ); + LLQtWebKit::getInstance()->emitMaturity(); +#endif + } + else + if(message_name == "js_agent_language") { #if LLQTWEBKIT_API_VERSION >= 9 - const std::string& maturity = message_in.getValue("maturity"); - LLQtWebKit::getInstance()->setAgentMaturity( maturity ); + const std::string& language = message_in.getValue("language"); + LLQtWebKit::getInstance()->setAgentLanguage( language ); + LLQtWebKit::getInstance()->emitLanguage(); #endif } else @@ -1384,3 +1390,5 @@ int init_media_plugin(LLPluginInstance::sendMessageFunction host_send_func, void return 0; } + + diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 1e53274cd6..b94da4b64c 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -2349,43 +2349,42 @@ void LLViewerMediaImpl::updateJavascriptObject() if ( mMediaSource ) { // flag to expose this information to internal browser or not. - bool expose_javascript_object = gSavedSettings.getBOOL("BrowserEnableJSObject"); - mMediaSource->jsExposeObjectEvent( expose_javascript_object ); + bool enable = gSavedSettings.getBOOL("BrowserEnableJSObject"); + mMediaSource->jsEnableObject( enable ); - // indicate if the values we have are valid (currently do this blanket-fashion for - // everything depending on whether you are logged in or not - this may require a - // more granular approach once variables are added that ARE valid before login + // these values are only menaingful after login so don't set them before bool logged_in = LLLoginInstance::getInstance()->authSuccess(); - mMediaSource->jsValuesValidEvent( logged_in ); - - // current location within a region - LLVector3 agent_pos = gAgent.getPositionAgent(); - double x = agent_pos.mV[ VX ]; - double y = agent_pos.mV[ VY ]; - double z = agent_pos.mV[ VZ ]; - mMediaSource->jsAgentLocationEvent( x, y, z ); - - // current location within the grid - LLVector3d agent_pos_global = gAgent.getLastPositionGlobal(); - double global_x = agent_pos_global.mdV[ VX ]; - double global_y = agent_pos_global.mdV[ VY ]; - double global_z = agent_pos_global.mdV[ VZ ]; - mMediaSource->jsAgentGlobalLocationEvent( global_x, global_y, global_z ); - - // current agent orientation - double rotation = atan2( gAgent.getAtAxis().mV[VX], gAgent.getAtAxis().mV[VY] ); - double angle = rotation * RAD_TO_DEG; - if ( angle < 0.0f ) angle = 360.0f + angle; // TODO: has to be a better way to get orientation! - mMediaSource->jsAgentOrientationEvent( angle ); - - // current region agent is in - std::string region_name(""); - LLViewerRegion* region = gAgent.getRegion(); - if ( region ) - { - region_name = region->getName(); - }; - mMediaSource->jsAgentRegionEvent( region_name ); + if ( logged_in ) + { + // current location within a region + LLVector3 agent_pos = gAgent.getPositionAgent(); + double x = agent_pos.mV[ VX ]; + double y = agent_pos.mV[ VY ]; + double z = agent_pos.mV[ VZ ]; + mMediaSource->jsAgentLocationEvent( x, y, z ); + + // current location within the grid + LLVector3d agent_pos_global = gAgent.getLastPositionGlobal(); + double global_x = agent_pos_global.mdV[ VX ]; + double global_y = agent_pos_global.mdV[ VY ]; + double global_z = agent_pos_global.mdV[ VZ ]; + mMediaSource->jsAgentGlobalLocationEvent( global_x, global_y, global_z ); + + // current agent orientation + double rotation = atan2( gAgent.getAtAxis().mV[VX], gAgent.getAtAxis().mV[VY] ); + double angle = rotation * RAD_TO_DEG; + if ( angle < 0.0f ) angle = 360.0f + angle; // TODO: has to be a better way to get orientation! + mMediaSource->jsAgentOrientationEvent( angle ); + + // current region agent is in + std::string region_name(""); + LLViewerRegion* region = gAgent.getRegion(); + if ( region ) + { + region_name = region->getName(); + }; + mMediaSource->jsAgentRegionEvent( region_name ); + } // language code the viewer is set to mMediaSource->jsAgentLanguageEvent( LLUI::getLanguage() ); -- cgit v1.3 From 0b92d52d78772d6cc447a53fe12f01b31b2c371c Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Mon, 13 Jun 2011 11:52:50 -0600 Subject: fix for SH-1412: Mesh upload dialog freezes viewer when uploading certain meshes. --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index 6349ea47e2..3cccddf861 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -18,9 +18,9 @@ archive hash - 76827e62b9af4756caa1d3d8da0bafc3 + b2fe1c860613a68e74d4384be418ffee url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232275/arch/Darwin/installer/glod-1.0pre4-darwin-20110607.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232684/arch/Darwin/installer/glod-1.0pre4-darwin-20110610.tar.bz2 name darwin @@ -30,9 +30,9 @@ archive hash - 7841a681db47017ccc6527b52876bacb + c0c64dae149d0892343e2ff300fd06b9 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232275/arch/Linux/installer/glod-1.0pre4-linux-20110607.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232684/arch/Linux/installer/glod-1.0pre4-linux-20110611.tar.bz2 name linux @@ -42,9 +42,9 @@ archive hash - cca713fe7395260d91aaef2f2b5d820a + 842208365f5b108dac4c7c733b99da9c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232275/arch/CYGWIN/installer/glod-1.0pre4-windows-20110607.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/232684/arch/CYGWIN/installer/glod-1.0pre4-windows-20110610.tar.bz2 name windows -- cgit v1.3 From 796624d947b3d1caba8cdf3f9aba6155c5b0a3d4 Mon Sep 17 00:00:00 2001 From: Logan Dethrow Date: Fri, 17 Jun 2011 13:07:14 -0400 Subject: STORM-1320 OPEN-21 STORM-312 Update libndofdev on linux. Fixes spacenavigator. --- autobuild.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ec52d6e331..15212aa647 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1290,9 +1290,9 @@ archive hash - c81bacf922bb3b540d92b660364c48ce + 9bf7a96c1d2fadb180fda91740c945c6 url - http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ndofdev-linux-0.2-20101013.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libndofdev-linux/rev/233137/arch/Linux/installer/libndofdev-0.3-linux-20110617.tar.bz2 name linux @@ -1524,7 +1524,7 @@ hash bb0abe962b3b8208ed2dab0424aab33d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2 name linux -- cgit v1.3 From 06e18dd44dcd7fa4ea6af89d329ca4e0a8c350cb Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Mon, 27 Jun 2011 12:43:46 -0700 Subject: STORM-1447 Use setenv stanza rather than grep -v setenv. --- autobuild.xml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'autobuild.xml') diff --git a/autobuild.xml b/autobuild.xml index ec52d6e331..75a3f3bc48 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1907,11 +1907,8 @@ build - arguments + filters - | - grep - -v setenv command @@ -1964,11 +1961,8 @@ build - arguments + filters - | - grep - -v setenv command @@ -2023,11 +2017,8 @@ build - arguments + filters - | - grep - -v setenv command -- cgit v1.3