BreakpadSymbols.cmake 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. OPTION(GENERATE_SYMBOLS "Should we generate symbols for binaries?" ON)
  2. function(dumpsyms target symfile)
  3. find_program(DUMP_SYMS dump_syms HINTS /usr/bin/ ${DEPENDENCY_ROOT}/bin)
  4. if(GENERATE_SYMBOLS AND NOT DUMP_SYMS)
  5. message(STATUS "dump_syms not found")
  6. endif()
  7. if(GENERATE_SYMBOLS AND DUMP_SYMS)
  8. if(APPLE)
  9. add_custom_command(TARGET ${target} POST_BUILD
  10. COMMAND dsymutil -o ${MAIN_NAME}.dSYM $<TARGET_FILE:${MAIN_TARGET}>
  11. COMMENT Generating ${MAIN_NAME}.dSYM
  12. BYPRODUCTS ${MAIN_NAME}.dSYM/Contents/Resources/DWARF/${target} ${MAIN_NAME}.dSYM/Contents/Info.plist
  13. )
  14. endif(APPLE)
  15. unset(COMPRESS)
  16. find_program(COMPRESS_XZ xz)
  17. find_program(COMPRESS_BZ bzip2)
  18. if(COMPRESS_XZ)
  19. set(COMPRESS_EXT xz)
  20. set(COMPRESS ${COMPRESS_XZ})
  21. elseif(COMPRESS_BZ)
  22. set(COMPRESS_EXT bz2)
  23. set(COMPRESS ${COMPRESS_BZ})
  24. endif(COMPRESS_XZ)
  25. add_custom_command(
  26. TARGET ${target} POST_BUILD
  27. BYPRODUCTS ${symfile}.${COMPRESS_EXT}
  28. COMMAND ${CMAKE_SOURCE_DIR}/scripts/dump-syms.sh "${DUMP_SYMS}" "${COMPRESS}" "$<TARGET_FILE:${target}>" "${symfile}.${COMPRESS_EXT}"
  29. )
  30. install(FILES ${symfile}.${COMPRESS_EXT} DESTINATION ${CMAKE_BINARY_DIR})
  31. endif(GENERATE_SYMBOLS AND DUMP_SYMS)
  32. endfunction()