mirror of
https://github.com/glest/glest-source.git
synced 2025-08-31 11:41:46 +02:00
- added support for google-breakpad in linux
This commit is contained in:
110
mk/cmake/Modules/FindGoogleBreakpad.cmake
Normal file
110
mk/cmake/Modules/FindGoogleBreakpad.cmake
Normal file
@@ -0,0 +1,110 @@
|
||||
# -*- cmake -*-
|
||||
|
||||
# - Find Google BreakPad
|
||||
# Find the Google BreakPad includes and library
|
||||
# This module defines
|
||||
# BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR, where to find exception_handler.h, etc.
|
||||
# BREAKPAD_EXCEPTION_HANDLER_LIBRARIES, the libraries needed to use Google BreakPad.
|
||||
# BREAKPAD_EXCEPTION_HANDLER_FOUND, If false, do not try to use Google BreakPad.
|
||||
# also defined, but not for general use are
|
||||
# BREAKPAD_EXCEPTION_HANDLER_LIBRARY, where to find the Google BreakPad library.
|
||||
|
||||
SET(BREAKPAD_OS "linux")
|
||||
IF(WIN32)
|
||||
SET(BREAKPAD_OS "windows")
|
||||
ENDIF()
|
||||
|
||||
FIND_PATH(BREAKPAD_INCLUDE_DIR
|
||||
#common/breakpad_types.h
|
||||
client/${BREAKPAD_OS}/handler/exception_handler.h
|
||||
PATHS
|
||||
${BREAKPAD_ROOT}/src/
|
||||
)
|
||||
|
||||
IF(NOT GoogleBreakpad_FIND_COMPONENTS)
|
||||
#SET(GoogleBreakpad_FIND_COMPONENTS common exception_handler client)
|
||||
SET(GoogleBreakpad_FIND_COMPONENTS client)
|
||||
ENDIF()
|
||||
|
||||
#IF(CMAKE_TRACE)
|
||||
MESSAGE(STATUS "BREAKPAD_ROOT=${BREAKPAD_ROOT}")
|
||||
MESSAGE(STATUS "BREAKPAD_INCLUDE_DIR=${BREAKPAD_INCLUDE_DIR}")
|
||||
#ENDIF(CMAKE_TRACE)
|
||||
|
||||
IF(BREAKPAD_INCLUDE_DIR)
|
||||
SET(BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR ${BREAKPAD_INCLUDE_DIR} ${BREAKPAD_INCLUDE_DIR}/client/${BREAKPAD_OS}/)
|
||||
SET(BREAKPAD_FOUND TRUE)
|
||||
FOREACH(COMPONENT ${GoogleBreakpad_FIND_COMPONENTS})
|
||||
#string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
||||
string(TOLOWER ${COMPONENT} UPPERCOMPONENT)
|
||||
FIND_LIBRARY(BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE
|
||||
NAMES ${COMPONENT} libbreakpad_${COMPONENT}.a libbreakpad${COMPONENT}.a
|
||||
PATHS
|
||||
${BREAKPAD_ROOT}/src/client/${BREAKPAD_OS}/Release/lib
|
||||
${BREAKPAD_INCLUDE_DIR}/src/client/${BREAKPAD_OS}/Release/lib
|
||||
${BREAKPAD_ROOT}/src/client/${BREAKPAD_OS}/
|
||||
${BREAKPAD_INCLUDE_DIR}/src/client/${BREAKPAD_OS}/
|
||||
|
||||
)
|
||||
FIND_LIBRARY(BREAKPAD_${UPPERCOMPONENT}_LIBRARY_DEBUG
|
||||
NAMES ${COMPONENT} libbreakpad_${COMPONENT}.a libbreakpad${COMPONENT}.a
|
||||
PATHS
|
||||
${BREAKPAD_ROOT}/src/client/${BREAKPAD_OS}/Debug/lib
|
||||
${BREAKPAD_INCLUDE_DIR}/src/client/${BREAKPAD_OS}/Debug/lib
|
||||
${BREAKPAD_ROOT}/src/client/${BREAKPAD_OS}/
|
||||
${BREAKPAD_INCLUDE_DIR}/src/client/${BREAKPAD_OS}/
|
||||
|
||||
)
|
||||
IF(BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE OR BREAKPAD_${UPPERCOMPONENT}_LIBRARY_DEBUG)
|
||||
SET(BREAKPAD_${UPPERCOMPONENT}_FOUND TRUE)
|
||||
SET(BREAKPAD_${UPPERCOMPONENT}_LIBRARY optimized ${BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE} debug ${BREAKPAD_${UPPERCOMPONENT}_LIBRARY_DEBUG})
|
||||
set(BREAKPAD_${UPPERCOMPONENT}_LIBRARY ${BREAKPAD_${UPPERCOMPONENT}_LIBRARY} CACHE FILEPATH "The breakpad ${UPPERCOMPONENT} library")
|
||||
|
||||
set(BREAKPAD_EXCEPTION_HANDLER_FOUND TRUE)
|
||||
set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES} ${BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE})
|
||||
|
||||
ELSE()
|
||||
SET(BREAKPAD_FOUND FALSE)
|
||||
SET(BREAKPAD_${UPPERCOMPONENT}_FOUND FALSE)
|
||||
SET(BREAKPAD_${UPPERCOMPONENT}_LIBRARY "${BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND}")
|
||||
|
||||
ENDIF()
|
||||
|
||||
# IF(CMAKE_TRACE)
|
||||
MESSAGE(STATUS "Looking for ${UPPERCOMPONENT}")
|
||||
MESSAGE(STATUS "BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE=${BREAKPAD_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
|
||||
MESSAGE(STATUS "BREAKPAD_INCLUDE_DIR=${BREAKPAD_INCLUDE_DIR}")
|
||||
# ENDIF(CMAKE_TRACE)
|
||||
ENDFOREACH(COMPONENT)
|
||||
ENDIF(BREAKPAD_INCLUDE_DIR)
|
||||
|
||||
IF(BREAKPAD_FOUND)
|
||||
# IF(CMAKE_TRACE)
|
||||
MESSAGE(STATUS "Looking for dump-symbols in: ${BREAKPAD_INCLUDE_DIR}/tools/${BREAKPAD_OS}/" )
|
||||
# ENDIF(CMAKE_TRACE)
|
||||
FIND_PROGRAM(BREAKPAD_DUMPSYMS_EXE
|
||||
dump_syms NAMES dumpsyms dump_syms.exe
|
||||
PATHS
|
||||
ENV
|
||||
PATH
|
||||
${BREAKPAD_ROOT}/tools/${BREAKPAD_OS}/binaries
|
||||
${BREAKPAD_INCLUDE_DIR}/tools/${BREAKPAD_OS}/binaries
|
||||
${BREAKPAD_ROOT}/tools/${BREAKPAD_OS}/dump_syms
|
||||
${BREAKPAD_INCLUDE_DIR}/tools/${BREAKPAD_OS}/dump_syms
|
||||
${BREAKPAD_ROOT}/src/tools/${BREAKPAD_OS}/binaries
|
||||
${BREAKPAD_INCLUDE_DIR}/src/tools/${BREAKPAD_OS}/binaries
|
||||
${BREAKPAD_ROOT}/src/tools/${BREAKPAD_OS}/dump_syms
|
||||
${BREAKPAD_INCLUDE_DIR}/src/tools/${BREAKPAD_OS}/dump_syms
|
||||
|
||||
)
|
||||
# IF(CMAKE_TRACE)
|
||||
MESSAGE(STATUS "Looking for dump-symbols result: ${BREAKPAD_DUMPSYMS_EXE}" )
|
||||
# ENDIF(CMAKE_TRACE)
|
||||
IF(BREAKPAD_DUMPSYMS_EXE)
|
||||
SET(BREAKPAD_DUMPSYMS_EXE_FOUND TRUE)
|
||||
ELSE(BREAKPAD_DUMPSYMS_EXE)
|
||||
SET(BREAKPAD_DUMPSYMS_EXE_FOUND FALSE)
|
||||
#SET(BREAKPAD_FOUND FALSE)
|
||||
ENDIF(BREAKPAD_DUMPSYMS_EXE)
|
||||
ENDIF(BREAKPAD_FOUND)
|
||||
|
||||
Reference in New Issue
Block a user