source: webkit/trunk/JavaScriptCore/JavaScriptCore.pri@ 32687

Last change on this file since 32687 was 32477, checked in by [email protected], 17 years ago

2008-04-24 Julien Chaffraix <[email protected]>

Reviewed by Simon.

Bug 15940: Implement threading API for Qt
https://bugs.webkit.org/show_bug.cgi?id=15940

Original patch by Justin Haygood, tweaked by me.

  • JavaScriptCore.pri:
  • wtf/ThreadingQt.cpp: Added. (WTF::threadMapMutex): (WTF::threadMap): (WTF::establishIdentifierForThread): (WTF::clearThreadForIdentifier): (WTF::threadForIdentifier): (WTF::initializeThreading): (WTF::ThreadPrivate::getReturnValue): (WTF::ThreadPrivate::ThreadPrivate): (WTF::ThreadPrivate::run): (WTF::createThread): (WTF::waitForThreadCompletion): return !res to return 0 on success (to match the pthreads implementation). (WTF::detachThread): (WTF::identifierByQthreadHandle): (WTF::currentThread): (WTF::Mutex::Mutex): (WTF::Mutex::~Mutex): (WTF::Mutex::lock): (WTF::Mutex::tryLock): (WTF::Mutex::unlock): (WTF::ThreadCondition::ThreadCondition): (WTF::ThreadCondition::~ThreadCondition): (WTF::ThreadCondition::wait): (WTF::ThreadCondition::timedWait): (WTF::ThreadCondition::signal):
File size: 4.2 KB
Line 
1# JavaScriptCore - Qt4 build info
2VPATH += $$PWD
3
4INCLUDEPATH += tmp
5INCLUDEPATH += $$PWD $$PWD/kjs $$PWD/wtf $$PWD/wtf/unicode
6DEPENDPATH += $$PWD $$PWD/kjs $$PWD/wtf $$PWD/wtf/unicode
7DEFINES -= KJS_IDENTIFIER_HIDE_GLOBALS
8qt-port:DEFINES += BUILDING_QT__
9gtk-port:DEFINES += BUILDING_GTK__
10
11# http://bugs.webkit.org/show_bug.cgi?id=16406
12# [Gtk] JavaScriptCore needs -lpthread
13gtk-port:!win32-*:LIBS += -lpthread
14
15win32-msvc*: INCLUDEPATH += $$PWD/os-win32
16
17isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = tmp
18
19include(pcre/pcre.pri)
20
21LUT_FILES += \
22 kjs/date_object.cpp \
23 kjs/number_object.cpp \
24 kjs/string_object.cpp \
25 kjs/array_object.cpp \
26 kjs/math_object.cpp \
27 kjs/regexp_object.cpp
28
29KEYWORDLUT_FILES += \
30 kjs/keywords.table
31
32KJSBISON += \
33 kjs/grammar.y
34
35SOURCES += \
36 wtf/Assertions.cpp \
37 wtf/HashTable.cpp \
38 wtf/MainThread.cpp \
39 wtf/unicode/CollatorDefault.cpp \
40 wtf/unicode/icu/CollatorICU.cpp \
41 wtf/unicode/UTF8.cpp \
42 API/JSBase.cpp \
43 API/JSCallbackConstructor.cpp \
44 API/JSCallbackFunction.cpp \
45 API/JSCallbackObject.cpp \
46 API/JSClassRef.cpp \
47 API/JSContextRef.cpp \
48 API/JSObjectRef.cpp \
49 API/JSStringRef.cpp \
50 API/JSValueRef.cpp \
51 kjs/InitializeThreading.cpp \
52 kjs/JSGlobalObject.cpp \
53 kjs/JSVariableObject.cpp
54
55# AllInOneFile.cpp helps gcc analize and optimize code
56# Other compilers may be able to do this at link time
57gtk-port:CONFIG(release) {
58SOURCES += \
59 kjs/AllInOneFile.cpp
60} else {
61SOURCES += \
62 kjs/function.cpp \
63 kjs/debugger.cpp \
64 kjs/array_instance.cpp \
65 kjs/array_object.cpp \
66 kjs/bool_object.cpp \
67 kjs/collector.cpp \
68 kjs/CommonIdentifiers.cpp \
69 kjs/date_object.cpp \
70 kjs/DateMath.cpp \
71 kjs/dtoa.cpp \
72 kjs/error_object.cpp \
73 kjs/ExecState.cpp \
74 kjs/function_object.cpp \
75 kjs/identifier.cpp \
76 kjs/internal.cpp \
77 kjs/interpreter.cpp \
78 kjs/JSImmediate.cpp \
79 kjs/JSLock.cpp \
80 kjs/JSWrapperObject.cpp \
81 kjs/lexer.cpp \
82 kjs/list.cpp \
83 kjs/lookup.cpp \
84 kjs/math_object.cpp \
85 kjs/nodes.cpp \
86 kjs/nodes2string.cpp \
87 kjs/number_object.cpp \
88 kjs/object.cpp \
89 kjs/object_object.cpp \
90 kjs/operations.cpp \
91 kjs/Parser.cpp \
92 kjs/property_map.cpp \
93 kjs/property_slot.cpp \
94 kjs/PropertyNameArray.cpp \
95 kjs/regexp.cpp \
96 kjs/regexp_object.cpp \
97 kjs/scope_chain.cpp \
98 kjs/string_object.cpp \
99 kjs/ustring.cpp \
100 kjs/value.cpp \
101 profiler/FunctionCallProfile.cpp \
102 profiler/Profiler.cpp \
103 wtf/FastMalloc.cpp
104
105!qt-port:SOURCES += \
106 wtf/TCSystemAlloc.cpp
107}
108
109gtk-port:SOURCES += \
110 wtf/ThreadingGtk.cpp \
111 wtf/gtk/MainThreadGtk.cpp
112
113!gtk-port:SOURCES += \
114 wtf/ThreadingQt.cpp \
115 wtf/qt/MainThreadQt.cpp
116
117!CONFIG(QTDIR_build) {
118 defineTest(addExtraCompiler) {
119 QMAKE_EXTRA_COMPILERS += $$1
120 generated_files.depends += compiler_$${1}_make_all
121 export(QMAKE_EXTRA_COMPILERS)
122 export(generated_files.depends)
123 return(true)
124 }
125}
126
127# GENERATOR 1-A: LUT creator
128lut.output = $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.lut.h
129lut.commands = perl $$PWD/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
130lut.depend = ${QMAKE_FILE_NAME}
131lut.input = LUT_FILES
132lut.CONFIG += no_link
133addExtraCompiler(lut)
134
135# GENERATOR 1-B: particular LUT creator (for 1 file only)
136keywordlut.output = $$GENERATED_SOURCES_DIR/lexer.lut.h
137keywordlut.commands = perl $$PWD/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
138keywordlut.depend = ${QMAKE_FILE_NAME}
139keywordlut.input = KEYWORDLUT_FILES
140keywordlut.CONFIG += no_link
141addExtraCompiler(keywordlut)
142
143# GENERATOR 2: bison grammar
144kjsbison.output = $$GENERATED_SOURCES_DIR/${QMAKE_FILE_BASE}.cpp
145kjsbison.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
146kjsbison.depend = ${QMAKE_FILE_NAME}
147kjsbison.input = KJSBISON
148kjsbison.variable_out = GENERATED_SOURCES
149kjsbison.dependency_type = TYPE_C
150kjsbison.CONFIG = target_predeps
151kjsbison.clean = ${QMAKE_FILE_OUT} ${QMAKE_VAR_GENERATED_SOURCES_DIR}${QMAKE_FILE_BASE}.h
152addExtraCompiler(kjsbison)
Note: See TracBrowser for help on using the repository browser.