CompleteBundleOSX.cmake.in 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. set(app "${CMAKE_INSTALL_PREFIX}/@EXE@")
  2. set(weprocess "${app}/Contents/Frameworks/QtWebEngineCore.framework/Versions/Current/Helpers/QtWebEngineProcess.app")
  3. if(HAVE_UPDATER)
  4. list(APPEND BINS "Contents/Resources/updater")
  5. endif(HAVE_UPDATER)
  6. set(args ${app})
  7. list(APPEND args "-verbose=2")
  8. list(APPEND args "-qmldir=@SOURCE_ROOT@/src/ui")
  9. foreach(BIN ${BINS})
  10. list(APPEND args "-executable=${app}/${BIN}")
  11. endforeach(BIN ${BINS})
  12. set(ENV{DYLD_LIBRARY_PATH} @QTROOT@/lib:@DEPENDENCY_ROOT@/lib)
  13. set(ENV{DYLD_FRAMEWORK_PATH} @QTROOT@/lib:@DEPENDENCY_ROOT@/lib)
  14. execute_process(
  15. COMMAND ${CMAKE_COMMAND} -E remove "${app}/Contents/Resources/qt.conf"
  16. COMMAND "@QTROOT@/bin/macdeployqt" ${args} "-dmg"
  17. WORKING_DIRECTORY "@QTROOT@/bin"
  18. )
  19. #set(ENTITLEMENTS --entitlements @SOURCE_ROOT@/bundle/osx/Konvergo.entitlements)
  20. #set(CODESIGN codesign ${ENTITLEMENTS} --force --sign "Developer ID Application: Plex Inc.")
  21. macro(sign_binary BIN)
  22. message(STATUS "Signing: ${BIN}")
  23. execute_process(
  24. COMMAND ${CODESIGN} "${BIN}"
  25. RESULT_VARIABLE result
  26. )
  27. if(NOT ${result} EQUAL 0)
  28. message(FATAL_ERROR "Failed to sign ${BIN}")
  29. endif(NOT ${result} EQUAL 0)
  30. endmacro(sign_binary BIN)
  31. if(@DO_SIGN@)
  32. sign_binary(${weprocess})
  33. file(GLOB_RECURSE LIBS
  34. FOLLOW_SYMLINKS
  35. "${app}/*.dylib"
  36. )
  37. file(GLOB FRAMEWORKS FOLLOW_SYMLINKS LIST_DIRECTORIES true "${app}/Contents/Frameworks/*")
  38. foreach(LIB ${LIBS} ${FRAMEWORKS})
  39. sign_binary(${LIB})
  40. endforeach(LIB ${LIBS})
  41. foreach(BIN ${BINS})
  42. sign_binary(${app}/${BIN})
  43. endforeach(BIN ${BINS})
  44. sign_binary(${app})
  45. message("Verifing signature")
  46. execute_process(
  47. COMMAND codesign --verbose=4 --verify "${CMAKE_INSTALL_PREFIX}/@EXE@"
  48. RESULT_VARIABLE result
  49. )
  50. if(NOT ${result} EQUAL 0)
  51. message(FATAL_ERROR "Failed to verify binary!")
  52. endif(NOT ${result} EQUAL 0)
  53. execute_process(
  54. COMMAND spctl --verbose=4 --assess --type execute "${CMAKE_INSTALL_PREFIX}/@EXE@"
  55. RESULT_VARIABLE result
  56. )
  57. if(NOT ${result} EQUAL 0)
  58. message(FATAL_ERROR "Failed to verify binary!")
  59. endif(NOT ${result} EQUAL 0)
  60. endif(@DO_SIGN@)