summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-xindra/cmake/Boost.cmake13
-rwxr-xr-xindra/cmake/Copy3rdPartyLibs.cmake13
-rwxr-xr-xindra/cmake/Linking.cmake1
-rwxr-xr-xindra/cmake/OpenSSL.cmake2
-rwxr-xr-xindra/cmake/PNG.cmake25
-rwxr-xr-xindra/cmake/WebKitLibPlugin.cmake16
-rwxr-xr-xindra/cmake/ZLIB.cmake21
-rwxr-xr-xindra/edit-me-to-trigger-new-build.txt5
-rwxr-xr-xindra/llcommon/CMakeLists.txt2
-rwxr-xr-xindra/media_plugins/webkit/CMakeLists.txt12
-rwxr-xr-xindra/newview/CMakeLists.txt29
-rwxr-xr-xindra/newview/viewer_manifest.py97
-rw-r--r--indra/test_apps/llfbconnecttest/CMakeLists.txt118
-rw-r--r--indra/test_apps/llfbconnecttest/README.Linden20
-rwxr-xr-xindra/test_apps/llplugintest/CMakeLists.txt126
-rw-r--r--indra/test_apps/llplugintest/README.Linden21
-rwxr-xr-xindra/viewer_components/login/CMakeLists.txt4
17 files changed, 421 insertions, 104 deletions
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index cff762e1f0..348521a77c 100755
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -8,6 +8,7 @@ if (STANDALONE)
include(FindBoost)
set(BOOST_CONTEXT_LIBRARY boost_context-mt)
+ set(BOOST_COROUTINE_LIBRARY boost_coroutine-mt)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
@@ -17,10 +18,11 @@ if (STANDALONE)
else (STANDALONE)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
- set(BOOST_VERSION "1.52")
+ set(BOOST_VERSION "1.55")
if (WINDOWS)
if(MSVC80)
+ # This should be obsolete at this point
set(BOOST_CONTEXT_LIBRARY
optimized libboost_context-vc80-mt-${BOOST_VERSION}
debug libboost_context-vc80-mt-gd-${BOOST_VERSION})
@@ -47,6 +49,9 @@ else (STANDALONE)
set(BOOST_CONTEXT_LIBRARY
optimized libboost_context-mt
debug libboost_context-mt-gd)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized libboost_coroutine-mt
+ debug libboost_coroutine-mt-gd)
set(BOOST_FILESYSTEM_LIBRARY
optimized libboost_filesystem-mt
debug libboost_filesystem-mt-gd)
@@ -70,6 +75,9 @@ else (STANDALONE)
set(BOOST_CONTEXT_LIBRARY
optimized boost_context-mt
debug boost_context-mt-d)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized boost_coroutine-mt
+ debug boost_coroutine-mt-d)
set(BOOST_FILESYSTEM_LIBRARY
optimized boost_filesystem-mt
debug boost_filesystem-mt-d)
@@ -92,6 +100,9 @@ else (STANDALONE)
set(BOOST_CONTEXT_LIBRARY
optimized boost_context-mt
debug boost_context-mt-d)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized boost_coroutine-mt
+ debug boost_coroutine-mt-d)
set(BOOST_FILESYSTEM_LIBRARY
optimized boost_filesystem-mt
debug boost_filesystem-mt-d)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index f98e88b697..068f1e9af7 100755
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -213,15 +213,14 @@ elseif(DARWIN)
libapr-1.dylib
libaprutil-1.0.dylib
libaprutil-1.dylib
+ libcollada14dom.dylib
+ libexception_handler.dylib
libexpat.1.5.2.dylib
libexpat.dylib
libGLOD.dylib
- libllqtwebkit.dylib
+ libhunspell-1.3.0.dylib
libminizip.a
libndofdev.dylib
- libhunspell-1.3.0.dylib
- libexception_handler.dylib
- libcollada14dom.dylib
)
if (FMODEX)
@@ -260,6 +259,7 @@ elseif(LINUX)
libaprutil-1.so.0
libatk-1.0.so
libboost_context-mt.so.${BOOST_VERSION}.0
+ libboost_coroutine-mt.so.${BOOST_VERSION}.0
libboost_filesystem-mt.so.${BOOST_VERSION}.0
libboost_program_options-mt.so.${BOOST_VERSION}.0
libboost_regex-mt.so.${BOOST_VERSION}.0
@@ -267,7 +267,6 @@ elseif(LINUX)
libboost_system-mt.so.${BOOST_VERSION}.0
libboost_thread-mt.so.${BOOST_VERSION}.0
libcollada14dom.so
- libcrypto.so.1.0.0
libdb-5.1.so
libexpat.so
libexpat.so.1
@@ -283,11 +282,9 @@ elseif(LINUX)
libminizip.so
libopenal.so
libopenjpeg.so
- libssl.so
libuuid.so.16
libuuid.so.16.0.22
- libssl.so.1.0.0
- libfontconfig.so.1.4.4
+ libfontconfig.so.1.8.0
)
if (USE_TCMALLOC)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index b9c9e531fc..74fe3f1137 100755
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -6,6 +6,7 @@ set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
include(Variables)
set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib)
+set(ARCH_PREBUILT_DIRS_PLUGINS ${AUTOBUILD_INSTALL_DIR}/plugins)
set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release)
set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug)
if (WINDOWS)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 2704912eb5..4593821921 100755
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -17,7 +17,7 @@ else (STANDALONE)
endif (STANDALONE)
if (LINUX)
- set(CRYPTO_LIBRARIES crypto)
+ set(CRYPTO_LIBRARIES crypto dl)
elseif (DARWIN)
set(CRYPTO_LIBRARIES crypto)
endif (LINUX)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 913c575672..9653591f67 100755
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -9,13 +9,26 @@ if (STANDALONE)
else (STANDALONE)
use_prebuilt_binary(libpng)
if (WINDOWS)
- set(PNG_LIBRARIES libpng15)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
+ set(PNG_LIBRARIES libpng16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
elseif(DARWIN)
- set(PNG_LIBRARIES png15)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
+ set(PNG_LIBRARIES png16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
else()
- set(PNG_LIBRARIES png15)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lpng16 here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(PNG_PRELOAD_ARCHIVES -Wl,--whole-archive png16 -Wl,--no-whole-archive)
+ set(PNG_LIBRARIES png16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
endif()
endif (STANDALONE)
diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake
index d9df78bfc8..9c4579ecf3 100755
--- a/indra/cmake/WebKitLibPlugin.cmake
+++ b/indra/cmake/WebKitLibPlugin.cmake
@@ -53,8 +53,18 @@ if (WINDOWS)
)
elseif (DARWIN)
set(WEBKIT_PLUGIN_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib
)
elseif (LINUX)
set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES})
@@ -70,7 +80,7 @@ elseif (LINUX)
QtNetwork
QtGui
QtCore
- jscore
+# jscore
# qgif
# qjpeg
# jpeg
diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake
index 48e5130ad5..0470f3e797 100755
--- a/indra/cmake/ZLIB.cmake
+++ b/indra/cmake/ZLIB.cmake
@@ -13,10 +13,23 @@ else (STANDALONE)
set(ZLIB_LIBRARIES
debug zlibd
optimized zlib)
- else (WINDOWS)
+ elseif (LINUX)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lz here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(ZLIB_PRELOAD_ARCHIVES -Wl,--whole-archive z -Wl,--no-whole-archive)
+ set(ZLIB_LIBRARIES z)
+ elseif (DARWIN)
set(ZLIB_LIBRARIES z)
endif (WINDOWS)
- if (WINDOWS OR LINUX)
- set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
- endif (WINDOWS OR LINUX)
+ set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
endif (STANDALONE)
diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt
index beeb570496..74c472dc0e 100755
--- a/indra/edit-me-to-trigger-new-build.txt
+++ b/indra/edit-me-to-trigger-new-build.txt
@@ -1,7 +1,4 @@
-Wed Nov 7 00:25:19 UTC 2012
-
-
-
+Thu, Oct 17, 2013 6:49:30 PM
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 5856e06b67..81ccb756e0 100755
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -302,7 +302,7 @@ if (LL_TESTS)
LL_ADD_INTEGRATION_TEST(llunits "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(stringize "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(lleventdispatcher "" "${test_libs}")
- LL_ADD_INTEGRATION_TEST(lleventcoro "" "${test_libs};${BOOST_CONTEXT_LIBRARY}")
+ LL_ADD_INTEGRATION_TEST(lleventcoro "" "${test_libs};${BOOST_CONTEXT_LIBRARY};${BOOST_COROUTINE_LIBRARY};${BOOST_SYSTEM_LIBRARY}")
LL_ADD_INTEGRATION_TEST(llprocess "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(llleap "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(llstreamqueue "" "${test_libs}")
diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt
index 0c1c3d800e..5a8fe90bdd 100755
--- a/indra/media_plugins/webkit/CMakeLists.txt
+++ b/indra/media_plugins/webkit/CMakeLists.txt
@@ -121,12 +121,12 @@ if (DARWIN)
)
# copy the webkit dylib to the build directory
- add_custom_command(
- TARGET media_plugin_webkit POST_BUILD
-# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/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
- )
+# add_custom_command(
+# TARGET media_plugin_webkit POST_BUILD
+# # OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/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/CMakeLists.txt b/indra/newview/CMakeLists.txt
index c94969435b..62e21f6861 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -47,6 +47,8 @@ include(VisualLeakDetector)
include(GLOD)
include(CMakeCopyIfDifferent)
include(LLAppearance)
+include(PNG)
+include(ZLIB)
if (NOT HAVOK_TPV)
# When using HAVOK_TPV, the library is precompiled, so no need for this
@@ -1864,13 +1866,37 @@ else (WINDOWS)
)
endif (WINDOWS)
-# *NOTE - this list is very sensitive to ordering, test carefully on all
+# *NOTE: - this list is very sensitive to ordering, test carefully on all
# platforms if you change the releative order of the entries here.
# In particular, cmake 2.6.4 (when buidling with linux/makefile generators)
# appears to sometimes de-duplicate redundantly listed dependencies improperly.
# To work around this, higher level modules should be listed before the modules
# that they depend upon. -brad
+#
+# *NOTE: On mixing system shared libraries and updated static archives.
+# We use a number of libraries that have an existence as system libraries,
+# internal-use libraries and applications libraries. The most-referenced
+# one of these being libz where you can find four or more versions in play
+# at once. On Linux, libz can be found at link and run time via a number
+# of paths:
+#
+# => -lfreetype
+# => libz.so.1 (on install machine, not build)
+# => -lSDL
+# => libz.so.1 (on install machine, not build)
+# => -lgdk-x11-2.0
+# => libz.so.1
+# => -lz
+#
+# We generally want the newest version of the library to provide all symbol
+# resolution. To that end, when using static archives, the *_PRELOAD_ARCHIVES
+# variables, PNG_PRELOAD_ARCHIVES and ZLIB_PRELOAD_ARCHIVES, get the archives
+# dumped into the target binary and runtime lookup will find the most
+# modern version.
+
target_link_libraries(${VIEWER_BINARY_NAME}
+ ${PNG_PRELOAD_ARCHIVES}
+ ${ZLIB_PRELOAD_ARCHIVES}
${UPDATER_LIBRARIES}
${GOOGLE_PERFTOOLS_LIBRARIES}
${LLAUDIO_LIBRARIES}
@@ -1897,6 +1923,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${BOOST_PROGRAM_OPTIONS_LIBRARY}
${BOOST_REGEX_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
+ ${BOOST_COROUTINE_LIBRARY}
${DBUSGLIB_LIBRARIES}
${OPENGL_LIBRARIES}
${FMODWRAPPER_LIBRARY} # must come after LLAudio
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index f7b3a45e8d..e85f4929ae 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -768,13 +768,21 @@ class Darwin_i386_Manifest(ViewerManifest):
# dylibs that vary based on configuration
if self.args['configuration'].lower() == 'debug':
for libfile in (
+ "libcrypto.1.0.0.dylib",
+ "libcrypto.dylib",
"libfmodexL.dylib",
+ "libssl.1.0.0.dylib",
+ "libssl.dylib",
):
dylibs += path_optional(os.path.join("../packages/lib/debug",
libfile), libfile)
else:
for libfile in (
+ "libcrypto.1.0.0.dylib",
+ "libcrypto.dylib",
"libfmodex.dylib",
+ "libssl.1.0.0.dylib",
+ "libssl.dylib",
):
dylibs += path_optional(os.path.join("../packages/lib/release",
libfile), libfile)
@@ -796,14 +804,42 @@ class Darwin_i386_Manifest(ViewerManifest):
symlinkf(os.path.join(os.pardir, os.pardir, os.pardir, libfile),
os.path.join(resource_path, libfile))
- # plugins
+ # SLPlugin.app/Contents/Resources gets those Qt4 libraries it needs.
+ if self.prefix(src="", dst="SLPlugin.app/Contents/Resources"):
+ for libfile in ('libQtCore.4.dylib',
+ 'libQtCore.4.7.1.dylib',
+ 'libQtGui.4.dylib',
+ 'libQtGui.4.7.1.dylib',
+ 'libQtNetwork.4.dylib',
+ 'libQtNetwork.4.7.1.dylib',
+ 'libQtOpenGL.4.dylib',
+ 'libQtOpenGL.4.7.1.dylib',
+ 'libQtSvg.4.dylib',
+ 'libQtSvg.4.7.1.dylib',
+ 'libQtWebKit.4.dylib',
+ 'libQtWebKit.4.7.1.dylib',
+ 'libQtXml.4.dylib',
+ 'libQtXml.4.7.1.dylib'):
+ self.path2basename("../packages/lib/release", libfile)
+ self.end_prefix("SLPlugin.app/Contents/Resources")
+
+ # Qt4 codecs go to llplugin. Not certain why but this is the first
+ # location probed according to dtruss so we'll go with that.
+ if self.prefix(src="../packages/plugins/codecs/", dst="llplugin/codecs"):
+ self.path("libq*.dylib")
+ self.end_prefix("llplugin/codecs")
+
+ # Similarly for imageformats.
+ if self.prefix(src="../packages/plugins/imageformats/", dst="llplugin/imageformats"):
+ self.path("libq*.dylib")
+ self.end_prefix("llplugin/imageformats")
+
+ # SLPlugin plugins proper
if self.prefix(src="", dst="llplugin"):
self.path2basename("../media_plugins/quicktime/" + self.args['configuration'],
"media_plugin_quicktime.dylib")
self.path2basename("../media_plugins/webkit/" + self.args['configuration'],
"media_plugin_webkit.dylib")
- self.path2basename("../packages/lib/release", "libllqtwebkit.dylib")
-
self.end_prefix("llplugin")
self.end_prefix("Resources")
@@ -1008,6 +1044,7 @@ class LinuxManifest(ViewerManifest):
self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
self.end_prefix("bin/llplugin")
+ # llcommon
if not self.path("../llcommon/libllcommon.so", "lib/libllcommon.so"):
print "Skipping llcommon.so (assuming llcommon was linked statically)"
@@ -1074,6 +1111,7 @@ class Linux_i686_Manifest(LinuxManifest):
self.path("libaprutil-1.so.0")
self.path("libaprutil-1.so.0.4.1")
self.path("libboost_context-mt.so.*")
+ self.path("libboost_coroutine-mt.so.*")
self.path("libboost_filesystem-mt.so.*")
self.path("libboost_program_options-mt.so.*")
self.path("libboost_regex-mt.so.*")
@@ -1126,26 +1164,53 @@ class Linux_i686_Manifest(LinuxManifest):
pass
try:
- self.path("libfmodex-*.so")
- self.path("libfmodex.so")
- pass
+ self.path("libfmodex-*.so")
+ self.path("libfmodex.so")
+ pass
except:
- print "Skipping libfmodex.so - not found"
- pass
+ print "Skipping libfmodex.so - not found"
+ pass
self.end_prefix("lib")
# Vivox runtimes
if self.prefix(src="../packages/lib/release", dst="bin"):
- self.path("SLVoice")
- self.end_prefix()
+ self.path("SLVoice")
+ self.end_prefix()
+ if self.prefix(src="../packages/lib/release", dst="lib"):
+ self.path("libortp.so")
+ self.path("libsndfile.so.1")
+ #self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
+ self.path("libvivoxsdk.so")
+ self.path("libvivoxplatform.so")
+ self.end_prefix("lib")
+
+ # plugin runtime
if self.prefix(src="../packages/lib/release", dst="lib"):
- self.path("libortp.so")
- self.path("libsndfile.so.1")
- #self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
- self.path("libvivoxsdk.so")
- self.path("libvivoxplatform.so")
- self.end_prefix("lib")
+ self.path("libQtCore.so*")
+ self.path("libQtGui.so*")
+ self.path("libQtNetwork.so*")
+ self.path("libQtOpenGL.so*")
+ self.path("libQtWebKit.so*")
+ self.end_prefix("lib")
+
+ # For WebKit/Qt plugin runtimes (image format plugins)
+ if self.prefix(src="../packages/plugins/imageformats", dst="bin/llplugin/imageformats"):
+ self.path("libqgif.so")
+ self.path("libqico.so")
+ self.path("libqjpeg.so")
+ self.path("libqmng.so")
+ self.path("libqsvg.so")
+ self.path("libqtiff.so")
+ self.end_prefix("bin/llplugin/imageformats")
+
+ # For WebKit/Qt plugin runtimes (codec/character encoding plugins)
+ if self.prefix(src="../packages/plugins/codecs", dst="bin/llplugin/codecs"):
+ self.path("libqcncodecs.so")
+ self.path("libqjpcodecs.so")
+ self.path("libqkrcodecs.so")
+ self.path("libqtwcodecs.so")
+ self.end_prefix("bin/llplugin/codecs")
self.strip_binaries()
diff --git a/indra/test_apps/llfbconnecttest/CMakeLists.txt b/indra/test_apps/llfbconnecttest/CMakeLists.txt
index f56329a010..e598124924 100644
--- a/indra/test_apps/llfbconnecttest/CMakeLists.txt
+++ b/indra/test_apps/llfbconnecttest/CMakeLists.txt
@@ -122,34 +122,26 @@ add_custom_command(TARGET llfbconnecttest POST_BUILD
)
-if (DARWIN OR WINDOWS)
- get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_WEBKIT_PLUGIN}
- )
+get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
+add_custom_command(TARGET llfbconnecttest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_WEBKIT_PLUGIN}
+)
- # copy over bookmarks file if llfbconnecttest gets built
- get_target_property(BUILT_LLFBCONNECTTEST llfbconnecttest LOCATION)
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
- DEPENDS ${BUILT_LLFBCONNECTTEST}
- )
- # also copy it to the same place as SLPlugin, which is what the mac wants...
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_LLFBCONNECTTEST}
- )
-endif (DARWIN OR WINDOWS)
+# copy over bookmarks file if llfbconnecttest gets built
+get_target_property(BUILT_LLFBCONNECTTEST llfbconnecttest LOCATION)
+add_custom_command(TARGET llfbconnecttest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
+ DEPENDS ${BUILT_LLFBCONNECTTEST}
+)
-if (DARWIN)
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
-endif (DARWIN)
+# also copy it to the same place as SLPlugin, which is what the mac wants...
+add_custom_command(TARGET llfbconnecttest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_LLFBCONNECTTEST}
+)
-if(WINDOWS)
+if (WINDOWS)
#********************
# Plugin test library deploy
#
@@ -301,4 +293,80 @@ if(WINDOWS)
endif(WINDOWS)
+if (DARWIN)
+ set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+ set(fbconnecttest_release_files
+ libexception_handler.dylib
+ libaprutil-1.0.dylib
+ libapr-1.0.dylib
+ libexpat.1.5.2.dylib
+ libQtCore.4.7.1.dylib
+ libQtCore.4.dylib
+ libQtGui.4.7.1.dylib
+ libQtGui.4.dylib
+ libQtNetwork.4.7.1.dylib
+ libQtNetwork.4.dylib
+ libQtOpenGL.4.7.1.dylib
+ libQtOpenGL.4.dylib
+ libQtWebKit.4.7.1.dylib
+ libQtWebKit.4.dylib
+ libQtSvg.4.7.1.dylib
+ libQtSvg.4.dylib
+ libQtXml.4.7.1.dylib
+ libQtXml.4.dylib
+ )
+ copy_if_different(
+ ${fbconnecttest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}"
+ out_targets
+ ${fbconnecttest_release_files}
+ )
+ set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt image format plugins)
+ set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/imageformats")
+ set(fbconnecttest_release_files
+ libqgif.dylib
+ libqico.dylib
+ libqjpeg.dylib
+ libqmng.dylib
+ libqsvg.dylib
+ libqtiff.dylib
+ )
+ copy_if_different(
+ ${fbconnecttest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/imageformats"
+ out_targets
+ ${fbconnecttest_release_files}
+ )
+ set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt codec plugins)
+ set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/codecs")
+ set(fbconnecttest_release_files
+ libqcncodecs.dylib
+ libqjpcodecs.dylib
+ libqkrcodecs.dylib
+ libqtwcodecs.dylib
+ )
+ copy_if_different(
+ ${fbconnecttest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/codecs"
+ out_targets
+ ${fbconnecttest_release_files}
+ )
+ set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets})
+
+ add_custom_target(copy_fbconnecttest_libs ALL
+ DEPENDS
+ ${fbconnect_test_targets}
+ )
+
+ add_dependencies(llfbconnecttest copy_fbconnecttest_libs)
+endif (DARWIN)
+
+if (LINUX)
+
+endif (LINUX)
+
ll_deploy_sharedlibs_command(llfbconnecttest)
diff --git a/indra/test_apps/llfbconnecttest/README.Linden b/indra/test_apps/llfbconnecttest/README.Linden
new file mode 100644
index 0000000000..7488ce680a
--- /dev/null
+++ b/indra/test_apps/llfbconnecttest/README.Linden
@@ -0,0 +1,20 @@
+
+1. Description
+
+ Exercises SLPlugin. Specific functions and goals aren't clear
+ from the source.
+
+2. Running
+
+ 2.1 Mac
+
+ Make certain '.' is included in PATH. E.g.:
+
+ PATH=.:"$PATH" open build-darwin-i386/test_apps/llfbconnecttest/RelWithDebInfo/llfbconnecttest.app
+
+ Otherwise the program won't find SLPlugin and will timeout and
+ fail after 30 seconds and give you little information as to why.
+
+ Running 'dtruss' on plugin test applications will give you a great
+ deal of insight into why they aren't activating.
+
diff --git a/indra/test_apps/llplugintest/CMakeLists.txt b/indra/test_apps/llplugintest/CMakeLists.txt
index 8179be66f5..9d9f9a6a2b 100755
--- a/indra/test_apps/llplugintest/CMakeLists.txt
+++ b/indra/test_apps/llplugintest/CMakeLists.txt
@@ -346,44 +346,44 @@ add_custom_command(TARGET llmediaplugintest POST_BUILD
DEPENDS ${BUILT_LLCOMMON}
)
+get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_WEBKIT_PLUGIN}
+)
if (DARWIN OR WINDOWS)
- get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_WEBKIT_PLUGIN}
- )
-
get_target_property(BUILT_QUICKTIME_PLUGIN media_plugin_quicktime LOCATION)
add_custom_command(TARGET llmediaplugintest POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_QUICKTIME_PLUGIN} ${PLUGINS_DESTINATION_DIR}
DEPENDS ${BUILT_QUICKTIME_PLUGIN}
)
+endif (DARWIN OR WINDOWS)
- get_target_property(BUILT_EXAMPLE_PLUGIN media_plugin_example LOCATION)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_EXAMPLE_PLUGIN} ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_EXAMPLE_PLUGIN}
- )
+get_target_property(BUILT_EXAMPLE_PLUGIN media_plugin_example LOCATION)
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_EXAMPLE_PLUGIN} ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_EXAMPLE_PLUGIN}
+)
- # copy over bookmarks file if llmediaplugintest gets built
- get_target_property(BUILT_LLMEDIAPLUGINTEST llmediaplugintest LOCATION)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
- DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
- )
- # also copy it to the same place as SLPlugin, which is what the mac wants...
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
- )
-endif (DARWIN OR WINDOWS)
+# copy over bookmarks file if llmediaplugintest gets built
+get_target_property(BUILT_LLMEDIAPLUGINTEST llmediaplugintest LOCATION)
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
+ DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
+)
+
+# also copy it to the same place as SLPlugin, which is what the mac wants...
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
+)
if (DARWIN)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
+# add_custom_command(TARGET llmediaplugintest POST_BUILD
+# COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
+# DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
+# )
endif (DARWIN)
if(WINDOWS)
@@ -538,4 +538,76 @@ if(WINDOWS)
endif(WINDOWS)
+if (DARWIN)
+ set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+ set(plugintest_release_files
+ libexception_handler.dylib
+ libaprutil-1.0.dylib
+ libapr-1.0.dylib
+ libexpat.1.5.2.dylib
+ libQtCore.4.7.1.dylib
+ libQtCore.4.dylib
+ libQtGui.4.7.1.dylib
+ libQtGui.4.dylib
+ libQtNetwork.4.7.1.dylib
+ libQtNetwork.4.dylib
+ libQtOpenGL.4.7.1.dylib
+ libQtOpenGL.4.dylib
+ libQtWebKit.4.7.1.dylib
+ libQtWebKit.4.dylib
+ libQtSvg.4.7.1.dylib
+ libQtSvg.4.dylib
+ libQtXml.4.7.1.dylib
+ libQtXml.4.dylib
+ )
+ copy_if_different(
+ ${plugintest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}"
+ out_targets
+ ${plugintest_release_files}
+ )
+ set(plugin_test_targets ${plugin_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt image format plugins)
+ set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/imageformats")
+ set(plugintest_release_files
+ libqgif.dylib
+ libqico.dylib
+ libqjpeg.dylib
+ libqmng.dylib
+ libqsvg.dylib
+ libqtiff.dylib
+ )
+ copy_if_different(
+ ${plugintest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/imageformats"
+ out_targets
+ ${plugintest_release_files}
+ )
+ set(plugin_test_targets ${plugin_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt codec plugins)
+ set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/codecs")
+ set(plugintest_release_files
+ libqcncodecs.dylib
+ libqjpcodecs.dylib
+ libqkrcodecs.dylib
+ libqtwcodecs.dylib
+ )
+ copy_if_different(
+ ${plugintest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/codecs"
+ out_targets
+ ${plugintest_release_files}
+ )
+ set(plugin_test_targets ${plugin_test_targets} ${out_targets})
+
+ add_custom_target(copy_plugintest_libs ALL
+ DEPENDS
+ ${plugin_test_targets}
+ )
+
+ add_dependencies(llmediaplugintest copy_plugintest_libs)
+endif (DARWIN)
+
ll_deploy_sharedlibs_command(llmediaplugintest)
diff --git a/indra/test_apps/llplugintest/README.Linden b/indra/test_apps/llplugintest/README.Linden
new file mode 100644
index 0000000000..4a9f223c21
--- /dev/null
+++ b/indra/test_apps/llplugintest/README.Linden
@@ -0,0 +1,21 @@
+
+1. Description
+
+ Exercises SLPlugin. Demonstrates mediakit plugin reuse and
+ switchover as MIME type changes (web, quicktime, flash).
+
+
+2. Running
+
+ 2.1 Mac
+
+ Make certain '.' is included in PATH. E.g.:
+
+ PATH=.:"$PATH" open build-darwin-i386/test_apps/llmediaplugintest/RelWithDebInfo/llmediaplugintest.app
+
+ Otherwise the program won't find SLPlugin and will timeout and
+ fail after 30 seconds and give you little information as to why.
+
+ Running 'dtruss' on plugin test applications will give you a great
+ deal of insight into why they aren't activating.
+
diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt
index 6f366677c9..ce80d55829 100755
--- a/indra/viewer_components/login/CMakeLists.txt
+++ b/indra/viewer_components/login/CMakeLists.txt
@@ -46,6 +46,8 @@ target_link_libraries(lllogin
${LLMATH_LIBRARIES}
${LLXML_LIBRARIES}
${BOOST_CONTEXT_LIBRARY}
+ ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_SYSTEM_LIBRARY}
)
if(LL_TESTS)
@@ -55,7 +57,7 @@ if(LL_TESTS)
set_source_files_properties(
lllogin.cpp
PROPERTIES
- LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_CONTEXT_LIBRARY}"
+ LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_CONTEXT_LIBRARY};${BOOST_COROUTINE_LIBRARY};${BOOST_SYSTEM_LIBRARY}"
)
LL_ADD_PROJECT_UNIT_TESTS(lllogin "${lllogin_TEST_SOURCE_FILES}")