You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

88 lines
3.4 KiB

###########################################################
# Find BREAKPAD Library
#----------------------------------------------------------
#
## 1: Setup:
# The following variables are optionally searched for defaults
# BREAKPAD_DIR: Base directory of OpenCv tree to use.
#
## 2: Variable
# The following are set after configuration is done:
#
# BREAKPAD_FOUND
# BREAKPAD_INCLUDE_DIRS
# BREAKPAD_LIBS
# BREAKPAD_DEFINITIONS
#
#----------------------------------------------------------
find_path(BREAKPAD_DIR "include/breakpad/client/minidump_file_writer.h"
HINTS "${BREAKPAD_ROOT}" "$ENV{BREAKPAD_ROOT}" "$ENV{BREAKPAD_DIR}"
PATHS "$ENV{PROGRAMFILES}" "$ENV{PROGRAMW6432}" "/usr" "/usr/local" "/usr/share" "/usr/local/share" "/usr/lib/cmake" "/usr/local/lib/cmake" "/usr/lib/x86_64-linux-gnu/cmake"
PATH_SUFFIXES "BreakPad" "include"
DOC "Root directory of BREAKPAD library")
##====================================================
## Find BREAKPAD libraries
##----------------------------------------------------
if(EXISTS "${BREAKPAD_DIR}")
## Initiate the variable before the loop
set(BREAKPAD_LIBS "")
set(BREAKPAD_FOUND TRUE)
## Set all BREAKPAD component and their account into variables
set(BREAKPAD_LIB_COMPONENTS common crash_generation_client crash_generation_server exception_handler)
## Loop over each internal component and find its library file
foreach(LIBCOMP ${BREAKPAD_LIB_COMPONENTS})
find_library(BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG NAMES "${LIBCOMP}" PATHS "${BREAKPAD_DIR}/lib${PACKAGE_LIB_SUFFIX_DBG}" NO_DEFAULT_PATH)
find_library(BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE NAMES "${LIBCOMP}" PATHS "${BREAKPAD_DIR}/lib${PACKAGE_LIB_SUFFIX_REL}" NO_DEFAULT_PATH)
find_library(BREAKPAD_${LIBCOMP}_LIBRARY_ALL NAMES "${LIBCOMP}" PATH_SUFFIXES "breakpad")
#Remove the cache value
set(BREAKPAD_${LIBCOMP}_LIBRARY "" CACHE STRING "" FORCE)
#both debug/release
if(BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG AND BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE)
set(BREAKPAD_${LIBCOMP}_LIBRARY debug ${BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG} optimized ${BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE} CACHE STRING "" FORCE)
#only debug
elseif(BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG)
set(BREAKPAD_${LIBCOMP}_LIBRARY ${BREAKPAD_${LIBCOMP}_LIBRARY_DEBUG} CACHE STRING "" FORCE)
#only release
elseif(BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE)
set(BREAKPAD_${LIBCOMP}_LIBRARY ${BREAKPAD_${LIBCOMP}_LIBRARY_RELEASE} CACHE STRING "" FORCE)
#both debug/release
elseif(BREAKPAD_${LIBCOMP}_LIBRARY_ALL)
set(BREAKPAD_${LIBCOMP}_LIBRARY ${BREAKPAD_${LIBCOMP}_LIBRARY_ALL} CACHE STRING "" FORCE)
#no library found
else()
message("BREAKPAD component NOT found: ${LIBCOMP}")
set(BREAKPAD_FOUND FALSE)
endif()
#Add to the general list
if(BREAKPAD_${LIBCOMP}_LIBRARY)
set(BREAKPAD_LIBS ${BREAKPAD_LIBS} ${BREAKPAD_${LIBCOMP}_LIBRARY})
endif()
endforeach()
set(BREAKPAD_INCLUDE_DIRS "${BREAKPAD_DIR}/include" "${BREAKPAD_DIR}/include/breakpad")
message(STATUS "BREAKPAD found (include: ${BREAKPAD_INCLUDE_DIRS})")
else()
package_report_not_found(BREAKPAD "Please specify BREAKPAD directory using BREAKPAD_ROOT env. variable")
endif()
##====================================================
##====================================================
if(BREAKPAD_FOUND)
set(BREAKPAD_DIR "${BREAKPAD_DIR}" CACHE PATH "" FORCE)
mark_as_advanced(BREAKPAD_DIR)
endif()
##====================================================