1 # DerivedSources - qmake build info 2 3 CONFIG -= debug_and_release 4 5 TEMPLATE = lib 6 TARGET = dummy 7 8 QMAKE_EXTRA_TARGETS += generated_files 9 10 CONFIG(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 16 LUT_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 27 KEYWORDLUT_FILES += \ 28 parser/Keywords.table 29 30 JIT_STUB_FILES += \ 31 jit/JITStubs.cpp 32 33 defineTest(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 54 lut.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h 55 lut.input = LUT_FILES 56 lut.wkScript = $$PWD/create_hash_table 57 lut.commands = perl $$lut.wkScript ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT} 58 lut.depends = ${QMAKE_FILE_NAME} 59 addExtraCompiler(lut) 60 61 # GENERATOR 1-B: particular LUT creator (for 1 file only) 62 keywordlut.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h 63 keywordlut.input = KEYWORDLUT_FILES 64 keywordlut.wkScript = $$PWD/create_hash_table 65 keywordlut.commands = perl $$keywordlut.wkScript ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT} 66 keywordlut.depends = ${QMAKE_FILE_NAME} 67 addExtraCompiler(keywordlut) 68 69 # GENERATOR 2-A: JIT Stub functions for RVCT 70 rvctstubs.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Generated${QMAKE_FILE_BASE}_RVCT.h 71 rvctstubs.wkScript = $$PWD/create_jit_stubs 72 rvctstubs.commands = perl -i $$rvctstubs.wkScript --prefix RVCT ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT} 73 rvctstubs.depends = ${QMAKE_FILE_NAME} 74 rvctstubs.input = JIT_STUB_FILES 75 rvctstubs.CONFIG += no_link 76 addExtraCompiler(rvctstubs) 77 78 # GENERATOR 2-B: JIT Stub functions for MSVC 79 msvcstubs.output = $${JSC_GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Generated${QMAKE_FILE_BASE}_MSVC.asm 80 msvcstubs.wkScript = $$PWD/create_jit_stubs 81 msvcstubs.commands = perl -i $$msvcstubs.wkScript --prefix MSVC ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT} 82 msvcstubs.depends = ${QMAKE_FILE_NAME} 83 msvcstubs.input = JIT_STUB_FILES 84 msvcstubs.CONFIG += no_link 85 addExtraCompiler(msvcstubs) 86 87 #GENERATOR: "RegExpJitTables.h": tables used by Yarr 88 retgen.output = $$JSC_GENERATED_SOURCES_DIR/RegExpJitTables.h 89 retgen.wkScript = $$PWD/create_regex_tables 90 retgen.input = retgen.wkScript 91 retgen.commands = python $$retgen.wkScript > ${QMAKE_FILE_OUT} 92 addExtraCompiler(retgen) 93