qjsonreggen.pri 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. DISTFILES += \
  2. $$PWD/qjsonreggen.py
  3. JSON_TYPES = \
  4. bool \
  5. char \
  6. "signed char" \
  7. uchar \
  8. short \
  9. ushort \
  10. int \
  11. uint \
  12. long \
  13. ulong \
  14. qlonglong \
  15. qulonglong \
  16. float \
  17. double \
  18. QObject* \
  19. QChar \
  20. QString \
  21. QDate \
  22. QTime \
  23. QDateTime \
  24. QUrl \
  25. QUuid \
  26. QCborValue \
  27. QCborMap \
  28. QCborArray \
  29. QJsonValue \
  30. QJsonObject \
  31. QJsonArray \
  32. QMimeType \
  33. QVersionNumber \
  34. QLocale \
  35. QRegularExpression \
  36. QSize \
  37. QPoint \
  38. QLine \
  39. QRect \
  40. QSizeF \
  41. QPointF \
  42. QLineF \
  43. QRectF \
  44. QByteArray
  45. QSize.modes = list
  46. QPoint.modes = list
  47. QLine.modes = list
  48. QRect.modes = list
  49. QSizeF.modes = list
  50. QPointF.modes = list
  51. QLineF.modes = list
  52. QRectF.modes = list
  53. QByteArray.modes = map set
  54. isEmpty(QT_JSONSERIALIZER_REGGEN_DIR): QT_JSONSERIALIZER_REGGEN_DIR = $$OUT_PWD/.reggen
  55. debug_and_release {
  56. CONFIG(debug, debug|release): QT_JSONSERIALIZER_REGGEN_DIR = $$QT_JSONSERIALIZER_REGGEN_DIR/debug
  57. CONFIG(release, debug|release): QT_JSONSERIALIZER_REGGEN_DIR = $$QT_JSONSERIALIZER_REGGEN_DIR/release
  58. }
  59. mkpath($$QT_JSONSERIALIZER_REGGEN_DIR)
  60. isEmpty(QT_JSONSERIALIZER_TYPESPLIT_PY) {
  61. win32: QT_JSONSERIALIZER_TYPESPLIT_PY = python
  62. QT_JSONSERIALIZER_TYPESPLIT_PY += $$shell_quote($$PWD/qjsonreggen.py)
  63. }
  64. for(type, JSON_TYPES) {
  65. type_base = $$replace(type, "\\W", "_")
  66. target_base = qjsonconverterreg_$${type_base}.cpp
  67. target_path = $$absolute_path($$target_base, $$QT_JSONSERIALIZER_REGGEN_DIR)
  68. $${target_path}.name = $$target_path
  69. $${target_path}.depends = $$PWD/qjsonreggen.py $$PWD/qjsonreggen.pri
  70. $${target_path}.commands = $$QT_JSONSERIALIZER_TYPESPLIT_PY $$shell_quote($$target_path) $$shell_quote($$type) $$eval($${type_base}.modes)
  71. QMAKE_EXTRA_TARGETS += $$target_path
  72. GENERATED_SOURCES += $$target_path
  73. }
  74. escaped_types =
  75. for(type, JSON_TYPES): escaped_types += $$shell_quote($$type)
  76. target_path = $$absolute_path(qjsonconverterreg_hook.cpp, $$QT_JSONSERIALIZER_REGGEN_DIR)
  77. $${target_path}.name = $$target_path
  78. $${target_path}.depends = $$PWD/qjsonreggen.py $$PWD/qjsonreggen.pri
  79. $${target_path}.commands = $$QT_JSONSERIALIZER_TYPESPLIT_PY super $$shell_quote($$target_path) $$escaped_types
  80. QMAKE_EXTRA_TARGETS += $$target_path
  81. GENERATED_SOURCES += $$target_path