• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# DerivedSources - qmake build info
2
3CONFIG -= debug_and_release
4
5TEMPLATE = lib
6TARGET = dummy
7
8QMAKE_EXTRA_TARGETS += generated_files
9
10CONFIG(standalone_package) {
11    isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = $$PWD/generated
12} else {
13    isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = generated
14}
15
16LUT_FILES += \
17    runtime/ArrayPrototype.cpp \
18    runtime/DatePrototype.cpp \
19    runtime/JSONObject.cpp \
20    runtime/MathObject.cpp \
21    runtime/NumberConstructor.cpp \
22    runtime/ObjectConstructor.cpp \
23    runtime/RegExpConstructor.cpp \
24    runtime/RegExpObject.cpp \
25    runtime/StringPrototype.cpp
26
27KEYWORDLUT_FILES += \
28    parser/Keywords.table
29
30JIT_STUB_FILES += \
31    jit/JITStubs.cpp
32
33defineTest(addExtraCompiler) {
34    eval($${1}.CONFIG = target_predeps no_link)
35    eval($${1}.variable_out =)
36    eval($${1}.dependency_type = TYPE_C)
37
38    wkScript = $$eval($${1}.wkScript)
39    eval($${1}.depends += $$wkScript)
40
41    export($${1}.CONFIG)
42    export($${1}.variable_out)
43    export($${1}.dependency_type)
44    export($${1}.depends)
45
46    QMAKE_EXTRA_COMPILERS += $$1
47    generated_files.depends += compiler_$${1}_make_all
48    export(QMAKE_EXTRA_COMPILERS)
49    export(generated_files.depends)
50    return(true)
51}
52
53# GENERATOR 1-A: LUT creator
54lut.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h
55lut.input = LUT_FILES
56lut.wkScript = $$PWD/create_hash_table
57lut.commands = perl $$lut.wkScript ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
58lut.depends = ${QMAKE_FILE_NAME}
59addExtraCompiler(lut)
60
61# GENERATOR 1-B: particular LUT creator (for 1 file only)
62keywordlut.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h
63keywordlut.input = KEYWORDLUT_FILES
64keywordlut.wkScript = $$PWD/create_hash_table
65keywordlut.commands = perl $$keywordlut.wkScript ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
66keywordlut.depends = ${QMAKE_FILE_NAME}
67addExtraCompiler(keywordlut)
68
69# GENERATOR 2-A: JIT Stub functions for RVCT
70rvctstubs.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Generated${QMAKE_FILE_BASE}_RVCT.h
71rvctstubs.wkScript = $$PWD/create_jit_stubs
72rvctstubs.commands = perl -i $$rvctstubs.wkScript --prefix RVCT ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
73rvctstubs.depends = ${QMAKE_FILE_NAME}
74rvctstubs.input = JIT_STUB_FILES
75rvctstubs.CONFIG += no_link
76addExtraCompiler(rvctstubs)
77
78# GENERATOR 2-B: JIT Stub functions for MSVC
79msvcstubs.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Generated${QMAKE_FILE_BASE}_MSVC.asm
80msvcstubs.wkScript = $$PWD/create_jit_stubs
81msvcstubs.commands = perl -i $$msvcstubs.wkScript --prefix MSVC ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
82msvcstubs.depends = ${QMAKE_FILE_NAME}
83msvcstubs.input = JIT_STUB_FILES
84msvcstubs.CONFIG += no_link
85addExtraCompiler(msvcstubs)
86
87#GENERATOR: "RegExpJitTables.h": tables used by Yarr
88retgen.output = $$JSC_GENERATED_SOURCES_DIR/RegExpJitTables.h
89retgen.wkScript = $$PWD/create_regex_tables
90retgen.input = retgen.wkScript
91retgen.commands = python $$retgen.wkScript > ${QMAKE_FILE_OUT}
92addExtraCompiler(retgen)
93