diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2010-02-11 10:55:52 (GMT) |
---|---|---|
committer | Kent Hansen <kent.hansen@nokia.com> | 2010-03-10 09:19:43 (GMT) |
commit | d73e11d56a094544f036fac3f6e4483d1104261e (patch) | |
tree | c292c8f53c660dae3f7681dc7acbbe788730a580 /src/3rdparty/javascriptcore/WebKit.pri | |
parent | 20e2b87b5194abf7e9f08b7c42c030a57e2d6b28 (diff) | |
download | Qt-d73e11d56a094544f036fac3f6e4483d1104261e.zip Qt-d73e11d56a094544f036fac3f6e4483d1104261e.tar.gz Qt-d73e11d56a094544f036fac3f6e4483d1104261e.tar.bz2 |
Update src/3rdparty/javascriptcore and adapt src/script to the changes
- Update qscriptvalueiterator test to expect length property when
iterating arrays and strings.
- Use EvalExecutable::create() instead of EvalExecutable constructor.
The constructor is private.
- Reimplement getOwnPropertyDescriptor() in all custom script objects.
- Remove all reimplementations of getPropertyAttributes().
It doesn't exist in trunk anymore (getOwnPropertyDescriptor() is used
instead).
- Remove checkDontDelete argument from deleteProperty() reimplementations.
The purpose of this argument was to support deleting properties
with attribute Undeletable from C++. But it was quite an invasive
patch to JavaScriptCore, and it doesn't seem worth it. If this feature
is really crucial it should be re-done upstream.
One of the tests needed to be updated so it's not sensitive to the
C++ undeletability.
- Adapt getOwnPropertyNames() reimplementations to signature change.
- Add missing QScriptObject structure flags, otherwise we don't get all virtual calls.
- Remove our patch for reporting column numbers in the debugger callbacks.
It was just too intrusive. As with the checkDontDelete issue, this should
be redone upstream if it's really important. In 4.7, QScriptEngineAgent
will always report a column number of 1.
Other compilation fixes:
- InternalFunction::name() takes an ExecState* argument, not GlobalData*
- ScopeChain::globalObject is no longer a function but a member variable
- ScopeChainNode constructor takes a GlobalObject argument
- Heap::collect() is called collectAllGarbage()
- JSValue::strictEqual() takes an ExecState* argument
- Debugger::exception() takes a bool hasHandler argument
- Debugger no longer reports column number (we decided to drop that patch from JSC)
- UString doesn't have operator+=(char*)
- Update the autotests to reflect the columnNumber=1 change.
- Add helper class to avoid crashing inside JSC.
Ever since r52856 in WebKit trunk, this is needed. There are probably a lot of
other public API functions that need this guard as well, but I'll add them as they
are discovered.
- Update mkdist-javascriptcore tag, exclude a few more files.
- Set ENABLE_JSC_MULTIPLE_THREADS=0 define on Mac due to r52355 in trunk.
Reviewed-by: Simon Hausmann
Diffstat (limited to 'src/3rdparty/javascriptcore/WebKit.pri')
-rw-r--r-- | src/3rdparty/javascriptcore/WebKit.pri | 100 |
1 files changed, 27 insertions, 73 deletions
diff --git a/src/3rdparty/javascriptcore/WebKit.pri b/src/3rdparty/javascriptcore/WebKit.pri index 16f89bf..0dd0799 100644 --- a/src/3rdparty/javascriptcore/WebKit.pri +++ b/src/3rdparty/javascriptcore/WebKit.pri @@ -1,5 +1,16 @@ # Include file to make it easy to include WebKit into Qt projects +# Detect that we are building as a standalone package by the presence of +# either the generated files directory or as part of the Qt package through +# QTDIR_build +CONFIG(QTDIR_build): CONFIG += standalone_package +else:exists($$PWD/WebCore/generated): CONFIG += standalone_package + +CONFIG(standalone_package) { + OUTPUT_DIR=$$PWD +} + +CONFIG += depend_includepath isEmpty(OUTPUT_DIR) { CONFIG(debug, debug|release) { @@ -17,19 +28,28 @@ building-libs { QT += webkit } else { QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR + QTWEBKITLIBNAME = QtWebKit mac:!static:contains(QT_CONFIG, qt_framework):!CONFIG(webkit_no_framework) { - LIBS += -framework QtWebKit + LIBS += -framework $$QTWEBKITLIBNAME QMAKE_FRAMEWORKPATH = $$OUTPUT_DIR/lib $$QMAKE_FRAMEWORKPATH } else { win32-*|wince* { - LIBS += -lQtWebKit$${QT_MAJOR_VERSION} + CONFIG(debug, debug|release):build_pass: QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}d + QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}$${QT_MAJOR_VERSION} + win32-g++: LIBS += -l$$QTWEBKITLIBNAME + else: LIBS += $${QTWEBKITLIBNAME}.lib } else { LIBS += -lQtWebKit + symbian { + TARGET.EPOCSTACKSIZE = 0x14000 // 80 kB + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 // Min 128kB, Max 32MB + } } } } DEPENDPATH += $$PWD/WebKit/qt/Api } +greaterThan(QT_MINOR_VERSION, 5):DEFINES += WTF_USE_ACCELERATED_COMPOSITING !mac:!unix|symbian { DEFINES += USE_SYSTEM_MALLOC @@ -43,15 +63,13 @@ BASE_DIR = $$PWD INCLUDEPATH += $$PWD/WebKit/qt/Api CONFIG -= warn_on -*-g++*:QMAKE_CXXFLAGS += -Wreturn-type -fno-strict-aliasing -#QMAKE_CXXFLAGS += -Wall -Wno-undef -Wno-unused-parameter +*-g++*:QMAKE_CXXFLAGS += -Wall -Wreturn-type -fno-strict-aliasing -Wcast-align -Wchar-subscripts -Wformat-security -Wreturn-type -Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum -Wundef -Wmissing-noreturn -Winit-self # Enable GNU compiler extensions to the ARM compiler for all Qt ports using RVCT symbian|*-armcc { RVCT_COMMON_CFLAGS = --gnu --diag_suppress 68,111,177,368,830,1293 RVCT_COMMON_CXXFLAGS = $$RVCT_COMMON_CFLAGS --no_parse_templates - DEFINES *= QT_NO_UITOOLS -} +} *-armcc { QMAKE_CFLAGS += $$RVCT_COMMON_CFLAGS @@ -62,75 +80,11 @@ symbian { QMAKE_CXXFLAGS.ARMCC += $$RVCT_COMMON_CXXFLAGS } +symbian|maemo5: DEFINES *= QT_NO_UITOOLS + contains(DEFINES, QT_NO_UITOOLS): CONFIG -= uitools # Disable a few warnings on Windows. The warnings are also # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops -win32-msvc*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4503 -wd4800 -wd4819 -wd4996 - -# -# For builds inside Qt we interpret the output rule and the input of each extra compiler manually -# and add the resulting sources to the SOURCES variable, because the build inside Qt contains already -# all the generated files. We do not need to generate any extra compiler rules in that case. -# -# In addition this function adds a new target called 'generated_files' that allows manually calling -# all the extra compilers to generate all the necessary files for the build using 'make generated_files' -# -defineTest(addExtraCompiler) { - CONFIG(QTDIR_build) { - outputRule = $$eval($${1}.output) - outVariable = $$eval($${1}.variable_out) - !isEqual(outVariable,GENERATED_SOURCES):return(true) - - input = $$eval($${1}.input) - input = $$eval($$input) - - for(file,input) { - base = $$basename(file) - base ~= s/\..+// - newfile=$$replace(outputRule,\\$\\{QMAKE_FILE_BASE\\},$$base) - SOURCES += $$newfile - } - - export(SOURCES) - } else { - QMAKE_EXTRA_COMPILERS += $$1 - generated_files.depends += compiler_$${1}_make_all - export(QMAKE_EXTRA_COMPILERS) - export(generated_files.depends) - } - return(true) -} - -defineTest(addExtraCompilerWithHeader) { - addExtraCompiler($$1) - - eval(headerFile = $${2}) - isEmpty(headerFile) { - eval($${1}_header.output = $$eval($${1}.output)) - eval($${1}_header.output ~= s/\.cpp/.h/) - eval($${1}_header.output ~= s/\.c/.h/) - } else { - eval($${1}_header.output = $$headerFile) - } - - eval($${1}_header.input = $$eval($${1}.input)) - eval($${1}_header.commands = @echo -n '') - eval($${1}_header.depends = compiler_$${1}_make_all) - eval($${1}_header.variable_out = GENERATED_FILES) - - export($${1}_header.output) - export($${1}_header.input) - export($${1}_header.commands) - export($${1}_header.depends) - export($${1}_header.variable_out) - - !CONFIG(QTDIR_build): QMAKE_EXTRA_COMPILERS += $${1}_header - - export(QMAKE_EXTRA_COMPILERS) - export(generated_files.depends) - export(SOURCES) - - return(true) -} +win32-msvc*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996 |