DerivedSources.pri 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # -------------------------------------------------------------------
  2. # Derived sources for JavaScriptSource
  3. #
  4. # See 'Tools/qmake/README' for an overview of the build system
  5. # -------------------------------------------------------------------
  6. TEMPLATE = derived
  7. LUT_FILES += \
  8. runtime/ArrayConstructor.cpp \
  9. runtime/ArrayPrototype.cpp \
  10. runtime/BooleanPrototype.cpp \
  11. runtime/DateConstructor.cpp \
  12. runtime/DatePrototype.cpp \
  13. runtime/ErrorPrototype.cpp \
  14. runtime/JSGlobalObject.cpp \
  15. runtime/JSONObject.cpp \
  16. runtime/MathObject.cpp \
  17. runtime/NamePrototype.cpp \
  18. runtime/NumberConstructor.cpp \
  19. runtime/NumberPrototype.cpp \
  20. runtime/ObjectConstructor.cpp \
  21. runtime/RegExpConstructor.cpp \
  22. runtime/RegExpObject.cpp \
  23. runtime/RegExpPrototype.cpp \
  24. runtime/StringConstructor.cpp \
  25. KEYWORDLUT_FILES += \
  26. parser/Keywords.table
  27. JIT_STUB_FILES += \
  28. jit/JITStubs.cpp
  29. LLINT_ASSEMBLER = $$PWD/llint/LowLevelInterpreter.asm
  30. LLINT_DEPENDENCY = \
  31. $$PWD/llint/LowLevelInterpreter32_64.asm \
  32. $$PWD/llint/LowLevelInterpreter64.asm \
  33. $$LLINT_ASSEMBLER
  34. DISASSEMBLER_FILES = \
  35. disassembler/udis86/optable.xml
  36. DISASSEMBLER_DEPENDENCY = \
  37. $$PWD/disassembler/udis86/ud_opcode.py \
  38. $$PWD/disassembler/udis86/ud_optable.py
  39. # GENERATOR 1-A: LUT creator
  40. lut.output = ${QMAKE_FILE_BASE}.lut.h
  41. lut.input = LUT_FILES
  42. lut.script = $$PWD/create_hash_table
  43. lut.commands = perl $$lut.script ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
  44. lut.depends = ${QMAKE_FILE_NAME}
  45. GENERATORS += lut
  46. # GENERATOR 1-B: particular LUT creator (for 1 file only)
  47. keywordlut.output = Lexer.lut.h
  48. keywordlut.input = KEYWORDLUT_FILES
  49. keywordlut.script = $$PWD/create_hash_table
  50. keywordlut.commands = perl $$keywordlut.script ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
  51. keywordlut.depends = ${QMAKE_FILE_NAME}
  52. GENERATORS += keywordlut
  53. # GENERATOR 2-A: JIT Stub functions for RVCT
  54. rvctstubs.output = Generated${QMAKE_FILE_BASE}_RVCT.h
  55. rvctstubs.script = $$PWD/create_jit_stubs
  56. rvctstubs.commands = perl -i $$rvctstubs.script --prefix RVCT ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
  57. rvctstubs.depends = ${QMAKE_FILE_NAME}
  58. rvctstubs.input = JIT_STUB_FILES
  59. rvctstubs.CONFIG += no_link
  60. GENERATORS += rvctstubs
  61. # GENERATOR 2-B: JIT Stub functions for MSVC
  62. msvcstubs.output = Generated${QMAKE_FILE_BASE}_MSVC.asm
  63. msvcstubs.script = $$PWD/create_jit_stubs
  64. msvcstubs.commands = perl -i $$msvcstubs.script --prefix MSVC ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
  65. msvcstubs.depends = ${QMAKE_FILE_NAME}
  66. msvcstubs.input = JIT_STUB_FILES
  67. msvcstubs.CONFIG += no_link
  68. GENERATORS += msvcstubs
  69. #GENERATOR: "RegExpJitTables.h": tables used by Yarr
  70. retgen.output = RegExpJitTables.h
  71. retgen.script = $$PWD/create_regex_tables
  72. retgen.input = retgen.script
  73. retgen.commands = python $$retgen.script > ${QMAKE_FILE_OUT}
  74. GENERATORS += retgen
  75. #GENERATOR: "KeywordLookup.h": decision tree used by the lexer
  76. klgen.output = KeywordLookup.h
  77. klgen.script = $$PWD/KeywordLookupGenerator.py
  78. klgen.input = KEYWORDLUT_FILES
  79. klgen.commands = python $$klgen.script ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
  80. GENERATORS += klgen
  81. EXTRACTOR_BINARY = LLIntOffsetsExtractor$$BIN_EXTENSION
  82. DIRS = $$OUT_PWD $$OUT_PWD/debug $$OUT_PWD/release
  83. for(dir, DIRS) {
  84. file = $$dir/$$EXTRACTOR_BINARY
  85. exists($$file): LLINT_FILES += $$file
  86. }
  87. #GENERATOR: LLInt
  88. llint.output = ${QMAKE_FILE_IN_PATH}$${QMAKE_DIR_SEP}LLIntAssembly.h
  89. llint.script = $$PWD/offlineasm/asm.rb
  90. llint.input = LLINT_FILES
  91. llint.depends = $$LLINT_DEPENDENCY
  92. llint.commands = ruby $$llint.script $$LLINT_ASSEMBLER ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
  93. GENERATORS += llint
  94. linux-*:if(isEqual(QT_ARCH, "i386")|isEqual(QT_ARCH, "x86_64")) {
  95. # GENERATOR: disassembler
  96. disassembler.output = udis86_itab.c
  97. disassembler.input = DISASSEMBLER_FILES
  98. disassembler.script = $$PWD/disassembler/udis86/itab.py
  99. disassembler.depends = $$DISASSEMBLER_DEPENDENCY
  100. disassembler.commands = python $$disassembler.script ${QMAKE_FILE_NAME} --outputDir ${QMAKE_FUNC_FILE_OUT_PATH}
  101. disassembler.CONFIG += no_link
  102. GENERATORS += disassembler
  103. }