source: webkit/trunk/JavaScriptCore/JavaScriptCore.scons@ 42844

Last change on this file since 42844 was 41126, checked in by [email protected], 16 years ago

JavaScriptCore:

2009-02-22 Geoffrey Garen <[email protected]>

Reviewed by Sam Weinig.

Next step in splitting JIT functionality out of the Interpreter class:
Created a JITStubs class and renamed Interpreter::cti_* to JITStubs::cti_*.


Also, moved timeout checking into its own class, located in JSGlobalData,
so both the Interpreter and the JIT could have access to it.

  • JavaScriptCore.exp:
  • JavaScriptCore.pri:
  • JavaScriptCore.scons:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • JavaScriptCoreSources.bkl:
  • interpreter/CallFrame.h:
  • interpreter/Interpreter.cpp: (JSC::Interpreter::Interpreter): (JSC::Interpreter::privateExecute):
  • interpreter/Interpreter.h:
  • interpreter/Register.h:
  • jit/JIT.cpp: (JSC::): (JSC::JIT::emitTimeoutCheck): (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileSlowCases): (JSC::JIT::privateCompile): (JSC::JIT::privateCompileCTIMachineTrampolines):
  • jit/JIT.h:
  • jit/JITArithmetic.cpp: (JSC::JIT::compileFastArithSlow_op_lshift): (JSC::JIT::compileFastArithSlow_op_rshift): (JSC::JIT::compileFastArithSlow_op_bitand): (JSC::JIT::compileFastArithSlow_op_mod): (JSC::JIT::compileFastArith_op_mod): (JSC::JIT::compileFastArithSlow_op_post_inc): (JSC::JIT::compileFastArithSlow_op_post_dec): (JSC::JIT::compileFastArithSlow_op_pre_inc): (JSC::JIT::compileFastArithSlow_op_pre_dec): (JSC::JIT::compileFastArith_op_add): (JSC::JIT::compileFastArith_op_mul): (JSC::JIT::compileFastArith_op_sub): (JSC::JIT::compileBinaryArithOpSlowCase): (JSC::JIT::compileFastArithSlow_op_add): (JSC::JIT::compileFastArithSlow_op_mul):
  • jit/JITCall.cpp: (JSC::JIT::compileOpCall): (JSC::JIT::compileOpCallSlowCase):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::compileGetByIdHotPath): (JSC::JIT::compilePutByIdHotPath): (JSC::JIT::compileGetByIdSlowCase): (JSC::JIT::compilePutByIdSlowCase): (JSC::JIT::privateCompilePutByIdTransition): (JSC::JIT::patchGetByIdSelf): (JSC::JIT::patchPutByIdReplace): (JSC::JIT::privateCompilePatchGetArrayLength): (JSC::JIT::privateCompileGetByIdSelf): (JSC::JIT::privateCompileGetByIdProto): (JSC::JIT::privateCompileGetByIdChain): (JSC::JIT::privateCompilePutByIdReplace):
  • jit/JITStubs.cpp: (JSC::JITStubs::tryCachePutByID): (JSC::JITStubs::tryCacheGetByID): (JSC::JITStubs::cti_op_convert_this): (JSC::JITStubs::cti_op_end): (JSC::JITStubs::cti_op_add): (JSC::JITStubs::cti_op_pre_inc): (JSC::JITStubs::cti_timeout_check): (JSC::JITStubs::cti_register_file_check): (JSC::JITStubs::cti_op_loop_if_less): (JSC::JITStubs::cti_op_loop_if_lesseq): (JSC::JITStubs::cti_op_new_object): (JSC::JITStubs::cti_op_put_by_id_generic): (JSC::JITStubs::cti_op_get_by_id_generic): (JSC::JITStubs::cti_op_put_by_id): (JSC::JITStubs::cti_op_put_by_id_second): (JSC::JITStubs::cti_op_put_by_id_fail): (JSC::JITStubs::cti_op_get_by_id): (JSC::JITStubs::cti_op_get_by_id_second): (JSC::JITStubs::cti_op_get_by_id_self_fail): (JSC::JITStubs::cti_op_get_by_id_proto_list): (JSC::JITStubs::cti_op_get_by_id_proto_list_full): (JSC::JITStubs::cti_op_get_by_id_proto_fail): (JSC::JITStubs::cti_op_get_by_id_array_fail): (JSC::JITStubs::cti_op_get_by_id_string_fail): (JSC::JITStubs::cti_op_instanceof): (JSC::JITStubs::cti_op_del_by_id): (JSC::JITStubs::cti_op_mul): (JSC::JITStubs::cti_op_new_func): (JSC::JITStubs::cti_op_call_JSFunction): (JSC::JITStubs::cti_op_call_arityCheck): (JSC::JITStubs::cti_vm_dontLazyLinkCall): (JSC::JITStubs::cti_vm_lazyLinkCall): (JSC::JITStubs::cti_op_push_activation): (JSC::JITStubs::cti_op_call_NotJSFunction): (JSC::JITStubs::cti_op_create_arguments): (JSC::JITStubs::cti_op_create_arguments_no_params): (JSC::JITStubs::cti_op_tear_off_activation): (JSC::JITStubs::cti_op_tear_off_arguments): (JSC::JITStubs::cti_op_profile_will_call): (JSC::JITStubs::cti_op_profile_did_call): (JSC::JITStubs::cti_op_ret_scopeChain): (JSC::JITStubs::cti_op_new_array): (JSC::JITStubs::cti_op_resolve): (JSC::JITStubs::cti_op_construct_JSConstruct): (JSC::JITStubs::cti_op_construct_NotJSConstruct): (JSC::JITStubs::cti_op_get_by_val): (JSC::JITStubs::cti_op_get_by_val_byte_array): (JSC::JITStubs::cti_op_resolve_func): (JSC::JITStubs::cti_op_sub): (JSC::JITStubs::cti_op_put_by_val): (JSC::JITStubs::cti_op_put_by_val_array): (JSC::JITStubs::cti_op_put_by_val_byte_array): (JSC::JITStubs::cti_op_lesseq): (JSC::JITStubs::cti_op_loop_if_true): (JSC::JITStubs::cti_op_negate): (JSC::JITStubs::cti_op_resolve_base): (JSC::JITStubs::cti_op_resolve_skip): (JSC::JITStubs::cti_op_resolve_global): (JSC::JITStubs::cti_op_div): (JSC::JITStubs::cti_op_pre_dec): (JSC::JITStubs::cti_op_jless): (JSC::JITStubs::cti_op_not): (JSC::JITStubs::cti_op_jtrue): (JSC::JITStubs::cti_op_post_inc): (JSC::JITStubs::cti_op_eq): (JSC::JITStubs::cti_op_lshift): (JSC::JITStubs::cti_op_bitand): (JSC::JITStubs::cti_op_rshift): (JSC::JITStubs::cti_op_bitnot): (JSC::JITStubs::cti_op_resolve_with_base): (JSC::JITStubs::cti_op_new_func_exp): (JSC::JITStubs::cti_op_mod): (JSC::JITStubs::cti_op_less): (JSC::JITStubs::cti_op_neq): (JSC::JITStubs::cti_op_post_dec): (JSC::JITStubs::cti_op_urshift): (JSC::JITStubs::cti_op_bitxor): (JSC::JITStubs::cti_op_new_regexp): (JSC::JITStubs::cti_op_bitor): (JSC::JITStubs::cti_op_call_eval): (JSC::JITStubs::cti_op_throw): (JSC::JITStubs::cti_op_get_pnames): (JSC::JITStubs::cti_op_next_pname): (JSC::JITStubs::cti_op_push_scope): (JSC::JITStubs::cti_op_pop_scope): (JSC::JITStubs::cti_op_typeof): (JSC::JITStubs::cti_op_is_undefined): (JSC::JITStubs::cti_op_is_boolean): (JSC::JITStubs::cti_op_is_number): (JSC::JITStubs::cti_op_is_string): (JSC::JITStubs::cti_op_is_object): (JSC::JITStubs::cti_op_is_function): (JSC::JITStubs::cti_op_stricteq): (JSC::JITStubs::cti_op_nstricteq): (JSC::JITStubs::cti_op_to_jsnumber): (JSC::JITStubs::cti_op_in): (JSC::JITStubs::cti_op_push_new_scope): (JSC::JITStubs::cti_op_jmp_scopes): (JSC::JITStubs::cti_op_put_by_index): (JSC::JITStubs::cti_op_switch_imm): (JSC::JITStubs::cti_op_switch_char): (JSC::JITStubs::cti_op_switch_string): (JSC::JITStubs::cti_op_del_by_val): (JSC::JITStubs::cti_op_put_getter): (JSC::JITStubs::cti_op_put_setter): (JSC::JITStubs::cti_op_new_error): (JSC::JITStubs::cti_op_debug): (JSC::JITStubs::cti_vm_throw):
  • jit/JITStubs.h: (JSC::):
  • runtime/JSFunction.h:
  • runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData):
  • runtime/JSGlobalData.h:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/TimeoutChecker.cpp: Copied from interpreter/Interpreter.cpp. (JSC::TimeoutChecker::TimeoutChecker): (JSC::TimeoutChecker::reset): (JSC::TimeoutChecker::didTimeOut):
  • runtime/TimeoutChecker.h: Copied from interpreter/Interpreter.h. (JSC::TimeoutChecker::setTimeoutInterval): (JSC::TimeoutChecker::ticksUntilNextCheck): (JSC::TimeoutChecker::start): (JSC::TimeoutChecker::stop):

WebCore:

2009-02-20 Geoffrey Garen <[email protected]>

Reviewed by Sam Weinig.

Updated for JavaScriptCore changes to timeout checking.

  • bindings/js/JSCustomPositionCallback.cpp: (WebCore::JSCustomPositionCallback::handleEvent):
  • bindings/js/JSCustomPositionErrorCallback.cpp: (WebCore::JSCustomPositionErrorCallback::handleEvent):
  • bindings/js/JSCustomSQLStatementCallback.cpp: (WebCore::JSCustomSQLStatementCallback::handleEvent):
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp: (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
  • bindings/js/JSCustomSQLTransactionCallback.cpp: (WebCore::JSCustomSQLTransactionCallback::handleEvent):
  • bindings/js/JSCustomSQLTransactionErrorCallback.cpp: (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
  • bindings/js/JSCustomVoidCallback.cpp: (WebCore::JSCustomVoidCallback::handleEvent):
  • bindings/js/JSCustomXPathNSResolver.cpp: (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::JSDOMWindowBase): (WebCore::JSDOMWindowBase::commonJSGlobalData):
  • bindings/js/JSEventListener.cpp: (WebCore::JSAbstractEventListener::handleEvent):
  • bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::executeFunctionInContext):
  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::evaluate):
  • bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): (WebCore::WorkerScriptController::forbidExecution):
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject callWebScriptMethod:withArguments:]): (-[WebScriptObject evaluateWebScript:]):
  • bridge/NP_jsobject.cpp: (_NPN_InvokeDefault): (_NPN_Invoke): (_NPN_Evaluate): (_NPN_Construct):
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::call): (JavaJSObject::eval):
File size: 9.9 KB
Line 
1# The keys in sources are the paths to the directories
2# the values are an array of source files in those directories to compile
3sources = {}
4sources['API'] = [
5 'API/JSBase.cpp',
6 'API/JSCallbackConstructor.cpp',
7 'API/JSCallbackFunction.cpp',
8 'API/JSCallbackObject.cpp',
9 'API/JSClassRef.cpp',
10 'API/JSContextRef.cpp',
11 'API/JSObjectRef.cpp',
12 'API/JSProfilerPrivate.cpp',
13 'API/JSStringRef.cpp',
14 'API/JSValueRef.cpp',
15 'API/OpaqueJSString.cpp',
16]
17sources['bytecompiler'] = [
18 'bytecompiler/BytecodeGenerator.cpp',
19]
20sources['debugger'] = [
21 'debugger/Debugger.cpp',
22 'debugger/DebuggerActivation.cpp',
23 'debugger/DebuggerCallFrame.cpp',
24]
25sources['parser'] = [
26 'parser/Lexer.cpp',
27 'parser/Nodes.cpp',
28 'parser/Parser.cpp',
29]
30sources['pcre'] = [
31 'pcre/pcre_compile.cpp',
32 'pcre/pcre_exec.cpp',
33 'pcre/pcre_tables.cpp',
34 'pcre/pcre_ucp_searchfuncs.cpp',
35 'pcre/pcre_xclass.cpp',
36]
37sources['profiler'] = [
38 'profiler/HeavyProfile.cpp',
39 'profiler/Profile.cpp',
40 'profiler/ProfileGenerator.cpp',
41 'profiler/ProfileNode.cpp',
42 'profiler/Profiler.cpp',
43 'profiler/TreeProfile.cpp',
44]
45sources['runtime'] = [
46 'runtime/ArgList.cpp',
47 'runtime/Arguments.cpp',
48 'runtime/ArrayConstructor.cpp',
49 'runtime/ArrayPrototype.cpp',
50 'runtime/BooleanConstructor.cpp',
51 'runtime/BooleanObject.cpp',
52 'runtime/BooleanPrototype.cpp',
53 'runtime/CallData.cpp',
54 'runtime/Collector.cpp',
55 'runtime/Completion.cpp',
56 'runtime/CommonIdentifiers.cpp',
57 'runtime/ConstructData.cpp',
58 'runtime/DateConstructor.cpp',
59 'runtime/DateInstance.cpp',
60 'runtime/DateMath.cpp',
61 'runtime/DatePrototype.cpp',
62 'runtime/Error.cpp',
63 'runtime/ErrorConstructor.cpp',
64 'runtime/ErrorInstance.cpp',
65 'runtime/ErrorPrototype.cpp',
66 'runtime/ExceptionHelpers.cpp',
67 'runtime/FunctionConstructor.cpp',
68 'runtime/FunctionPrototype.cpp',
69 'runtime/GetterSetter.cpp',
70 'runtime/GlobalEvalFunction.cpp',
71 'runtime/Identifier.cpp',
72 'runtime/InitializeThreading.cpp',
73 'runtime/InternalFunction.cpp',
74 'runtime/JSActivation.cpp',
75 'runtime/JSArray.cpp',
76 'runtime/JSByteArray.cpp',
77 'runtime/JSCell.cpp',
78 'runtime/JSFunction.cpp',
79 'runtime/JSGlobalData.cpp',
80 'runtime/JSGlobalObject.cpp',
81 'runtime/JSGlobalObjectFunctions.cpp',
82 'runtime/JSImmediate.cpp',
83 'runtime/JSLock.cpp',
84 'runtime/JSNotAnObject.cpp',
85 'runtime/JSNumberCell.cpp',
86 'runtime/JSObject.cpp',
87 'runtime/JSPropertyNameIterator.cpp',
88 'runtime/JSStaticScopeObject.cpp',
89 'runtime/JSString.cpp',
90 'runtime/JSValue.cpp',
91 'runtime/JSVariableObject.cpp',
92 'runtime/JSWrapperObject.cpp',
93 'runtime/Lookup.cpp',
94 'runtime/MathObject.cpp',
95 'runtime/NativeErrorConstructor.cpp',
96 'runtime/NativeErrorPrototype.cpp',
97 'runtime/NumberConstructor.cpp',
98 'runtime/NumberObject.cpp',
99 'runtime/NumberPrototype.cpp',
100 'runtime/ObjectConstructor.cpp',
101 'runtime/ObjectPrototype.cpp',
102 'runtime/Operations.cpp',
103 'runtime/PropertyNameArray.cpp',
104 'runtime/PropertySlot.cpp',
105 'runtime/PrototypeFunction.cpp',
106 'runtime/RegExp.cpp',
107 'runtime/RegExpConstructor.cpp',
108 'runtime/RegExpObject.cpp',
109 'runtime/RegExpPrototype.cpp',
110 'runtime/ScopeChain.cpp',
111 'runtime/SmallStrings.cpp',
112 'runtime/StringConstructor.cpp',
113 'runtime/StringObject.cpp',
114 'runtime/StringPrototype.cpp',
115 'runtime/Structure.cpp',
116 'runtime/StructureChain.cpp',
117 'runtime/TimeoutChecker.cpp',
118 'runtime/UString.cpp',
119]
120sources['bytecode'] = [
121 'bytecode/CodeBlock.cpp',
122 'bytecode/StructureStubInfo.cpp',
123 'bytecode/JumpTable.cpp',
124 'bytecode/Opcode.cpp',
125 'bytecode/SamplingTool.cpp',
126]
127sources['interpreter'] = [
128 'interpreter/CallFrame.cpp',
129 'interpreter/Interpreter.cpp',
130 'interpreter/RegisterFile.cpp',
131]
132sources['jit'] = [
133 'jit/ExecutableAllocator.cpp',
134 'jit/JIT.cpp',
135]
136sources['wrec'] = [
137 'wrec/CharacterClass.cpp',
138 'wrec/CharacterClassConstructor.cpp',
139 'wrec/WREC.cpp',
140 'wrec/WRECFunctors.cpp',
141 'wrec/WRECGenerator.cpp',
142 'wrec/WRECParser.cpp',
143]
144sources['wtf'] = [
145 'wtf/Assertions.cpp',
146 'wtf/ByteArray.cpp',
147 'wtf/CurrentTime.cpp',
148 'wtf/FastMalloc.cpp',
149 'wtf/HashTable.cpp',
150 'wtf/RandomNumber.cpp',
151 'wtf/RefCountedLeakCounter.cpp',
152 'wtf/Threading.cpp',
153 'wtf/TypeTraits.cpp',
154 'wtf/dtoa.cpp',
155]
156sources['wtf/unicode'] = [
157 'wtf/unicode/CollatorDefault.cpp',
158 'wtf/unicode/UTF8.cpp',
159]
160sources['wtf/unicode/icu'] = [
161 'wtf/unicode/icu/CollatorICU.cpp',
162]
163
164env = Environment()
165
166building_on_win32 = env['PLATFORM'] == 'win32' or env['PLATFORM'] == 'cygwin'
167
168# Scons uses gcc when building under cygwin by default
169# We also have to manually force 8.0 or Scons will try and
170# look up what version to use using the registry and fail
171# due to lack of cygwin-python registry support
172if env['PLATFORM'] == 'cygwin':
173 env['MSVS_VERSION'] = '8.0'
174 # Some systems have PROGRAMFILES, some have ProgramFiles
175 # Scons msvc tool only expects 'ProgramFiles'
176 import os
177 if os.getenv('PROGRAMFILES') and not os.getenv('ProgramFiles'):
178 os.environ['ProgramFiles'] = os.getenv('PROGRAMFILES')
179
180 env.Tool('msvc')
181 env.Tool('mslink')
182 env.Tool('mslib')
183
184# Scons is failing to carry the %PATH% value through correctly
185# Hack IncrediBuild into our path so cl.exe doesn't crash
186if env['PLATFORM'] == 'win32':
187 env.AppendENVPath('PATH', 'c:/Program Files/Xoreax/IncrediBuild')
188
189if env['PLATFORM'] == 'darwin':
190 sources['API'].append('API/JSStringRefCF.cpp')
191 sources['profiler'].append('profiler/ProfilerServer.mm')
192 sources['wtf'].append('wtf/ThreadingPthreads.cpp')
193 sources['wtf'].append('wtf/MainThread.cpp')
194 sources['wtf/mac'] = ['wtf/mac/MainThreadMac.mm']
195 sources['wtf'].append('wtf/TCSystemAlloc.cpp')
196 sources['jit'].append('jit/ExecutableAllocatorPosix.cpp')
197elif building_on_win32:
198 sources['wtf'].append('wtf/ThreadingNone.cpp')
199 sources['jit'].append('jit/ExecutableAllocatorWin.cpp')
200 env.Append(CPPDEFINES = ['ENABLE_JSC_MULTIPLE_THREADS=0'])
201
202derived_sources_path = 'DerivedSources/JavaScriptCore/'
203def DerivedSources(path):
204 return derived_sources_path + path
205
206derived_sources_results = map(DerivedSources, [
207 'ArrayPrototype.lut.h',
208 'DatePrototype.lut.h',
209 'MathObject.lut.h',
210 'NumberConstructor.lut.h',
211 'RegExpConstructor.lut.h',
212 'RegExpObject.lut.h',
213 'StringPrototype.lut.h'
214 'chartables.c',
215 'grammar.cpp',
216 'grammar.h',
217 'lexer.lut.h',
218])
219
220derived_sources_sources = [
221 'runtime/ArrayPrototype.cpp',
222 'runtime/DatePrototype.cpp',
223 'runtime/MathObject.cpp',
224 'runtime/NumberConstructor.cpp',
225 'runtime/RegExpConstructor.cpp',
226 'runtime/RegExpObject.cpp',
227 'runtime/StringPrototype.cpp',
228 'parser/Grammar.y',
229 'parser/Lexer.cpp',
230]
231
232# Generate DerivedSources
233# Make sure Windows knows where bash (and all the other cygwin commands) live
234if env['PLATFORM'] == 'win32':
235 env.AppendENVPath('PATH', 'C:/cygwin/bin')
236env.Command(derived_sources_results, derived_sources_sources, 'bash make-generated-sources.sh')
237sources[derived_sources_path] = [DerivedSources('Grammar.cpp')]
238
239# Handle os-version specific build settings
240if env['PLATFORM'] == 'darwin':
241 from subprocess import Popen, PIPE
242 version_pieces = Popen(["sw_vers", "-productVersion"], stdout = PIPE).communicate()[0].split('.')
243 if map(int, version_pieces)[:2] > (10, 5):
244 # Dtrace doesn't exist in Tiger, and was broken in Leopard
245 env.Command(DerivedSources('TracingDtrace.h'), 'runtime/Tracing.d', '/usr/sbin/dtrace -h -o $TARGET -s $SOURCE')
246
247# This build file builds the Chromium port for now, support for
248# others could be added later.
249env.Append(CPPDEFINES = ['BUILDING_CHROMIUM__'])
250
251# I'm not certain how many of these windows defines are actually required.
252if building_on_win32:
253 env.Append(CPPDEFINES = ['_WIN32_WINNT=0x0600', 'WINVER=0x0600', 'WIN32', '_WINDOWS', 'NOMINMAX', 'UNICODE', '_UNICODE', '__STD_C', '_HAS_EXCEPTIONS=0'])
254
255# Scons out-of-the-box only supports precompiled headers for MSVC
256# remove this when we fix Scons to understand GCC precompiled headers
257if env['CC'] == 'gcc':
258 env['CCFLAGS'] = '-include JavaScriptCorePrefix.h'
259# Turns out the MSVC PCH support is badly broken
260# env['PCH'] = 'JavaScriptCorePrefix.h'
261# env['PCHSTOP'] = 'JavaScriptCorePrefix.h'
262
263if env['PLATFORM'] == 'darwin':
264 env['FRAMEWORKS'] = ['CoreFoundation', 'Foundation']
265 env['LIBS'] = ['icucore']
266 # Apple does not ship the ICU headers with Mac OS X, so WebKit includes a copy of 3.2 headers
267 env.Append(CPPPATH = 'icu')
268
269webkit_libraries_path = "../WebKitLibraries/win/"
270def WebKitLibraries(path):
271 return webkit_libraries_path + path
272
273include_paths = ['.', '..', 'ForwardingHeaders'] + sources.keys()
274env.Append(CPPPATH = include_paths)
275if building_on_win32:
276 env.Append(CPPPATH = ['os-win32', WebKitLibraries('include')])
277 env.Prepend(LIBPATH = [WebKitLibraries('lib')])
278 env.Append(LIBS = ['icuin', 'icuuc', 'user32', 'winmm'])
279
280# Save off a copy of the environment for use with jsc
281jsc_env = env.Clone()
282
283if building_on_win32:
284 env.StaticLibrary("JavaScriptCore", sources.values())
285else:
286 env.SharedLibrary("JavaScriptCore", sources.values())
287
288
289env = jsc_env
290
291# Build the jsc testing shell
292shell_sources = ['jsc.cpp']
293build_directory = '.' # This should be changed to point to wherever JavaScriptCore gets built to
294
295# It's hacky to re-use the same environment from JavaScriptCore
296# but it makes building on windows easier for now
297env['CPPPATH'] = include_paths
298env['LIBS'] = ['JavaScriptCore']
299env['LIBPATH'] = [build_directory]
300
301if env['PLATFORM'] == 'darwin':
302 env.Append(LIBS = ['edit'])
303 env.Append(CPPPATH = 'icu')
304elif building_on_win32:
305 env.Append(CPPPATH = ['os-win32', WebKitLibraries('include')])
306 env.Prepend(LIBPATH = [WebKitLibraries('lib')])
307 env.Append(LIBS = ['icuin', 'icuuc', 'user32', 'winmm'])
308
309env.Program('jsc', shell_sources)
Note: See TracBrowser for help on using the repository browser.