diff options
| -rw-r--r-- | autobuild.xml | 64 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 100 | 
2 files changed, 129 insertions, 35 deletions
diff --git a/autobuild.xml b/autobuild.xml index 1fef5ba725..c9a8a238e3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -225,6 +225,60 @@          <key>version</key>          <string>1.57</string>        </map> +      <key>bugsplat</key> +      <map> +        <key>copyright</key> +        <string>Copyright 2003-2017, BugSplat</string> +        <key>description</key> +        <string>Bugsplat crash reporting package</string> +        <key>license</key> +        <string>Proprietary</string> +        <key>license_file</key> +        <string>LICENSES/BUGSPLAT_LICENSE.txt</string> +        <key>name</key> +        <string>bugsplat</string> +        <key>platforms</key> +        <map> +          <key>darwin64</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>0da51341172a14f06c323e240dd238f5</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/21954/163369/bugsplat-1.0.2.517972-darwin64-517972.tar.bz2</string> +            </map> +            <key>name</key> +            <string>darwin64</string> +          </map> +          <key>windows</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>d25adf0f2bcdbf59c035def0914fa1d5</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/21955/163376/bugsplat-3.6.0.4.517972-windows-517972.tar.bz2</string> +            </map> +            <key>name</key> +            <string>windows</string> +          </map> +          <key>windows64</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>0a4fc1ddec4ea0ad2d75d5422ef1df2b</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/21953/163362/bugsplat-3.6.0.4.517972-windows64-517972.tar.bz2</string> +            </map> +            <key>name</key> +            <string>windows64</string> +          </map> +        </map> +        <key>version</key> +        <string>1.0.2.517972</string> +      </map>        <key>chardet</key>        <map>          <key>copyright</key> @@ -3260,9 +3314,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>              <key>archive</key>              <map>                <key>hash</key> -              <string>f45c0a5e7b4601b355e163bf62f5718e</string> +              <string>78e3b5f51554a186f8a62c0161f549d5</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/20587/147509/viewer_manager-1.0.517052-darwin64-517052.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21002/152053/viewer_manager-1.0.517331-darwin64-517331.tar.bz2</string>              </map>              <key>name</key>              <string>darwin64</string> @@ -3284,9 +3338,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>              <key>archive</key>              <map>                <key>hash</key> -              <string>d2443caf062697430071d458a965f611</string> +              <string>ccf1e6ba7811897f7d88af2a6fddceb0</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/20588/147516/viewer_manager-1.0.517052-windows-517052.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21003/152060/viewer_manager-1.0.517331-windows-517331.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -3297,7 +3351,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>          <key>source_type</key>          <string>hg</string>          <key>version</key> -        <string>1.0.517052</string> +        <string>1.0.517331</string>        </map>        <key>vlc-bin</key>        <map> diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 2fc722d4c3..31c4c02d99 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -3,7 +3,14 @@  project(viewer)  include(00-Common) +# DON'T move Linking.cmake to its place in the alphabetized list below: it +# sets variables on which the 3p .cmake files depend. +include(Linking) +  include(Boost) +if (DEFINED ENV{BUGSPLAT_DB}) +  include(bugsplat) +endif (DEFINED ENV{BUGSPLAT_DB})  include(BuildPackagesInfo)  include(BuildVersion)  include(CMakeCopyIfDifferent) @@ -37,7 +44,6 @@ include(LLUI)  include(LLVFS)  include(LLWindow)  include(LLXML) -include(Linking)  include(NDOF)  include(NVAPI)  include(OPENAL) @@ -93,6 +99,12 @@ include_directories(      ${CMAKE_CURRENT_SOURCE_DIR}      ) +if (DEFINED ENV{BUGSPLAT_DB}) +  include_directories( +    ${BUGSPLAT_INCLUDE_DIR} +    ) +endif (DEFINED ENV{BUGSPLAT_DB}) +  include_directories(SYSTEM      ${LLCOMMON_SYSTEM_INCLUDE_DIRS}      ${LLXML_SYSTEM_INCLUDE_DIRS} @@ -1356,6 +1368,14 @@ if (DARWIN)    # This should be compiled with the viewer.    LIST(APPEND viewer_SOURCE_FILES llappdelegate-objc.mm) +  set_source_files_properties( +    llappdelegate-objc.mm +    PROPERTIES +    COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" +    # BugsplatMac is a module, imported with @import. That language feature +    # demands these switches. +    COMPILE_FLAGS "-fmodules -fcxx-modules" +    )    find_library(AGL_LIBRARY AGL)    find_library(APPKIT_LIBRARY AppKit) @@ -1370,6 +1390,12 @@ if (DARWIN)      ${COREAUDIO_LIBRARY}      ) +  if (DEFINED ENV{BUGSPLAT_DB}) +    list(APPEND viewer_LIBRARIES +      ${BUGSPLAT_LIBRARIES} +      ) +  endif (DEFINED ENV{BUGSPLAT_DB}) +    # Add resource files to the project.    set(viewer_RESOURCE_FILES      secondlife.icns @@ -1395,6 +1421,11 @@ endif (DARWIN)  if (LINUX)      LIST(APPEND viewer_SOURCE_FILES llappviewerlinux.cpp) +    set_source_files_properties( +      llappviewerlinux.cpp +      PROPERTIES +      COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" +      )      LIST(APPEND viewer_SOURCE_FILES llappviewerlinux_api_dbus.cpp)      SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") @@ -1411,6 +1442,11 @@ if (WINDOWS)           llappviewerwin32.cpp           llwindebug.cpp           ) +    set_source_files_properties( +      llappviewerwin32.cpp +      PROPERTIES +      COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" +      )      list(APPEND viewer_HEADER_FILES           llappviewerwin32.h @@ -1693,6 +1729,11 @@ if (SDL_FOUND)      )  endif (SDL_FOUND) +if (DEFINED ENV{BUGSPLAT_DB}) +  set_property(TARGET ${VIEWER_BINARY_NAME} +    PROPERTY COMPILE_DEFINITIONS "LL_BUGSPLAT") +endif (DEFINED ENV{BUGSPLAT_DB}) +  # add package files  file(GLOB EVENT_HOST_SCRIPT_GLOB_LIST       ${CMAKE_CURRENT_SOURCE_DIR}/../viewer_components/*.py) @@ -1791,7 +1832,7 @@ if (WINDOWS)             ${SHARED_LIB_STAGING_DIR}/Debug/fmodexL.dll            )      endif (FMODEX) -     +      add_custom_command(        OUTPUT  ${CMAKE_CFG_INTDIR}/copy_touched.bat        COMMAND ${PYTHON_EXECUTABLE} @@ -1826,24 +1867,9 @@ if (WINDOWS)      add_dependencies(${VIEWER_BINARY_NAME}        SLPlugin -   windows-crash-logger +      windows-crash-logger      ) -    # sets the 'working directory' for debugging from visual studio. -    if (NOT UNATTENDED) -        add_custom_command( -            TARGET ${VIEWER_BINARY_NAME} POST_BUILD -            COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe -            ARGS -              --solution -              ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln -              --workingdir -              ${VIEWER_BINARY_NAME} -              "${CMAKE_CURRENT_SOURCE_DIR}" -            COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging." -            ) -    endif (NOT UNATTENDED) -      if (PACKAGE)        add_custom_command(          OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2 @@ -1905,8 +1931,8 @@ else (WINDOWS)  endif (WINDOWS)  # *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) +# platforms if you change the relative order of the entries here. +# In particular, cmake 2.6.4 (when building 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 @@ -1981,6 +2007,12 @@ target_link_libraries(${VIEWER_BINARY_NAME}      ${LLAPPEARANCE_LIBRARIES}      ) +if (DEFINED ENV{BUGSPLAT_DB}) +  target_link_libraries(${VIEWER_BINARY_NAME} +    ${BUGSPLAT_LIBRARIES} +    ) +endif (DEFINED ENV{BUGSPLAT_DB}) +  set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH      "Path to artwork files.") @@ -2054,8 +2086,10 @@ if (LINUX)  endif (LINUX)  if (DARWIN) -  # These all get set with PROPERTIES -  set(product "Second Life") +  # These all get set with PROPERTIES. It's not that the property names are +  # magically known to CMake -- it's that these names are referenced in the +  # Info-SecondLife.plist file in the configure_file() directive below. +  set(product "${VIEWER_CHANNEL}")    # this is the setting for the Python wrapper, see SL-322 and WRAPPER line in Info-SecondLife.plist    if (PACKAGE)        set(MACOSX_WRAPPER_EXECUTABLE_NAME "SL_Launcher") @@ -2063,21 +2097,29 @@ if (DARWIN)        # force the name of the actual executable to allow running it within Xcode for debugging        set(MACOSX_WRAPPER_EXECUTABLE_NAME "../Resources/Second Life Viewer.app/Contents/MacOS/Second Life")    endif (PACKAGE) -  set(MACOSX_BUNDLE_INFO_STRING "Second Life Viewer") +  set(MACOSX_BUNDLE_INFO_STRING "${VIEWER_CHANNEL}")    set(MACOSX_BUNDLE_ICON_FILE "secondlife.icns")    set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.secondlife.indra.viewer")    set(MACOSX_BUNDLE_LONG_VERSION_STRING "${VIEWER_CHANNEL} ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")    set(MACOSX_BUNDLE_BUNDLE_NAME "SecondLife") -  set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VIEWER_SHORT_VERSION}") +  set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")    set(MACOSX_BUNDLE_BUNDLE_VERSION "${VIEWER_SHORT_VERSION}${VIEWER_MACOSX_PHASE}${VIEWER_REVISION}")    set(MACOSX_BUNDLE_COPYRIGHT "Copyright © Linden Research, Inc. 2007")    set(MACOSX_BUNDLE_NSMAIN_NIB_FILE "SecondLife.nib")    set(MACOSX_BUNDLE_NSPRINCIPAL_CLASS "NSApplication") + +  # https://blog.kitware.com/upcoming-in-cmake-2-8-12-osx-rpath-support/ +  set(CMAKE_MACOSX_RPATH 1)    set_target_properties(      ${VIEWER_BINARY_NAME}      PROPERTIES      OUTPUT_NAME "${product}" +    # From Contents/MacOS/SecondLife, look in Contents/Frameworks +    INSTALL_RPATH "@loader_path/../Frameworks" +    # SIGH, as of 2018-05-24 (cmake 3.11.1) the INSTALL_RPATH property simply +    # does not work. Try this: +    LINK_FLAGS "-rpath @loader_path/../Frameworks"      MACOSX_BUNDLE_INFO_PLIST      "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist"      ) @@ -2148,7 +2190,7 @@ if (INSTALL)    include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake)  endif (INSTALL) -if (PACKAGE) +if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND NOT DEFINED ENV{BUGSPLAT_DB})    set(SYMBOL_SEARCH_DIRS "")    # Note that the path to VIEWER_SYMBOL_FILE must match that in ../../build.sh    if (WINDOWS) @@ -2167,8 +2209,8 @@ if (PACKAGE)      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/mac_crash_logger/${CMAKE_CFG_INTDIR}")      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/gstreamer010/${CMAKE_CFG_INTDIR}")      set(VIEWER_SYMBOL_FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-symbols-darwin-$ENV{AUTOBUILD_ADDRSIZE}.tar.bz2") -    set(VIEWER_EXE_GLOBS "'Second Life' SLPlugin mac-crash-logger") -    set(VIEWER_EXE_GLOBS "'Second Life' mac-crash-logger") +    set(VIEWER_EXE_GLOBS "'${product}' SLPlugin mac-crash-logger") +    set(VIEWER_EXE_GLOBS "'${product}' mac-crash-logger")      set(VIEWER_LIB_GLOB "*.dylib")    endif (DARWIN)    if (LINUX) @@ -2180,7 +2222,6 @@ if (PACKAGE)      set(VIEWER_COPY_MANIFEST copy_l_viewer_manifest)    endif (LINUX) -  if(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)    if(CMAKE_CFG_INTDIR STREQUAL ".")        set(LLBUILD_CONFIG ${CMAKE_BUILD_TYPE})    else(CMAKE_CFG_INTDIR STREQUAL ".") @@ -2207,8 +2248,7 @@ if (PACKAGE)      add_dependencies(generate_breakpad_symbols "${VIEWER_COPY_MANIFEST}")    endif (WINDOWS OR LINUX)    add_dependencies(llpackage generate_breakpad_symbols) -  endif(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) -endif (PACKAGE) +endif ()  if (LL_TESTS)    # To add a viewer unit test, just add the test .cpp file below  | 
