X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/b37bf2e156556c589aea3e1f58a377f2b1189665..14957cd040308e3eeec43d26bae5d76da13fcd85:/JavaScriptCore.pri?ds=inline diff --git a/JavaScriptCore.pri b/JavaScriptCore.pri index d7cbc6a..ed4cf2e 100644 --- a/JavaScriptCore.pri +++ b/JavaScriptCore.pri @@ -1,155 +1,110 @@ # JavaScriptCore - Qt4 build info + +include(../common.pri) + VPATH += $$PWD -INCLUDEPATH += tmp -INCLUDEPATH += $$PWD $$PWD/kjs $$PWD/bindings $$PWD/bindings/c $$PWD/wtf -DEPENDPATH += $$PWD $$PWD/kjs $$PWD/bindings $$PWD/bindings/c $$PWD/wtf -DEFINES -= KJS_IDENTIFIER_HIDE_GLOBALS -qt-port:INCLUDEPATH += $$PWD/bindings/qt -qt-port:DEFINES += BUILDING_QT__ -gtk-port:DEFINES += BUILDING_GTK__ - -# http://bugs.webkit.org/show_bug.cgi?id=16406 -# [Gtk] JavaScriptCore needs -lpthread -gtk-port:!win32-*:LIBS += -lpthread - -win32-msvc*: INCLUDEPATH += $$PWD/os-win32 - -isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = tmp - -include(pcre/pcre.pri) - -LUT_FILES += \ - kjs/date_object.cpp \ - kjs/number_object.cpp \ - kjs/string_object.cpp \ - kjs/array_object.cpp \ - kjs/math_object.cpp \ - kjs/regexp_object.cpp - -KEYWORDLUT_FILES += \ - kjs/keywords.table - -KJSBISON += \ - kjs/grammar.y - -SOURCES += \ - wtf/Assertions.cpp \ - wtf/HashTable.cpp \ - wtf/unicode/UTF8.cpp \ - bindings/NP_jsobject.cpp \ - bindings/npruntime.cpp \ - bindings/runtime_array.cpp \ - bindings/runtime.cpp \ - bindings/runtime_method.cpp \ - bindings/runtime_object.cpp \ - bindings/runtime_root.cpp \ - bindings/c/c_class.cpp \ - bindings/c/c_instance.cpp \ - bindings/c/c_runtime.cpp \ - bindings/c/c_utility.cpp \ - API/JSBase.cpp \ - API/JSCallbackConstructor.cpp \ - API/JSCallbackFunction.cpp \ - API/JSCallbackObject.cpp \ - API/JSClassRef.cpp \ - API/JSContextRef.cpp \ - API/JSObjectRef.cpp \ - API/JSStringRef.cpp \ - API/JSValueRef.cpp \ - kjs/JSGlobalObject.cpp \ - kjs/JSVariableObject.cpp - -# AllInOneFile.cpp helps gcc analize and optimize code -# Other compilers may be able to do this at link time -gtk-port:CONFIG(release) { -SOURCES += \ - kjs/AllInOneFile.cpp +# Use a config-specific target to prevent parallel builds file clashes on Mac +mac: CONFIG(debug, debug|release): JAVASCRIPTCORE_TARGET = jscored +else: JAVASCRIPTCORE_TARGET = jscore + +# Output in JavaScriptCore/ +CONFIG(debug, debug|release) : JAVASCRIPTCORE_DESTDIR = debug +else: JAVASCRIPTCORE_DESTDIR = release + +CONFIG(standalone_package) { + isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = $$PWD/generated } else { -SOURCES += \ - kjs/function.cpp \ - kjs/debugger.cpp \ - kjs/array_instance.cpp \ - kjs/array_object.cpp \ - kjs/bool_object.cpp \ - kjs/collector.cpp \ - kjs/CommonIdentifiers.cpp \ - kjs/date_object.cpp \ - kjs/DateMath.cpp \ - kjs/dtoa.cpp \ - kjs/error_object.cpp \ - kjs/ExecState.cpp \ - kjs/function_object.cpp \ - kjs/identifier.cpp \ - kjs/internal.cpp \ - kjs/interpreter.cpp \ - kjs/JSImmediate.cpp \ - kjs/JSLock.cpp \ - kjs/JSWrapperObject.cpp \ - kjs/lexer.cpp \ - kjs/list.cpp \ - kjs/lookup.cpp \ - kjs/math_object.cpp \ - kjs/nodes.cpp \ - kjs/nodes2string.cpp \ - kjs/number_object.cpp \ - kjs/object.cpp \ - kjs/object_object.cpp \ - kjs/operations.cpp \ - kjs/Parser.cpp \ - kjs/property_map.cpp \ - kjs/property_slot.cpp \ - kjs/PropertyNameArray.cpp \ - kjs/regexp.cpp \ - kjs/regexp_object.cpp \ - kjs/scope_chain.cpp \ - kjs/string_object.cpp \ - kjs/ustring.cpp \ - kjs/value.cpp \ - wtf/FastMalloc.cpp - -!qt-port:SOURCES += \ - wtf/TCSystemAlloc.cpp + isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = $$OUTPUT_DIR/JavaScriptCore/generated +} + +JAVASCRIPTCORE_INCLUDEPATH = \ + $$PWD \ + $$PWD/.. \ + $$PWD/../ThirdParty \ + $$PWD/assembler \ + $$PWD/bytecode \ + $$PWD/bytecompiler \ + $$PWD/heap \ + $$PWD/dfg \ + $$PWD/debugger \ + $$PWD/interpreter \ + $$PWD/jit \ + $$PWD/parser \ + $$PWD/profiler \ + $$PWD/runtime \ + $$PWD/wtf \ + $$PWD/wtf/gobject \ + $$PWD/wtf/symbian \ + $$PWD/wtf/unicode \ + $$PWD/yarr \ + $$PWD/API \ + $$PWD/ForwardingHeaders \ + $$JSC_GENERATED_SOURCES_DIR + +symbian { + PREPEND_INCLUDEPATH = $$JAVASCRIPTCORE_INCLUDEPATH $$PREPEND_INCLUDEPATH +} else { + INCLUDEPATH = $$JAVASCRIPTCORE_INCLUDEPATH $$INCLUDEPATH +} + +symbian { + LIBS += -lhal + INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE +} + +win32-*: DEFINES += _HAS_TR1=0 + +DEFINES += BUILDING_JavaScriptCore BUILDING_WTF + +# CONFIG += text_breaking_with_icu + +contains (CONFIG, text_breaking_with_icu) { + DEFINES += WTF_USE_QT_ICU_TEXT_BREAKING=1 } -qt-port:SOURCES += \ - bindings/qt/qt_class.cpp \ - bindings/qt/qt_instance.cpp \ - bindings/qt/qt_runtime.cpp - -!CONFIG(QTDIR_build) { - defineTest(addExtraCompiler) { - QMAKE_EXTRA_COMPILERS += $$1 - generated_files.depends += compiler_$${1}_make_all - export(QMAKE_EXTRA_COMPILERS) - export(generated_files.depends) - return(true) +wince* { + INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat + INCLUDEPATH += $$PWD/../JavaScriptCore/os-win32 +} + + +defineTest(prependJavaScriptCoreLib) { + # Argument is the relative path to JavaScriptCore.pro's qmake output + pathToJavaScriptCoreOutput = $$ARGS/$$JAVASCRIPTCORE_DESTDIR + + win32-msvc*|wince* { + LIBS = -l$$JAVASCRIPTCORE_TARGET $$LIBS + LIBS = -L$$pathToJavaScriptCoreOutput $$LIBS + POST_TARGETDEPS += $${pathToJavaScriptCoreOutput}$${QMAKE_DIR_SEP}$${JAVASCRIPTCORE_TARGET}.lib + } else:symbian { + LIBS = -l$${JAVASCRIPTCORE_TARGET}.lib $$LIBS + # The default symbian build system does not use library paths at all. However when building with + # qmake's symbian makespec that uses Makefiles + QMAKE_LIBDIR += $$pathToJavaScriptCoreOutput + POST_TARGETDEPS += $${pathToJavaScriptCoreOutput}$${QMAKE_DIR_SEP}$${JAVASCRIPTCORE_TARGET}.lib + } else { + # Make sure jscore will be early in the list of libraries to workaround a bug in MinGW + # that can't resolve symbols from QtCore if libjscore comes after. + QMAKE_LIBDIR = $$pathToJavaScriptCoreOutput $$QMAKE_LIBDIR + LIBS = -l$$JAVASCRIPTCORE_TARGET $$LIBS + POST_TARGETDEPS += $${pathToJavaScriptCoreOutput}$${QMAKE_DIR_SEP}lib$${JAVASCRIPTCORE_TARGET}.a } + + win32-* { + LIBS += -lwinmm + } + + # The following line is to prevent qmake from adding jscore to libQtWebKit's prl dependencies. + # The compromise we have to accept by disabling explicitlib is to drop support to link QtWebKit and QtScript + # statically in applications (which isn't used often because, among other things, of licensing obstacles). + CONFIG -= explicitlib + + export(QMAKE_LIBDIR) + export(LIBS) + export(POST_TARGETDEPS) + export(CONFIG) + + return(true) } -# GENERATOR 1-A: LUT creator -lut.output = $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.lut.h -lut.commands = perl $$PWD/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT} -lut.depend = ${QMAKE_FILE_NAME} -lut.input = LUT_FILES -lut.CONFIG += no_link -addExtraCompiler(lut) - -# GENERATOR 1-B: particular LUT creator (for 1 file only) -keywordlut.output = $$GENERATED_SOURCES_DIR/lexer.lut.h -keywordlut.commands = perl $$PWD/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT} -keywordlut.depend = ${QMAKE_FILE_NAME} -keywordlut.input = KEYWORDLUT_FILES -keywordlut.CONFIG += no_link -addExtraCompiler(keywordlut) - -# GENERATOR 2: bison grammar -kjsbison.output = $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.cpp -kjsbison.commands = bison -d -p kjsyy ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_BASE}.tab.c && $(MOVE) ${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) ${QMAKE_FILE_BASE}.tab.h $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.h -kjsbison.depend = ${QMAKE_FILE_NAME} -kjsbison.input = KJSBISON -kjsbison.variable_out = GENERATED_SOURCES -kjsbison.dependency_type = TYPE_C -kjsbison.CONFIG = target_predeps -kjsbison.clean = ${QMAKE_FILE_OUT} ${QMAKE_VAR_GENERATED_SOURCES_DIR}${QMAKE_FILE_BASE}.h -addExtraCompiler(kjsbison)