Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Unified Diff: third_party/WebKit/JavaScriptCore/JavaScriptCore.scons

Issue 21165: Revert the merge. Mac build is mysteriously broken. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/JavaScriptCore/JavaScriptCore.scons
===================================================================
--- third_party/WebKit/JavaScriptCore/JavaScriptCore.scons (revision 9383)
+++ third_party/WebKit/JavaScriptCore/JavaScriptCore.scons (working copy)
@@ -1,312 +1,311 @@
-# The keys in sources are the paths to the directories
-# the values are an array of source files in those directories to compile
-sources = {}
-sources['API'] = [
- 'API/JSBase.cpp',
- 'API/JSCallbackConstructor.cpp',
- 'API/JSCallbackFunction.cpp',
- 'API/JSCallbackObject.cpp',
- 'API/JSClassRef.cpp',
- 'API/JSContextRef.cpp',
- 'API/JSObjectRef.cpp',
- 'API/JSProfilerPrivate.cpp',
- 'API/JSStringRef.cpp',
- 'API/JSValueRef.cpp',
- 'API/OpaqueJSString.cpp',
-]
-sources['bytecompiler'] = [
- 'bytecompiler/BytecodeGenerator.cpp',
-]
-sources['debugger'] = [
- 'debugger/Debugger.cpp',
- 'debugger/DebuggerActivation.cpp',
- 'debugger/DebuggerCallFrame.cpp',
-]
-sources['parser'] = [
- 'parser/Lexer.cpp',
- 'parser/Nodes.cpp',
- 'parser/Parser.cpp',
-]
-sources['pcre'] = [
- 'pcre/pcre_compile.cpp',
- 'pcre/pcre_exec.cpp',
- 'pcre/pcre_tables.cpp',
- 'pcre/pcre_ucp_searchfuncs.cpp',
- 'pcre/pcre_xclass.cpp',
-]
-sources['profiler'] = [
- 'profiler/HeavyProfile.cpp',
- 'profiler/Profile.cpp',
- 'profiler/ProfileGenerator.cpp',
- 'profiler/ProfileNode.cpp',
- 'profiler/Profiler.cpp',
- 'profiler/TreeProfile.cpp',
-]
-sources['runtime'] = [
- 'runtime/ArgList.cpp',
- 'runtime/Arguments.cpp',
- 'runtime/ArrayConstructor.cpp',
- 'runtime/ArrayPrototype.cpp',
- 'runtime/BooleanConstructor.cpp',
- 'runtime/BooleanObject.cpp',
- 'runtime/BooleanPrototype.cpp',
- 'runtime/CallData.cpp',
- 'runtime/Collector.cpp',
- 'runtime/Completion.cpp',
- 'runtime/CommonIdentifiers.cpp',
- 'runtime/ConstructData.cpp',
- 'runtime/DateConstructor.cpp',
- 'runtime/DateInstance.cpp',
- 'runtime/DateMath.cpp',
- 'runtime/DatePrototype.cpp',
- 'runtime/Error.cpp',
- 'runtime/ErrorConstructor.cpp',
- 'runtime/ErrorInstance.cpp',
- 'runtime/ErrorPrototype.cpp',
- 'runtime/ExceptionHelpers.cpp',
- 'runtime/FunctionConstructor.cpp',
- 'runtime/FunctionPrototype.cpp',
- 'runtime/GetterSetter.cpp',
- 'runtime/GlobalEvalFunction.cpp',
- 'runtime/Identifier.cpp',
- 'runtime/InitializeThreading.cpp',
- 'runtime/InternalFunction.cpp',
- 'runtime/JSActivation.cpp',
- 'runtime/JSArray.cpp',
- 'runtime/JSByteArray.cpp',
- 'runtime/JSCell.cpp',
- 'runtime/JSFunction.cpp',
- 'runtime/JSGlobalData.cpp',
- 'runtime/JSGlobalObject.cpp',
- 'runtime/JSGlobalObjectFunctions.cpp',
- 'runtime/JSImmediate.cpp',
- 'runtime/JSLock.cpp',
- 'runtime/JSNotAnObject.cpp',
- 'runtime/JSNumberCell.cpp',
- 'runtime/JSObject.cpp',
- 'runtime/JSPropertyNameIterator.cpp',
- 'runtime/JSStaticScopeObject.cpp',
- 'runtime/JSString.cpp',
- 'runtime/JSValue.cpp',
- 'runtime/JSVariableObject.cpp',
- 'runtime/JSWrapperObject.cpp',
- 'runtime/Lookup.cpp',
- 'runtime/MathObject.cpp',
- 'runtime/NativeErrorConstructor.cpp',
- 'runtime/NativeErrorPrototype.cpp',
- 'runtime/NumberConstructor.cpp',
- 'runtime/NumberObject.cpp',
- 'runtime/NumberPrototype.cpp',
- 'runtime/ObjectConstructor.cpp',
- 'runtime/ObjectPrototype.cpp',
- 'runtime/Operations.cpp',
- 'runtime/PropertyNameArray.cpp',
- 'runtime/PropertySlot.cpp',
- 'runtime/PrototypeFunction.cpp',
- 'runtime/RegExp.cpp',
- 'runtime/RegExpConstructor.cpp',
- 'runtime/RegExpObject.cpp',
- 'runtime/RegExpPrototype.cpp',
- 'runtime/ScopeChain.cpp',
- 'runtime/SmallStrings.cpp',
- 'runtime/StringConstructor.cpp',
- 'runtime/StringObject.cpp',
- 'runtime/StringPrototype.cpp',
- 'runtime/Structure.cpp',
- 'runtime/StructureChain.cpp',
- 'runtime/UString.cpp',
-]
-sources['bytecode'] = [
- 'bytecode/CodeBlock.cpp',
- 'bytecode/StructureStubInfo.cpp',
- 'bytecode/JumpTable.cpp',
- 'bytecode/Opcode.cpp',
- 'bytecode/SamplingTool.cpp',
-]
-sources['interpreter'] = [
- 'interpreter/CallFrame.cpp',
- 'interpreter/Interpreter.cpp',
- 'interpreter/RegisterFile.cpp',
-]
-sources['jit'] = [
- 'jit/ExecutableAllocator.cpp',
- 'jit/JIT.cpp',
-]
-sources['wrec'] = [
- 'wrec/CharacterClass.cpp',
- 'wrec/CharacterClassConstructor.cpp',
- 'wrec/WREC.cpp',
- 'wrec/WRECFunctors.cpp',
- 'wrec/WRECGenerator.cpp',
- 'wrec/WRECParser.cpp',
-]
-sources['wtf'] = [
- 'wtf/Assertions.cpp',
- 'wtf/ByteArray.cpp',
- 'wtf/CurrentTime.cpp',
- 'wtf/FastMalloc.cpp',
- 'wtf/HashTable.cpp',
- 'wtf/RandomNumber.cpp',
- 'wtf/RefCountedLeakCounter.cpp',
- 'wtf/Threading.cpp',
- 'wtf/TypeTraits.cpp',
- 'wtf/dtoa.cpp',
-]
-sources['wtf/unicode'] = [
- 'wtf/unicode/CollatorDefault.cpp',
- 'wtf/unicode/UTF8.cpp',
-]
-sources['wtf/unicode/icu'] = [
- 'wtf/unicode/icu/CollatorICU.cpp',
-]
-
-env = Environment()
-
-building_on_win32 = env['PLATFORM'] == 'win32' or env['PLATFORM'] == 'cygwin'
-
-# Scons uses gcc when building under cygwin by default
-# We also have to manually force 8.0 or Scons will try and
-# look up what version to use using the registry and fail
-# due to lack of cygwin-python registry support
-if env['PLATFORM'] == 'cygwin':
- env['MSVS_VERSION'] = '8.0'
- # Some systems have PROGRAMFILES, some have ProgramFiles
- # Scons msvc tool only expects 'ProgramFiles'
- import os
- if os.getenv('PROGRAMFILES') and not os.getenv('ProgramFiles'):
- os.environ['ProgramFiles'] = os.getenv('PROGRAMFILES')
-
- env.Tool('msvc')
- env.Tool('mslink')
- env.Tool('mslib')
-
-# Scons is failing to carry the %PATH% value through correctly
-# Hack IncrediBuild into our path so cl.exe doesn't crash
-if env['PLATFORM'] == 'win32':
- env.AppendENVPath('PATH', 'c:/Program Files/Xoreax/IncrediBuild')
-
-if env['PLATFORM'] == 'darwin':
- sources['API'].append('API/JSStringRefCF.cpp')
- sources['profiler'].append('profiler/ProfilerServer.mm')
- sources['wtf'].append('wtf/ThreadingPthreads.cpp')
- sources['wtf'].append('wtf/MainThread.cpp')
- sources['wtf/mac'] = ['wtf/mac/MainThreadMac.mm']
- sources['wtf'].append('wtf/TCSystemAlloc.cpp')
- sources['jit'].append('jit/ExecutableAllocatorPosix.cpp')
-elif building_on_win32:
- sources['wtf'].append('wtf/ThreadingNone.cpp')
- sources['jit'].append('jit/ExecutableAllocatorWin.cpp')
- env.Append(CPPDEFINES = ['ENABLE_JSC_MULTIPLE_THREADS=0'])
-
-derived_sources_path = 'DerivedSources/JavaScriptCore/'
-def DerivedSources(path):
- return derived_sources_path + path
-
-derived_sources_results = map(DerivedSources, [
- 'ArrayPrototype.lut.h',
- 'DatePrototype.lut.h',
- 'MathObject.lut.h',
- 'NumberConstructor.lut.h',
- 'RegExpConstructor.lut.h',
- 'RegExpObject.lut.h',
- 'StringPrototype.lut.h'
- 'chartables.c',
- 'grammar.cpp',
- 'grammar.h',
- 'lexer.lut.h',
-])
-
-derived_sources_sources = [
- 'runtime/ArrayPrototype.cpp',
- 'runtime/DatePrototype.cpp',
- 'runtime/MathObject.cpp',
- 'runtime/NumberConstructor.cpp',
- 'runtime/RegExpConstructor.cpp',
- 'runtime/RegExpObject.cpp',
- 'runtime/StringPrototype.cpp',
- 'parser/Grammar.y',
- 'parser/Lexer.cpp',
-]
-
-# Generate DerivedSources
-# Make sure Windows knows where bash (and all the other cygwin commands) live
-if env['PLATFORM'] == 'win32':
- env.AppendENVPath('PATH', 'C:/cygwin/bin')
-env.Command(derived_sources_results, derived_sources_sources, 'bash make-generated-sources.sh')
-sources[derived_sources_path] = [DerivedSources('Grammar.cpp')]
-
-# Handle os-version specific build settings
-if env['PLATFORM'] == 'darwin':
- from subprocess import Popen, PIPE
- version_pieces = Popen(["sw_vers", "-productVersion"], stdout = PIPE).communicate()[0].split('.')
- if map(int, version_pieces)[:2] > (10, 5):
- # Dtrace doesn't exist in Tiger, and was broken in Leopard
- env.Command(DerivedSources('TracingDtrace.h'), 'runtime/Tracing.d', '/usr/sbin/dtrace -h -o $TARGET -s $SOURCE')
-
-# This build file builds the Chromium port for now, support for
-# others could be added later.
-env.Append(CPPDEFINES = ['BUILDING_CHROMIUM__'])
-
-# I'm not certain how many of these windows defines are actually required.
-if building_on_win32:
- env.Append(CPPDEFINES = ['_WIN32_WINNT=0x0600', 'WINVER=0x0600', 'WIN32', '_WINDOWS', 'NOMINMAX', 'UNICODE', '_UNICODE', '__STD_C', '_HAS_EXCEPTIONS=0'])
-
-# Scons out-of-the-box only supports precompiled headers for MSVC
-# remove this when we fix Scons to understand GCC precompiled headers
-if env['CC'] == 'gcc':
- env['CCFLAGS'] = '-include JavaScriptCorePrefix.h'
-# Turns out the MSVC PCH support is badly broken
-# env['PCH'] = 'JavaScriptCorePrefix.h'
-# env['PCHSTOP'] = 'JavaScriptCorePrefix.h'
-
-if env['PLATFORM'] == 'darwin':
- env['FRAMEWORKS'] = ['CoreFoundation', 'Foundation']
- env['LIBS'] = ['icucore']
- # Apple does not ship the ICU headers with Mac OS X, so WebKit includes a copy of 3.2 headers
- env.Append(CPPPATH = 'icu')
-
-webkit_libraries_path = "../WebKitLibraries/win/"
-def WebKitLibraries(path):
- return webkit_libraries_path + path
-
-include_paths = ['.', '..', 'ForwardingHeaders'] + sources.keys()
-env.Append(CPPPATH = include_paths)
-if building_on_win32:
- env.Append(CPPPATH = ['os-win32', WebKitLibraries('include')])
- env.Prepend(LIBPATH = [WebKitLibraries('lib')])
- env.Append(LIBS = ['icuin', 'icuuc', 'user32', 'winmm'])
-
-# Save off a copy of the environment for use with jsc
-jsc_env = env.Clone()
-
-if building_on_win32:
- env.StaticLibrary("JavaScriptCore", sources.values())
-else:
- env.SharedLibrary("JavaScriptCore", sources.values())
-
-
-env = jsc_env
-
-# Build the jsc testing shell
-shell_sources = ['jsc.cpp']
-build_directory = '.' # This should be changed to point to wherever JavaScriptCore gets built to
-
-# It's hacky to re-use the same environment from JavaScriptCore
-# but it makes building on windows easier for now
-env['CPPPATH'] = include_paths
-env['LIBS'] = ['JavaScriptCore']
-env['LIBPATH'] = [build_directory]
-
-if env['PLATFORM'] == 'darwin':
- env.Append(LIBS = ['edit'])
- env.Append(CPPPATH = 'icu')
-elif building_on_win32:
- env.Append(CPPPATH = ['os-win32', WebKitLibraries('include')])
- env.Prepend(LIBPATH = [WebKitLibraries('lib')])
- env.Append(LIBS = ['icuin', 'icuuc', 'user32', 'winmm'])
-
-env.Program('jsc', shell_sources)
-
-
-
-
+# The keys in sources are the paths to the directories
+# the values are an array of source files in those directories to compile
+sources = {}
+sources['API'] = [
+ 'API/JSBase.cpp',
+ 'API/JSCallbackConstructor.cpp',
+ 'API/JSCallbackFunction.cpp',
+ 'API/JSCallbackObject.cpp',
+ 'API/JSClassRef.cpp',
+ 'API/JSContextRef.cpp',
+ 'API/JSObjectRef.cpp',
+ 'API/JSProfilerPrivate.cpp',
+ 'API/JSStringRef.cpp',
+ 'API/JSValueRef.cpp',
+ 'API/OpaqueJSString.cpp',
+]
+sources['bytecompiler'] = [
+ 'bytecompiler/BytecodeGenerator.cpp',
+]
+sources['debugger'] = [
+ 'debugger/Debugger.cpp',
+ 'debugger/DebuggerActivation.cpp',
+ 'debugger/DebuggerCallFrame.cpp',
+]
+sources['parser'] = [
+ 'parser/Lexer.cpp',
+ 'parser/Nodes.cpp',
+ 'parser/Parser.cpp',
+]
+sources['pcre'] = [
+ 'pcre/pcre_compile.cpp',
+ 'pcre/pcre_exec.cpp',
+ 'pcre/pcre_tables.cpp',
+ 'pcre/pcre_ucp_searchfuncs.cpp',
+ 'pcre/pcre_xclass.cpp',
+]
+sources['profiler'] = [
+ 'profiler/HeavyProfile.cpp',
+ 'profiler/Profile.cpp',
+ 'profiler/ProfileGenerator.cpp',
+ 'profiler/ProfileNode.cpp',
+ 'profiler/Profiler.cpp',
+ 'profiler/TreeProfile.cpp',
+]
+sources['runtime'] = [
+ 'runtime/ArgList.cpp',
+ 'runtime/Arguments.cpp',
+ 'runtime/ArrayConstructor.cpp',
+ 'runtime/ArrayPrototype.cpp',
+ 'runtime/BooleanConstructor.cpp',
+ 'runtime/BooleanObject.cpp',
+ 'runtime/BooleanPrototype.cpp',
+ 'runtime/CallData.cpp',
+ 'runtime/Collector.cpp',
+ 'runtime/Completion.cpp',
+ 'runtime/CommonIdentifiers.cpp',
+ 'runtime/ConstructData.cpp',
+ 'runtime/DateConstructor.cpp',
+ 'runtime/DateInstance.cpp',
+ 'runtime/DateMath.cpp',
+ 'runtime/DatePrototype.cpp',
+ 'runtime/Error.cpp',
+ 'runtime/ErrorConstructor.cpp',
+ 'runtime/ErrorInstance.cpp',
+ 'runtime/ErrorPrototype.cpp',
+ 'runtime/ExceptionHelpers.cpp',
+ 'runtime/FunctionConstructor.cpp',
+ 'runtime/FunctionPrototype.cpp',
+ 'runtime/GetterSetter.cpp',
+ 'runtime/GlobalEvalFunction.cpp',
+ 'runtime/Identifier.cpp',
+ 'runtime/InitializeThreading.cpp',
+ 'runtime/InternalFunction.cpp',
+ 'runtime/JSActivation.cpp',
+ 'runtime/JSArray.cpp',
+ 'runtime/JSByteArray.cpp',
+ 'runtime/JSCell.cpp',
+ 'runtime/JSFunction.cpp',
+ 'runtime/JSGlobalData.cpp',
+ 'runtime/JSGlobalObject.cpp',
+ 'runtime/JSGlobalObjectFunctions.cpp',
+ 'runtime/JSImmediate.cpp',
+ 'runtime/JSLock.cpp',
+ 'runtime/JSNotAnObject.cpp',
+ 'runtime/JSNumberCell.cpp',
+ 'runtime/JSObject.cpp',
+ 'runtime/JSPropertyNameIterator.cpp',
+ 'runtime/JSStaticScopeObject.cpp',
+ 'runtime/JSString.cpp',
+ 'runtime/JSValue.cpp',
+ 'runtime/JSVariableObject.cpp',
+ 'runtime/JSWrapperObject.cpp',
+ 'runtime/Lookup.cpp',
+ 'runtime/MathObject.cpp',
+ 'runtime/NativeErrorConstructor.cpp',
+ 'runtime/NativeErrorPrototype.cpp',
+ 'runtime/NumberConstructor.cpp',
+ 'runtime/NumberObject.cpp',
+ 'runtime/NumberPrototype.cpp',
+ 'runtime/ObjectConstructor.cpp',
+ 'runtime/ObjectPrototype.cpp',
+ 'runtime/Operations.cpp',
+ 'runtime/PropertyNameArray.cpp',
+ 'runtime/PropertySlot.cpp',
+ 'runtime/PrototypeFunction.cpp',
+ 'runtime/RegExp.cpp',
+ 'runtime/RegExpConstructor.cpp',
+ 'runtime/RegExpObject.cpp',
+ 'runtime/RegExpPrototype.cpp',
+ 'runtime/ScopeChain.cpp',
+ 'runtime/SmallStrings.cpp',
+ 'runtime/StringConstructor.cpp',
+ 'runtime/StringObject.cpp',
+ 'runtime/StringPrototype.cpp',
+ 'runtime/Structure.cpp',
+ 'runtime/StructureChain.cpp',
+ 'runtime/UString.cpp',
+]
+sources['bytecode'] = [
+ 'bytecode/CodeBlock.cpp',
+ 'bytecode/StructureStubInfo.cpp',
+ 'bytecode/JumpTable.cpp',
+ 'bytecode/Opcode.cpp',
+ 'bytecode/SamplingTool.cpp',
+]
+sources['interpreter'] = [
+ 'interpreter/CallFrame.cpp',
+ 'interpreter/Interpreter.cpp',
+ 'interpreter/RegisterFile.cpp',
+]
+sources['jit'] = [
+ 'jit/ExecutableAllocator.cpp',
+ 'jit/JIT.cpp',
+]
+sources['wrec'] = [
+ 'wrec/CharacterClass.cpp',
+ 'wrec/CharacterClassConstructor.cpp',
+ 'wrec/WREC.cpp',
+ 'wrec/WRECFunctors.cpp',
+ 'wrec/WRECGenerator.cpp',
+ 'wrec/WRECParser.cpp',
+]
+sources['wtf'] = [
+ 'wtf/Assertions.cpp',
+ 'wtf/ByteArray.cpp',
+ 'wtf/CurrentTime.cpp',
+ 'wtf/FastMalloc.cpp',
+ 'wtf/HashTable.cpp',
+ 'wtf/RandomNumber.cpp',
+ 'wtf/RefCountedLeakCounter.cpp',
+ 'wtf/Threading.cpp',
+ 'wtf/dtoa.cpp',
+]
+sources['wtf/unicode'] = [
+ 'wtf/unicode/CollatorDefault.cpp',
+ 'wtf/unicode/UTF8.cpp',
+]
+sources['wtf/unicode/icu'] = [
+ 'wtf/unicode/icu/CollatorICU.cpp',
+]
+
+env = Environment()
+
+building_on_win32 = env['PLATFORM'] == 'win32' or env['PLATFORM'] == 'cygwin'
+
+# Scons uses gcc when building under cygwin by default
+# We also have to manually force 8.0 or Scons will try and
+# look up what version to use using the registry and fail
+# due to lack of cygwin-python registry support
+if env['PLATFORM'] == 'cygwin':
+ env['MSVS_VERSION'] = '8.0'
+ # Some systems have PROGRAMFILES, some have ProgramFiles
+ # Scons msvc tool only expects 'ProgramFiles'
+ import os
+ if os.getenv('PROGRAMFILES') and not os.getenv('ProgramFiles'):
+ os.environ['ProgramFiles'] = os.getenv('PROGRAMFILES')
+
+ env.Tool('msvc')
+ env.Tool('mslink')
+ env.Tool('mslib')
+
+# Scons is failing to carry the %PATH% value through correctly
+# Hack IncrediBuild into our path so cl.exe doesn't crash
+if env['PLATFORM'] == 'win32':
+ env.AppendENVPath('PATH', 'c:/Program Files/Xoreax/IncrediBuild')
+
+if env['PLATFORM'] == 'darwin':
+ sources['API'].append('API/JSStringRefCF.cpp')
+ sources['profiler'].append('profiler/ProfilerServer.mm')
+ sources['wtf'].append('wtf/ThreadingPthreads.cpp')
+ sources['wtf'].append('wtf/MainThread.cpp')
+ sources['wtf/mac'] = ['wtf/mac/MainThreadMac.mm']
+ sources['wtf'].append('wtf/TCSystemAlloc.cpp')
+ sources['jit'].append('jit/ExecutableAllocatorPosix.cpp')
+elif building_on_win32:
+ sources['wtf'].append('wtf/ThreadingNone.cpp')
+ sources['jit'].append('jit/ExecutableAllocatorWin.cpp')
+ env.Append(CPPDEFINES = ['ENABLE_JSC_MULTIPLE_THREADS=0'])
+
+derived_sources_path = 'DerivedSources/JavaScriptCore/'
+def DerivedSources(path):
+ return derived_sources_path + path
+
+derived_sources_results = map(DerivedSources, [
+ 'ArrayPrototype.lut.h',
+ 'DatePrototype.lut.h',
+ 'MathObject.lut.h',
+ 'NumberConstructor.lut.h',
+ 'RegExpConstructor.lut.h',
+ 'RegExpObject.lut.h',
+ 'StringPrototype.lut.h'
+ 'chartables.c',
+ 'grammar.cpp',
+ 'grammar.h',
+ 'lexer.lut.h',
+])
+
+derived_sources_sources = [
+ 'runtime/ArrayPrototype.cpp',
+ 'runtime/DatePrototype.cpp',
+ 'runtime/MathObject.cpp',
+ 'runtime/NumberConstructor.cpp',
+ 'runtime/RegExpConstructor.cpp',
+ 'runtime/RegExpObject.cpp',
+ 'runtime/StringPrototype.cpp',
+ 'parser/Grammar.y',
+ 'parser/Lexer.cpp',
+]
+
+# Generate DerivedSources
+# Make sure Windows knows where bash (and all the other cygwin commands) live
+if env['PLATFORM'] == 'win32':
+ env.AppendENVPath('PATH', 'C:/cygwin/bin')
+env.Command(derived_sources_results, derived_sources_sources, 'bash make-generated-sources.sh')
+sources[derived_sources_path] = [DerivedSources('Grammar.cpp')]
+
+# Handle os-version specific build settings
+if env['PLATFORM'] == 'darwin':
+ from subprocess import Popen, PIPE
+ version_pieces = Popen(["sw_vers", "-productVersion"], stdout = PIPE).communicate()[0].split('.')
+ if map(int, version_pieces)[:2] > (10, 5):
+ # Dtrace doesn't exist in Tiger, and was broken in Leopard
+ env.Command(DerivedSources('TracingDtrace.h'), 'runtime/Tracing.d', '/usr/sbin/dtrace -h -o $TARGET -s $SOURCE')
+
+# This build file builds the Chromium port for now, support for
+# others could be added later.
+env.Append(CPPDEFINES = ['BUILDING_CHROMIUM__'])
+
+# I'm not certain how many of these windows defines are actually required.
+if building_on_win32:
+ env.Append(CPPDEFINES = ['_WIN32_WINNT=0x0600', 'WINVER=0x0600', 'WIN32', '_WINDOWS', 'NOMINMAX', 'UNICODE', '_UNICODE', '__STD_C', '_HAS_EXCEPTIONS=0'])
+
+# Scons out-of-the-box only supports precompiled headers for MSVC
+# remove this when we fix Scons to understand GCC precompiled headers
+if env['CC'] == 'gcc':
+ env['CCFLAGS'] = '-include JavaScriptCorePrefix.h'
+# Turns out the MSVC PCH support is badly broken
+# env['PCH'] = 'JavaScriptCorePrefix.h'
+# env['PCHSTOP'] = 'JavaScriptCorePrefix.h'
+
+if env['PLATFORM'] == 'darwin':
+ env['FRAMEWORKS'] = ['CoreFoundation', 'Foundation']
+ env['LIBS'] = ['icucore']
+ # Apple does not ship the ICU headers with Mac OS X, so WebKit includes a copy of 3.2 headers
+ env.Append(CPPPATH = 'icu')
+
+webkit_libraries_path = "../WebKitLibraries/win/"
+def WebKitLibraries(path):
+ return webkit_libraries_path + path
+
+include_paths = ['.', '..', 'ForwardingHeaders'] + sources.keys()
+env.Append(CPPPATH = include_paths)
+if building_on_win32:
+ env.Append(CPPPATH = ['os-win32', WebKitLibraries('include')])
+ env.Prepend(LIBPATH = [WebKitLibraries('lib')])
+ env.Append(LIBS = ['icuin', 'icuuc', 'user32', 'winmm'])
+
+# Save off a copy of the environment for use with jsc
+jsc_env = env.Clone()
+
+if building_on_win32:
+ env.StaticLibrary("JavaScriptCore", sources.values())
+else:
+ env.SharedLibrary("JavaScriptCore", sources.values())
+
+
+env = jsc_env
+
+# Build the jsc testing shell
+shell_sources = ['jsc.cpp']
+build_directory = '.' # This should be changed to point to wherever JavaScriptCore gets built to
+
+# It's hacky to re-use the same environment from JavaScriptCore
+# but it makes building on windows easier for now
+env['CPPPATH'] = include_paths
+env['LIBS'] = ['JavaScriptCore']
+env['LIBPATH'] = [build_directory]
+
+if env['PLATFORM'] == 'darwin':
+ env.Append(LIBS = ['edit'])
+ env.Append(CPPPATH = 'icu')
+elif building_on_win32:
+ env.Append(CPPPATH = ['os-win32', WebKitLibraries('include')])
+ env.Prepend(LIBPATH = [WebKitLibraries('lib')])
+ env.Append(LIBS = ['icuin', 'icuuc', 'user32', 'winmm'])
+
+env.Program('jsc', shell_sources)
+
+
+
+

Powered by Google App Engine
This is Rietveld 408576698