diff options
| author | Roxie Linden <roxie@lindenlab.com> | 2024-08-07 14:16:11 -0700 | 
|---|---|---|
| committer | Roxie Linden <roxie@lindenlab.com> | 2024-08-07 14:16:11 -0700 | 
| commit | 63a4ad9b98a21b86986385398f7a93043c4f3650 (patch) | |
| tree | b4f53e2bcec95d4fda38698b8fd7e838075cbbb1 | |
| parent | 753cf01ef0165e840d90fe9e9b943eb27c2b6f19 (diff) | |
Add Windows multi-pdb upload capability
| -rw-r--r-- | .github/workflows/build.yaml | 17 | ||||
| -rwxr-xr-x | build.sh | 2 | ||||
| -rw-r--r-- | indra/llwebrtc/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 40 | 
4 files changed, 39 insertions, 29 deletions
| diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 03dcad2158..6e5d166847 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -373,15 +373,28 @@ jobs:      needs: build      runs-on: ubuntu-latest      steps: +      - name: Download Windows Symbols +        if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS +        uses: actions/download-artifact@v4 +        with: +          name: Windows-symbols +      - name: Extract viewer pdb +        if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS +        shell: bash +        run: | +	  mkdir _artifacts +          tar -xJf ${{ needs.build.outputs.viewer_channel }}.sym.tar.xz -C _artifacts        - name: Post Windows symbols          if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS -        uses: secondlife/viewer-build-util/post-bugsplat-windows@v2 +        uses: Bugsplat-Git/symbol-upload@v9.1.1          with:            username: ${{ env.BUGSPLAT_USER }}            password: ${{ env.BUGSPLAT_PASS }}            database: "SecondLife_Viewer_2018" -          channel: ${{ needs.build.outputs.viewer_channel }} +          application: ${{ needs.build.outputs.viewer_channel }}            version: ${{ needs.build.outputs.viewer_version }} +          directory: _artifacts +          files: "**/*.pdb"    post-mac-symbols:      env: @@ -170,7 +170,7 @@ pre_build()          # This name is consumed by indra/newview/CMakeLists.txt. Make it          # absolute because we've had troubles with relative pathnames.          abs_build_dir="$(cd "$build_dir"; pwd)" -        VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/newview/$variant/secondlife-symbols-$symplat-${AUTOBUILD_ADDRSIZE}.tar.xz")" +        VIEWER_SYMBOL_FILE="$(native_path "$abs_build_dir/symbols/$variant/${viewer_channel}.tar.xz")"      fi      # honor autobuild_configure_parameters same as sling-buildscripts diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index e7c7248b0c..c6f77ee848 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -39,10 +39,15 @@ if (WINDOWS)                                         msdmo                                         strmiids                                         iphlpapi) +    if (USE_BUGSPLAT) +        set_target_properties(llwebrtc PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") +    endif (USE_BUGSPLAT)  elseif (DARWIN)      target_link_libraries(llwebrtc PRIVATE ll::webrtc) -    set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" -                                              XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") +    if (USE_BUGSPLAT) +        set_target_properties(llwebrtc PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" +                                                  XCODE_ATTRIBUTE_DWARF_DSYM_FOLDER_PATH "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}/dSYMs") +    endif (USE_BUGSPLAT)  elseif (LINUX)      target_link_libraries(llwebrtc PRIVATE ll::webrtc)  endif (WINDOWS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 000f2e2684..c5f38a832a 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2085,8 +2085,6 @@ if (DARWIN)    set(VIEWER_APP_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,>/${product}.app")    set(VIEWER_APP_EXE "${VIEWER_APP_BUNDLE}/Contents/MacOS/${product}") -  set(VIEWER_APP_SYMBOLS_ARCHIVE "${VIEWER_APP_BUNDLE}/../${product}.sym.tar.gz") -  set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip")    configure_file(       "${CMAKE_CURRENT_SOURCE_DIR}/Info-SecondLife.plist" @@ -2159,38 +2157,32 @@ if (INSTALL)    include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake)  endif (INSTALL) -# Note that the conventional VIEWER_SYMBOL_FILE is set by ../../build.sh  if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIEWER_SYMBOL_FILE)    if (USE_BUGSPLAT)      # BugSplat symbol-file generation      if (WINDOWS) -      # Just pack up a tarball containing only the .pdb file for the -      # executable. Because we intend to use cygwin tar, we must render -      # VIEWER_SYMBOL_FILE in cygwin path syntax. -      execute_process(COMMAND "cygpath" "-u" "${VIEWER_SYMBOL_FILE}" -        OUTPUT_VARIABLE VIEWER_SYMBOL_FILE_CYGWIN -        OUTPUT_STRIP_TRAILING_WHITESPACE) -      execute_process(COMMAND "cygpath" "-u" "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}" -        OUTPUT_VARIABLE PARENT_DIRECTORY_CYGWIN -        OUTPUT_STRIP_TRAILING_WHITESPACE) -      add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}" -        # Use of 'tar ...j' here assumes VIEWER_SYMBOL_FILE endswith .tar.xz; -        # testing a string suffix is painful enough in CMake language that -        # we'll continue assuming it until forced to generalize. +      set(VIEWER_APP_SYMBOLS_ARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.sym.tar.xz") +      set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}") + +      # Just pack up a tarball containing only the .pdb files for the +      # executables. +      add_custom_command(OUTPUT "${VIEWER_APP_SYMBOLS_ARCHIVE}"          COMMAND "tar"          ARGS            "cJf" -          "${VIEWER_SYMBOL_FILE_CYGWIN}" -          "-C" -          "${PARENT_DIRECTORY_CYGWIN}" -          "secondlife-bin.pdb" -        DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-bin.pdb" -        COMMENT "Packing viewer PDB into ${VIEWER_SYMBOL_FILE_CYGWIN}" +          "${VIEWER_CHANNEL}.sym.tar.xz" +          "${VIEWER_CHANNEL}" +        DEPENDS "${VIEWER_BINARY_NAME}" llwebrtc +        WORKING_DIRECTORY "${SYMBOLS_STAGING_DIR}" +        COMMENT "Packing viewer PDBs into ${VIEWER_APP_SYMBOLS_ARCHIVE}"          ) -      add_custom_target(generate_symbols DEPENDS "${VIEWER_SYMBOL_FILE}" ${VIEWER_BINARY_NAME}) -      add_dependencies(generate_symbols ${VIEWER_BINARY_NAME}) +      add_custom_target(generate_symbols DEPENDS "${VIEWER_APP_SYMBOLS_ARCHIVE}") +      add_dependencies(generate_symbols ${VIEWER_BINARY_NAME} llwebrtc) +      endif (WINDOWS)      if (DARWIN) +      set(VIEWER_APP_XCARCHIVE "${SYMBOLS_STAGING_DIR}/${VIEWER_CHANNEL}.xcarchive.zip") +        # we only need an xcarchive with dSYMs (including the application)        set_target_properties(${VIEWER_BINARY_NAME}              PROPERTIES | 
