wayland-scanner.prf 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #
  2. # Extra-compilers for handling files specified in
  3. # the WAYLANDSERVERSOURCES and WAYLANDCLIENTSOURCES variables
  4. #
  5. isEmpty(QMAKE_WAYLAND_SCANNER):error("QMAKE_WAYLAND_SCANNER not defined for this mkspec")
  6. defineReplace(waylandScannerHeaderFiles) {
  7. side = $$1
  8. path = $$2
  9. isEqual(side, "server"): \
  10. sources_list = $$WAYLANDSERVERSOURCES
  11. else: \
  12. sources_list = $$WAYLANDCLIENTSOURCES
  13. wayland_header_files_for_side =
  14. for(file, sources_list) {
  15. basenameFile = $$basename(file)
  16. basenameFile ~= s,\\.xml$,,
  17. wayland_header_files_for_side += $$path/wayland-$$basenameFile-$$side-protocol$${first(QMAKE_EXT_H)}
  18. isEqual(side, "server"): \
  19. wayland_header_files_for_side += $$path/qwayland-server-$$basenameFile$${first(QMAKE_EXT_H)}
  20. else: \
  21. wayland_header_files_for_side += $$path/qwayland-$$basenameFile$${first(QMAKE_EXT_H)}
  22. }
  23. return($$wayland_header_files_for_side)
  24. }
  25. qt_install_headers {
  26. header_dest = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
  27. header_files_client = $$waylandScannerHeaderFiles(client, $$header_dest)
  28. !isEmpty(header_files_client) {
  29. wayland_generated_client_headers.files = $$header_files_client
  30. wayland_generated_client_headers.path = $$private_headers.path
  31. wayland_generated_client_headers.CONFIG = no_check_exist
  32. INSTALLS += wayland_generated_client_headers
  33. WAYLAND_CLIENT_HEADER_DEST = $$header_dest/
  34. WAYLAND_CLIENT_INCLUDE_DIR = $$MODULE_INCNAME/private
  35. }
  36. header_files_server = $$waylandScannerHeaderFiles(server, $$header_dest)
  37. !isEmpty(header_files_server) {
  38. wayland_generated_server_headers.files = $$header_files_server
  39. wayland_generated_server_headers.path = $$private_headers.path
  40. wayland_generated_server_headers.CONFIG = no_check_exist
  41. INSTALLS += wayland_generated_server_headers
  42. WAYLAND_SERVER_HEADER_DEST = $$header_dest/
  43. WAYLAND_SERVER_INCLUDE_DIR = $$MODULE_INCNAME/private
  44. }
  45. }
  46. wayland_server_header.name = wayland ${QMAKE_FILE_BASE}
  47. wayland_server_header.input = WAYLANDSERVERSOURCES
  48. wayland_server_header.variable_out = HEADERS
  49. wayland_server_header.output = $${WAYLAND_SERVER_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-server-protocol$${first(QMAKE_EXT_H)}
  50. wayland_server_header.commands = $$QMAKE_WAYLAND_SCANNER server-header < ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT}
  51. silent:wayland_server_header.commands = @echo Wayland server header ${QMAKE_FILE_IN} && $$wayland_server_header.commands
  52. QMAKE_EXTRA_COMPILERS += wayland_server_header
  53. wayland_client_header.name = wayland ${QMAKE_FILE_BASE}
  54. wayland_client_header.input = WAYLANDCLIENTSOURCES
  55. wayland_client_header.variable_out = HEADERS
  56. wayland_client_header.output = $${WAYLAND_CLIENT_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-client-protocol$${first(QMAKE_EXT_H)}
  57. wayland_client_header.commands = $$QMAKE_WAYLAND_SCANNER client-header < ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT}
  58. silent:wayland_client_header.commands = @echo Wayland client header ${QMAKE_FILE_IN} && $$wayland_client_header.commands
  59. QMAKE_EXTRA_COMPILERS += wayland_client_header
  60. wayland_code.name = wayland ${QMAKE_FILE_BASE}
  61. wayland_code.input = WAYLANDCLIENTSOURCES WAYLANDSERVERSOURCES
  62. wayland_code.variable_out = SOURCES
  63. wayland_code.output = wayland-${QMAKE_FILE_BASE}-protocol.c
  64. wayland_code.commands = $$QMAKE_WAYLAND_SCANNER code < ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT}
  65. silent:wayland_code.commands = @echo Wayland code header ${QMAKE_FILE_IN} && $$wayland_code.commands
  66. QMAKE_EXTRA_COMPILERS += wayland_code
  67. qtPrepareTool(QMAKE_QTWAYLANDSCANNER, qtwaylandscanner)
  68. qtwayland_client_header.name = qtwayland ${QMAKE_FILE_BASE}
  69. qtwayland_client_header.input = WAYLANDCLIENTSOURCES
  70. qtwayland_client_header.variable_out = HEADERS
  71. qtwayland_client_header.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_CLIENT_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-client-protocol$${first(QMAKE_EXT_H)}
  72. qtwayland_client_header.output = $${WAYLAND_CLIENT_HEADER_DEST}qwayland-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)}
  73. qtwayland_client_header.commands = $$QMAKE_QTWAYLANDSCANNER client-header ${QMAKE_FILE_IN} $$WAYLAND_CLIENT_INCLUDE_DIR > ${QMAKE_FILE_OUT}
  74. silent:qtwayland_client_header.commands = @echo QtWayland client header ${QMAKE_FILE_IN} && $$qtwayland_client_header.commands
  75. QMAKE_EXTRA_COMPILERS += qtwayland_client_header
  76. qtwayland_client_code.name = qtwayland ${QMAKE_FILE_BASE}
  77. qtwayland_client_code.input = WAYLANDCLIENTSOURCES
  78. qtwayland_client_code.variable_out = SOURCES
  79. qtwayland_client_code.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_CLIENT_HEADER_DEST}qwayland-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)}
  80. qtwayland_client_code.output = qwayland-${QMAKE_FILE_BASE}.cpp
  81. qtwayland_client_code.commands = $$QMAKE_QTWAYLANDSCANNER client-code ${QMAKE_FILE_IN} $$WAYLAND_CLIENT_INCLUDE_DIR > ${QMAKE_FILE_OUT}
  82. silent:qtwayland_client_code.commands = @echo QtWayland client code ${QMAKE_FILE_IN} && $$qtwayland_client_code.commands
  83. QMAKE_EXTRA_COMPILERS += qtwayland_client_code
  84. qtwayland_server_header.name = qtwayland ${QMAKE_FILE_BASE}
  85. qtwayland_server_header.input = WAYLANDSERVERSOURCES
  86. qtwayland_server_header.variable_out = HEADERS
  87. qtwayland_server_header.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_SERVER_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-server-protocol$${first(QMAKE_EXT_H)}
  88. qtwayland_server_header.output = $${WAYLAND_SERVER_HEADER_DEST}qwayland-server-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)}
  89. qtwayland_server_header.commands = $$QMAKE_QTWAYLANDSCANNER server-header ${QMAKE_FILE_IN} $$WAYLAND_SERVER_INCLUDE_DIR > ${QMAKE_FILE_OUT}
  90. silent:qtwayland_server_header.commands = @echo QtWayland server header ${QMAKE_FILE_IN} && $$qtwayland_server_header.commands
  91. QMAKE_EXTRA_COMPILERS += qtwayland_server_header
  92. qtwayland_server_code.name = qtwayland ${QMAKE_FILE_BASE}
  93. qtwayland_server_code.input = WAYLANDSERVERSOURCES
  94. qtwayland_server_code.variable_out = SOURCES
  95. qtwayland_server_code.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_SERVER_HEADER_DEST}qwayland-server-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)}
  96. qtwayland_server_code.output = qwayland-server-${QMAKE_FILE_BASE}.cpp
  97. qtwayland_server_code.commands = $$QMAKE_QTWAYLANDSCANNER server-code ${QMAKE_FILE_IN} $$WAYLAND_SERVER_INCLUDE_DIR > ${QMAKE_FILE_OUT}
  98. silent:qtwayland_server_code.commands = @echo QtWayland server code ${QMAKE_FILE_IN} && $$qtwayland_server_code.commands
  99. QMAKE_EXTRA_COMPILERS += qtwayland_server_code