diff options
| -rwxr-xr-x | build.sh | 3 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 27 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 40 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 2 | 
4 files changed, 39 insertions, 33 deletions
| @@ -59,10 +59,11 @@ pre_build()      -t $variant \      -G "$cmake_generator" \     configure \ -	-DGRID:STRING="$viewer_grid" \ +    -DGRID:STRING="$viewer_grid" \      -DVIEWER_CHANNEL:STRING="$viewer_channel" \      -DVIEWER_LOGIN_CHANNEL:STRING="$login_channel" \      -DINSTALL_PROPRIETARY:BOOL=ON \ +    -DRELEASE_CRASH_REPORTING:BOOL=ON \      -DLOCALIZESETUP:BOOL=ON \      -DPACKAGE:BOOL=ON \      -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index db2cdb5ff8..dbe0cf5cd0 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -4,27 +4,28 @@  include(Variables) -  # Portable compilation flags. - -if (EXISTS ${CMAKE_SOURCE_DIR}/llphysics) -  # The release build should only offer to send crash reports if we're -  # building from a Linden internal source tree. -  set(release_crash_reports 1) -else (EXISTS ${CMAKE_SOURCE_DIR}/llphysics) -  set(release_crash_reports 0)  -endif (EXISTS ${CMAKE_SOURCE_DIR}/llphysics) -  set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1")  set(CMAKE_CXX_FLAGS_RELEASE -    "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=${release_crash_reports} -DNDEBUG")  +    "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DNDEBUG")   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO  -    "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1") +    "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1") +# Configure crash reporting +set(RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in release builds") +set(NON_RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in developer builds") -# Don't bother with a MinSizeRel build. +if(RELEASE_CRASH_REPORTING) +  set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DLL_SEND_CRASH_REPORTS=1") +endif() + +if(NON_RELEASE_CRASH_REPORTING) +  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DLL_SEND_CRASH_REPORTS=1") +  set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DLL_SEND_CRASH_REPORTS=1") +endif()   +# Don't bother with a MinSizeRel build.  set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Release;Debug" CACHE STRING      "Supported build types." FORCE) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 679637caf6..1a3f274664 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1843,29 +1843,31 @@ if (PACKAGE)      set(VIEWER_COPY_MANIFEST copy_l_viewer_manifest)    endif (LINUX) -  if(CMAKE_CFG_INTDIR STREQUAL ".") +  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 ".") +    else(CMAKE_CFG_INTDIR STREQUAL ".")        # set LLBUILD_CONFIG to be a shell variable evaluated at build time        # reflecting the configuration we are currently building.        set(LLBUILD_CONFIG ${CMAKE_CFG_INTDIR}) -  endif(CMAKE_CFG_INTDIR STREQUAL ".") -  add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}" -    COMMAND "${PYTHON_EXECUTABLE}" -    ARGS -      "${CMAKE_CURRENT_SOURCE_DIR}/generate_breakpad_symbols.py" -      "${LLBUILD_CONFIG}" -      "${VIEWER_DIST_DIR}" -      "${VIEWER_EXE_GLOBS}" -      "${VIEWER_LIB_GLOB}" -      "${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/bin/dump_syms" -      "${VIEWER_SYMBOL_FILE}" -    DEPENDS generate_breakpad_symbols.py -    VERBATIM -  ) -  add_custom_target(generate_breakpad_symbols DEPENDS "${VIEWER_SYMBOL_FILE}") -  add_dependencies(generate_breakpad_symbols "${VIEWER_BINARY_NAME}" "${VIEWER_COPY_MANIFEST}") -  add_dependencies(package generate_breakpad_symbols) +    endif(CMAKE_CFG_INTDIR STREQUAL ".") +    add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}" +      COMMAND "${PYTHON_EXECUTABLE}" +      ARGS +        "${CMAKE_CURRENT_SOURCE_DIR}/generate_breakpad_symbols.py" +        "${LLBUILD_CONFIG}" +        "${VIEWER_DIST_DIR}" +        "${VIEWER_EXE_GLOBS}" +        "${VIEWER_LIB_GLOB}" +        "${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/bin/dump_syms" +        "${VIEWER_SYMBOL_FILE}" +        DEPENDS generate_breakpad_symbols.py +        VERBATIM) + +    add_custom_target(generate_breakpad_symbols DEPENDS "${VIEWER_SYMBOL_FILE}") +    add_dependencies(generate_breakpad_symbols "${VIEWER_BINARY_NAME}" "${VIEWER_COPY_MANIFEST}") +    add_dependencies(package generate_breakpad_symbols) +  endif(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)  endif (PACKAGE)  if (LL_TESTS) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 41be4eb065..5bd0a0d297 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2935,8 +2935,10 @@ void LLAppViewer::handleViewerCrash()  		pApp->removeMarkerFile(false);  	} +#if LL_SEND_CRASH_REPORTS  	// Call to pure virtual, handled by platform specific llappviewer instance.  	pApp->handleCrashReporting();  +#endif  	return;  } | 
