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