Browse Source

FIx symbol generation on windows in cmake

Tobias Hieta 9 years ago
parent
commit
cdb92f9313
3 changed files with 12 additions and 10 deletions
  1. 11 6
      CMakeModules/BreakpadSymbols.cmake
  2. 1 1
      CMakeModules/FindBreakpad.cmake
  3. 0 3
      scripts/build-windows.bat

+ 11 - 6
CMakeModules/BreakpadSymbols.cmake

@@ -12,12 +12,11 @@ endif(NOT CRASHDUMP_SECRET)
 cmake_dependent_option(GENERATE_SYMBOLS "Should we generate symbols for binaries?" ON "ENABLE_CRASHDUMP" OFF)
 
 function(dumpsyms target symfile)
-  find_program(DUMP_SYMS dump_syms HINTS /usr/bin/ ${DEPENDENCY_ROOT}/bin)
+  find_program(DUMP_SYMS dump_syms HINTS /usr/bin/ ${DEPENDENCY_ROOT}/bin ${DEPENDENCY_ROOT}/lib)
   if(GENERATE_SYMBOLS AND NOT DUMP_SYMS)
-    message(STATUS "dump_syms not found")
+    message(WARNING "dump_syms not found")
   endif()
   if(GENERATE_SYMBOLS AND DUMP_SYMS)
-
     if(APPLE)
       add_custom_command(TARGET ${target} POST_BUILD
         COMMAND dsymutil -o ${MAIN_NAME}.dSYM $<TARGET_FILE:${MAIN_TARGET}>
@@ -27,8 +26,8 @@ function(dumpsyms target symfile)
     endif(APPLE)
 
     unset(COMPRESS)
-    find_program(COMPRESS_XZ xz)
-    find_program(COMPRESS_BZ bzip2)
+    find_program(COMPRESS_XZ xz HINTS c:/mingw /usr/local/bin)
+    find_program(COMPRESS_BZ bzip2 HINTS c:/mingw /usr/local/bin)
     if(COMPRESS_XZ)
       set(COMPRESS_EXT xz)
       set(COMPRESS ${COMPRESS_XZ})
@@ -36,11 +35,17 @@ function(dumpsyms target symfile)
       set(COMPRESS_EXT bz2)
       set(COMPRESS ${COMPRESS_BZ})
     endif(COMPRESS_XZ)
+    
+    set(TARGET_FILE $<TARGET_FILE:${target}>)
+    if(WIN32)
+      set(TARGET_FILE $<TARGET_PDB_FILE:${target}>)
+    endif(WIN32)
 
     add_custom_command(
       TARGET ${target} POST_BUILD
       BYPRODUCTS ${symfile}.${COMPRESS_EXT}
-      COMMAND ${CMAKE_SOURCE_DIR}/scripts/dump-syms.sh "${DUMP_SYMS}" "${COMPRESS}" "$<TARGET_FILE:${target}>" "${symfile}.${COMPRESS_EXT}"
+      COMMAND "${DUMP_SYMS}" "${TARGET_FILE}" | "${COMPRESS}" > "${symfile}.${COMPRESS_EXT}"
+      COMMENT Generating symbols
     )
     install(FILES ${symfile}.${COMPRESS_EXT} DESTINATION ${CMAKE_BINARY_DIR})
   endif(GENERATE_SYMBOLS AND DUMP_SYMS)

+ 1 - 1
CMakeModules/FindBreakpad.cmake

@@ -44,7 +44,7 @@ set(BREAKPAD_INCLUDE_DIRS ${BREAKPAD_INCLUDE_DIR})
 #
 find_library(
     BREAKPAD_LIBRARY
-    NAMES breakpad_client
+    NAMES breakpad_client breakpad
     HINTS
         ${PC_BREAKPAD_LIBDIR}
         ${PC_BREAKPAD_LIBRARY_DIRS} # Unused for BREAKPAD but anyway

+ 0 - 3
scripts/build-windows.bat

@@ -34,6 +34,3 @@ ninja || exit /b
 ninja package || exit /b
 
 ..\scripts\WindowsSign.cmd PlexMediaPlayer-*.exe
-
-REM Dump symbols
-%DEPS%\lib\dump_syms.exe src\PlexMediaPlayer.pdb | c:\mingw\bin\xz > PlexMediaPlayer.symbols.xz || exit /b