diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/cmake/Boost.cmake | 13 | ||||
| -rwxr-xr-x | indra/cmake/Copy3rdPartyLibs.cmake | 13 | ||||
| -rwxr-xr-x | indra/cmake/Linking.cmake | 1 | ||||
| -rwxr-xr-x | indra/cmake/OpenSSL.cmake | 2 | ||||
| -rwxr-xr-x | indra/cmake/PNG.cmake | 25 | ||||
| -rwxr-xr-x | indra/cmake/WebKitLibPlugin.cmake | 16 | ||||
| -rwxr-xr-x | indra/cmake/ZLIB.cmake | 21 | ||||
| -rwxr-xr-x | indra/edit-me-to-trigger-new-build.txt | 5 | ||||
| -rwxr-xr-x | indra/llcommon/CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | indra/media_plugins/webkit/CMakeLists.txt | 12 | ||||
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 29 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 97 | ||||
| -rw-r--r-- | indra/test_apps/llfbconnecttest/CMakeLists.txt | 118 | ||||
| -rw-r--r-- | indra/test_apps/llfbconnecttest/README.Linden | 20 | ||||
| -rwxr-xr-x | indra/test_apps/llplugintest/CMakeLists.txt | 126 | ||||
| -rw-r--r-- | indra/test_apps/llplugintest/README.Linden | 21 | ||||
| -rwxr-xr-x | indra/viewer_components/login/CMakeLists.txt | 4 | 
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}") | 
