From 803b75a718833ccf236f00b425faff4eaf0f29cb Mon Sep 17 00:00:00 2001 From: callum_linden Date: Wed, 18 Oct 2017 18:36:10 -0700 Subject: First version that builds with a dummy BugSplay call in llapp.cpp --- indra/cmake/bugsplat.cmake | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 indra/cmake/bugsplat.cmake (limited to 'indra/cmake/bugsplat.cmake') diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake new file mode 100644 index 0000000000..6805465023 --- /dev/null +++ b/indra/cmake/bugsplat.cmake @@ -0,0 +1,20 @@ +include(Prebuilt) + +set(BUGSPLAT_FIND_QUIETLY ON) +set(BUGSPLAT_FIND_REQUIRED ON) + +if (USESYSTEMLIBS) + include(FindBUGSPLAT) +else (USESYSTEMLIBS) + use_prebuilt_binary(bugsplat) + if (WINDOWS) + set(BUGSPLAT_LIBRARIES + ${ARCH_PREBUILT_DIRS_RELEASE}/bugsplat64.lib + ) + elseif (DARWIN) + + else (WINDOWS) + + endif (WINDOWS) + set(BUGSPLAT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/bugsplat) +endif (USESYSTEMLIBS) -- cgit v1.2.3 From 6cbb00fe85df8cb01c3a979dbdf2c0354e7bfa4d Mon Sep 17 00:00:00 2001 From: callum_linden Date: Thu, 19 Oct 2017 18:35:00 -0700 Subject: Differentiate between 32/64 bit windows builds for build systewm (BugsSplat enforces specifc names that vary across bitness) --- indra/cmake/bugsplat.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake/bugsplat.cmake') diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index 6805465023..e993979902 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -9,7 +9,7 @@ else (USESYSTEMLIBS) use_prebuilt_binary(bugsplat) if (WINDOWS) set(BUGSPLAT_LIBRARIES - ${ARCH_PREBUILT_DIRS_RELEASE}/bugsplat64.lib + ${ARCH_PREBUILT_DIRS_RELEASE}/bugsplat.lib ) elseif (DARWIN) -- cgit v1.2.3 From c5f618d096f05bdff91a5d384c46e26840f5a771 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 17 May 2018 06:53:42 -0400 Subject: SL-821: Move Windows BugSplat engagement from llcommon to newview. Use WSTRINGIZE(), LL_TO_WSTRING(), wstringize() to produce required wide strings. Use a lambda for callback that sends log file; use LLDir, if set, to find the log file. Introduce BUGSPLAT CMake variable to allow suppressing BugSplat. Make BUGSPLAT CMake variable set LL_BUGSPLAT for C++ compilations. Set viewer version macros on llappviewerwin32.cpp, llappviewerlinux.cpp and llappdelegate-objc.mm -- because BugSplat needs the viewer version data, and because the macOS BugSplat hook is engaged in an Objective-C++ function we override in the app delegate. --- indra/cmake/bugsplat.cmake | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) (limited to 'indra/cmake/bugsplat.cmake') diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index e993979902..a7f4194905 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -1,20 +1,30 @@ -include(Prebuilt) +# BUGSPLAT can be set when launching the make using the argument -DBUGSPLAT:BOOL=ON +# When building using proprietary binaries though (i.e. having access to LL private servers), +# we always build with BUGSPLAT. +# Open source devs should use the -DBUGSPLAT:BOOL=ON then if they want to +# build with BugSplat, whether they are using USESYSTEMLIBS or not. +if (INSTALL_PROPRIETARY) + set(BUGSPLAT ON CACHE BOOL "Using BugSplat crash reporting library.") +endif (INSTALL_PROPRIETARY) -set(BUGSPLAT_FIND_QUIETLY ON) -set(BUGSPLAT_FIND_REQUIRED ON) +if (BUGSPLAT) + if (USESYSTEMLIBS) + set(BUGSPLAT_FIND_QUIETLY ON) + set(BUGSPLAT_FIND_REQUIRED ON) + include(FindBUGSPLAT) + else (USESYSTEMLIBS) + include(Prebuilt) + use_prebuilt_binary(bugsplat) + if (WINDOWS) + set(BUGSPLAT_LIBRARIES + ${ARCH_PREBUILT_DIRS_RELEASE}/bugsplat.lib + ) + elseif (DARWIN) + find_library(BUGSPLAT_LIBRARIES BugsplatMac + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}") + else (WINDOWS) -if (USESYSTEMLIBS) - include(FindBUGSPLAT) -else (USESYSTEMLIBS) - use_prebuilt_binary(bugsplat) - if (WINDOWS) - set(BUGSPLAT_LIBRARIES - ${ARCH_PREBUILT_DIRS_RELEASE}/bugsplat.lib - ) - elseif (DARWIN) - - else (WINDOWS) - - endif (WINDOWS) - set(BUGSPLAT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/bugsplat) -endif (USESYSTEMLIBS) + endif (WINDOWS) + set(BUGSPLAT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/bugsplat) + endif (USESYSTEMLIBS) +endif (BUGSPLAT) -- cgit v1.2.3 From 63fe7d802aad177107ef8e3bc0c9b7ea5118ad61 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Fri, 25 May 2018 12:09:50 -0400 Subject: SL-821, SL-826: Use BUGSPLAT_DB from environment on Windows and Mac. On TeamCity, set BUGSPLAT_DB from build-secrets. Use the presence of $BUGSPLAT_DB, rather than a new CMake BUGSPLAT option, to control whether CMake searches for BugSplat -- and passes LL_BUGSPLAT into C++. When BUGSPLAT_DB is present, make viewer_manifest.py set "BugSplat DB" in build_data.json, and "BugsplatServerURL" in Mac Info.plist. Make llappviewerwin32.cpp read "BugSplat DB" from build_data.json. Add placeholders for Mac hooks to suppress BugSplat prompt and send SecondLife.log. --- indra/cmake/bugsplat.cmake | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'indra/cmake/bugsplat.cmake') diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index a7f4194905..4db9068b49 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -1,13 +1,7 @@ -# BUGSPLAT can be set when launching the make using the argument -DBUGSPLAT:BOOL=ON -# When building using proprietary binaries though (i.e. having access to LL private servers), -# we always build with BUGSPLAT. -# Open source devs should use the -DBUGSPLAT:BOOL=ON then if they want to -# build with BugSplat, whether they are using USESYSTEMLIBS or not. -if (INSTALL_PROPRIETARY) - set(BUGSPLAT ON CACHE BOOL "Using BugSplat crash reporting library.") -endif (INSTALL_PROPRIETARY) - -if (BUGSPLAT) +# BugSplat is engaged by setting environment variable BUGSPLAT_DB to the +# target BugSplat database name prior to running CMake (and during autobuild +# build). +if (DEFINED ENV{BUGSPLAT_DB}) if (USESYSTEMLIBS) set(BUGSPLAT_FIND_QUIETLY ON) set(BUGSPLAT_FIND_REQUIRED ON) @@ -27,4 +21,4 @@ if (BUGSPLAT) endif (WINDOWS) set(BUGSPLAT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/bugsplat) endif (USESYSTEMLIBS) -endif (BUGSPLAT) +endif (DEFINED ENV{BUGSPLAT_DB}) -- cgit v1.2.3 From 8781b36d7ee5d6532fb6534caa595166ad00f04d Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Fri, 25 May 2018 16:08:00 -0400 Subject: SL-821: export BUGSPLAT_DB when loaded so child processes can detect. Produce CMake message when BugSplat is engaged so we can detect in build log. Don't try to copy BugSplat DLLs when NOT engaged. --- indra/cmake/bugsplat.cmake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/cmake/bugsplat.cmake') diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake index 4db9068b49..eb5808b1fb 100644 --- a/indra/cmake/bugsplat.cmake +++ b/indra/cmake/bugsplat.cmake @@ -3,10 +3,12 @@ # build). if (DEFINED ENV{BUGSPLAT_DB}) if (USESYSTEMLIBS) + message(STATUS "Looking for system BugSplat") set(BUGSPLAT_FIND_QUIETLY ON) set(BUGSPLAT_FIND_REQUIRED ON) include(FindBUGSPLAT) else (USESYSTEMLIBS) + message(STATUS "Engaging autobuild BugSplat") include(Prebuilt) use_prebuilt_binary(bugsplat) if (WINDOWS) -- cgit v1.2.3