For the Qt build combine JavaScriptCore and WebKit into one library, to make it possi...
authorhausmann <hausmann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Jan 2007 10:20:20 +0000 (10:20 +0000)
committerhausmann <hausmann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Jan 2007 10:20:20 +0000 (10:20 +0000)
build it with ELF visibility or on Windows without adding EXPORT macros to kjs all over the place.
r=zack

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@19251 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 files changed:
ChangeLog
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.pri [moved from JavaScriptCore/JavaScriptCore.pro with 95% similarity]
JavaScriptCore/kjs/testkjs.pro
WebCore/ChangeLog
WebCore/WebCore.pro
WebKit.pri
WebKit.pro
WebKitQt/Api/qwebframe.h
WebKitQt/Api/qwebkitglobal.h [new file with mode: 0644]
WebKitQt/Api/qwebpage.h
WebKitQt/Api/qwebpagehistory.h
WebKitQt/ChangeLog

index 50bf410..09b5a05 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-01-30  Simon Hausmann  <hausmann@kde.org>
+
+        Reviewed by Zack.
+
+        * WebKit.pri: libJavaScriptCore is gone with the Qt build
+        * WebKit.pro:
+
 2007-01-26  George Staikos  <staikos@kde.org>
 
         Remove headers - not needed now.
index caebb48..d4ed832 100644 (file)
@@ -1,3 +1,14 @@
+2007-01-30  Simon Hausmann  <hausmann@kde.org>
+
+        Reviewed by Zack.
+
+        Turned JavaScriptCore from a separate library into an includable
+        project, to combine it all into libWebKitQt.
+
+        * JavaScriptCore.pri: Added.
+        * JavaScriptCore.pro: Removed.
+        * kjs/testkjs.pro:
+
 2007-01-29  Geoffrey Garen  <ggaren@apple.com>
 
         Reviewed by Maciej Stachowiak.
similarity index 95%
rename from JavaScriptCore/JavaScriptCore.pro
rename to JavaScriptCore/JavaScriptCore.pri
index 3bc64c8..2a7d6fa 100644 (file)
@@ -1,17 +1,10 @@
 # JavaScriptCore - Qt4 build info
 VPATH += $$PWD
-TEMPLATE = lib
-TARGET = JavaScriptCore
-DESTDIR = ../lib
-OBJECTS_DIR = tmp
+
 INCLUDEPATH += tmp
 INCLUDEPATH += $$PWD $$PWD/kjs $$PWD/bindings $$PWD/bindings/c $$PWD/bindings/qt $$PWD/wtf
 DEFINES -= KJS_IDENTIFIER_HIDE_GLOBALS 
 DEFINES += BUILDING_QT__
-QT -= gui
-
-isEmpty(OUTPUT_DIR):OUTPUT_DIR=$$PWD
-include($$OUTPUT_DIR/config.pri)
 
 include(pcre/pcre.pri)
 
index e0b1ffd..d441dd1 100644 (file)
@@ -6,9 +6,10 @@ QT -= gui
 DEFINES -= KJS_IDENTIFIER_HIDE_GLOBALS 
 DEFINES += BUILDING_QT__
 INCLUDEPATH += $$PWD/.. $$PWD $$PWD/../bindings $$PWD/../bindings/c $$PWD/../wtf
-LIBS += -L$$OUTPUT_DIR/lib -lJavaScriptCore
+LIBS += -L$$OUTPUT_DIR/lib -lWebKitQt
 QMAKE_RPATHDIR += $$OUTPUT_DIR/lib
 
 isEmpty(OUTPUT_DIR):OUTPUT_DIR=$$PWD/../..
 include($$OUTPUT_DIR/config.pri)
 
+include($$PWD/../JavaScriptCore.pri)
index 181d6a9..2ba0b08 100644 (file)
@@ -1,3 +1,12 @@
+2007-01-30  Simon Hausmann  <hausmann@kde.org>
+
+        Reviewed by Zack.
+
+        Combine libJavaScriptCore into libWebKitQt.
+        Build with ELF visibility if possible.
+
+        * WebCore.pro:
+
 2007-01-30  Zack Rusin  <zack@kde.org>
 
         The method has been removed from the header
index 4e48d47..aaaaa3d 100644 (file)
@@ -13,6 +13,9 @@ include($$OUTPUT_DIR/config.pri)
 CONFIG -= warn_on
 #QMAKE_CXXFLAGS_RELEASE += -Wall -Wno-undef -Wno-unused-parameter
 
+contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
+
 # PRE-BUILD: make the required config.h file
 #config_h.target = config.h
 #config_h.commands = cp config.h.qmake config.h
@@ -20,6 +23,8 @@ CONFIG -= warn_on
 #QMAKE_EXTRA_TARGETS += config_h
 #PRE_TARGETDEPS += config.h
 
+DEFINES += BUILD_WEBKIT
+
 # Optional components (look for defs in config.h and included files!)
 DEFINES += XPATH_SUPPORT=1
 DEFINES += XSLT_SUPPORT=1
@@ -28,8 +33,10 @@ DEFINES += SVG_SUPPORT=1
 
 DEFINES += WTF_CHANGES=1 BUILDING_QT__=1
 
-INCLUDEPATH += $$PWD/../JavaScriptCore
-LIBS += -L$$OUTPUT_DIR/lib -lJavaScriptCore
+include($$PWD/../JavaScriptCore/JavaScriptCore.pri)
+
+#INCLUDEPATH += $$PWD/../JavaScriptCore
+#LIBS += -L$$OUTPUT_DIR/lib -lJavaScriptCore
 
 macx {
     INCLUDEPATH += /opt/local/include /opt/local/include/libxml2
@@ -1080,12 +1087,12 @@ idl.clean = tmp/JS${QMAKE_FILE_BASE}.h ${QMAKE_FILE_OUT}
 QMAKE_EXTRA_COMPILERS += idl
 
 # GENERATOR 2-A: LUT creator
-lut.output = tmp/${QMAKE_FILE_BASE}.lut.h
-lut.commands = perl $$PWD/../JavaScriptCore/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
-lut.depend = ${QMAKE_FILE_NAME}
-lut.input = LUT_FILES
-lut.CONFIG += no_link
-QMAKE_EXTRA_COMPILERS += lut
+#lut.output = tmp/${QMAKE_FILE_BASE}.lut.h
+#lut.commands = perl $$PWD/../JavaScriptCore/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
+#lut.depend = ${QMAKE_FILE_NAME}
+#lut.input = LUT_FILES
+#lut.CONFIG += no_link
+#QMAKE_EXTRA_COMPILERS += lut
 
 # GENERATOR 2-B: like JavaScriptCore/LUT Generator, but rename output
 luttable.output = tmp/${QMAKE_FILE_BASE}Table.cpp
index 3360306..42dba45 100644 (file)
@@ -6,7 +6,7 @@ DEFINES += BUILDING_QT__=1
 
 isEmpty(OUTPUT_DIR):OUTPUT_DIR=$$PWD/WebKitBuild/Release
 
-LIBS += -L$$OUTPUT_DIR/lib -lWebKitQt -lJavaScriptCore
+LIBS += -L$$OUTPUT_DIR/lib -lWebKitQt
 
 macx {
        INCLUDEPATH += /opt/local/include /opt/local/include/libxml2
index ad7f9a1..605cccc 100644 (file)
@@ -1,7 +1,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
 SUBDIRS = \
-        JavaScriptCore \
         WebCore \
         WebKitQt/QtLauncher \
         WebKitTools/DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.pro \
index 07ac0d2..0257d93 100644 (file)
@@ -26,6 +26,8 @@
 
 #include <qscrollarea.h>
 
+#include <qwebkitglobal.h>
+
 class QWebFramePrivate;
 class QWebPage;
 
@@ -34,7 +36,7 @@ namespace WebCore {
 }
 class QWebFrameData;
 
-class QWebFrame : public QScrollArea
+class QWEBKIT_EXPORT QWebFrame : public QScrollArea
 {
     Q_OBJECT
 protected:
diff --git a/WebKitQt/Api/qwebkitglobal.h b/WebKitQt/Api/qwebkitglobal.h
new file mode 100644 (file)
index 0000000..2d27d1b
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+    Copyright (C) 2007 Trolltech ASA
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+
+    This class provides all functionality needed for loading images, style sheets and html
+    pages from the web. It has a memory cache for these objects.
+*/
+#ifndef QWEBKITGLOBAL_H
+#define QWEBKITGLOBAL_H
+
+#include <qglobal.h>
+
+#if defined(Q_OS_WIN)
+#    if defined(BUILD_WEBKIT)
+#        define QWEBKIT_EXPORT Q_DECL_EXPORT
+#    else
+#        define QWEBKIT_EXPORT Q_DECL_IMPORT
+#    endif
+#endif
+
+#if !defined(QWEBKIT_EXPORT)
+#define QWEBKIT_EXPORT Q_DECL_EXPORT
+#endif
+
+#endif // QWEBKITGLOBAL_H
index ae8708b..089a949 100644 (file)
@@ -25,6 +25,7 @@
 #define QWEBPAGE_H
 
 #include "qwebpagehistory.h"
+#include <qwebkitglobal.h>
 
 #include <qwidget.h>
 class QWebFrame;
@@ -39,7 +40,7 @@ namespace WebCore {
     class FrameLoadRequest;
 }
 
-class QWebPage : public QWidget
+class QWEBKIT_EXPORT QWebPage : public QWidget
 {
     Q_OBJECT
 public:
index 0d722ef..8b1f44e 100644 (file)
@@ -28,6 +28,8 @@
 #include <QDateTime>
 #include <QSharedData>
 
+#include <qwebkitglobal.h>
+
 #if QT_VERSION < 0x040300
 template <class T> class QExplicitlySharedDataPointer
 {
@@ -91,7 +93,7 @@ Q_INLINE_TEMPLATE QExplicitlySharedDataPointer<T>::QExplicitlySharedDataPointer(
 class QWebPage;
 
 class QWebHistoryItemPrivate;
-class QWebHistoryItem
+class QWEBKIT_EXPORT QWebHistoryItem
 {
 public:
     ~QWebHistoryItem();
@@ -115,7 +117,7 @@ private:
 };
 
 class QWebPageHistoryPrivate;
-class QWebPageHistory
+class QWEBKIT_EXPORT QWebPageHistory
 {
 public:
     QWebPageHistory(const QWebPageHistory &other);
index 5732261..1cfe341 100644 (file)
@@ -1,3 +1,15 @@
+2007-01-30  Simon Hausmann  <hausmann@kde.org>
+
+        Reviewed by Zack.
+
+        Added import/export macros needed for build with ELF visibility and
+        for a build on Windows (in the future).
+
+        * Api/qwebframe.h:
+        * Api/qwebkitglobal.h: Added.
+        * Api/qwebpage.h:
+        * Api/qwebpagehistory.h:
+
 2007-01-30  Zack Rusin  <zack@kde.org>
 
         Change the signature of handleKeyPress