ctkMacroGeneratePluginManifest.cmake 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #
  2. # Depends on:
  3. # CTK/CMake/ctkMacroParseArguments.cmake
  4. #
  5. MACRO(ctkMacroGeneratePluginManifest QRC_SRCS)
  6. CtkMacroParseArguments(MY
  7. "ACTIVATIONPOLICY;CATEGORY;CONTACT_ADDRESS;COPYRIGHT;DESCRIPTION;DOC_URL;ICON;LICENSE;NAME;REQUIRE_PLUGIN;SYMBOLIC_NAME;VENDOR;VERSION"
  8. ""
  9. ${ARGN}
  10. )
  11. # Sanity checks
  12. IF(NOT DEFINED MY_SYMBOLIC_NAME)
  13. MESSAGE(SEND_ERROR "SYMBOLIC_NAME is mandatory")
  14. ENDIF()
  15. SET(_manifest_content "Plugin-SymbolicName: ${MY_SYMBOLIC_NAME}")
  16. IF(DEFINED MY_ACTIVATIONPOLICY)
  17. STRING(TOLOWER "${MY_ACTIVATIONPOLICY}" _activation_policy)
  18. IF(_activation_policy STREQUAL "eager")
  19. SET(manifest_content "Plugin-ActivationPolicy: eager")
  20. ELSE()
  21. MESSAGE(SEND_ERROR "ACTIVATIONPOLICY is set to '${MY_ACTIVATIONPOLICY}', which is not supported")
  22. ENDIF()
  23. ENDIF()
  24. SET(_manifest_filename "MANIFEST.MF")
  25. SET(_manifest_filepath "${CMAKE_CURRENT_BINARY_DIR}/${_manifest_filename}")
  26. SET(_manifest_qrc_filepath "${CMAKE_CURRENT_BINARY_DIR}/${MY_SYMBOLIC_NAME}_manifest.qrc")
  27. SET(_manifest_qrc_content
  28. "<!DOCTYPE RCC><RCC version=\"1.0\">
  29. <qresource prefix=\"/${MY_SYMBOLIC_NAME}/META-INF\">
  30. <file>${_manifest_filename}</file>
  31. </qresource>
  32. </RCC>
  33. ")
  34. FILE(WRITE "${_manifest_filepath}" "${_manifest_content}")
  35. FILE(WRITE "${_manifest_qrc_filepath}" "${_manifest_qrc_content}")
  36. QT4_ADD_RESOURCES(${QRC_SRCS} ${_manifest_qrc_filepath})
  37. ENDMACRO()