diff --git a/build.sh b/build.sh index ae2c9b3c..49e8234e 100755 --- a/build.sh +++ b/build.sh @@ -2,9 +2,6 @@ set -e -QT_CFG='' - -BUILD_CONFIRM=0 COMPILE_JOBS=1 MAKEFLAGS_JOBS='' @@ -34,16 +31,9 @@ if [[ "$COMPILE_JOBS" -gt 8 ]]; then fi SILENT= -QT_CFG= -QTCORE=bundled -QTWEBKIT=bundled until [[ -z "$1" ]]; do case $1 in - (--qt-config) - shift - QT_CFG+=" $1" - shift;; (--qmake-args) shift QMAKE_ARGS=$1 @@ -52,53 +42,18 @@ until [[ -z "$1" ]]; do shift COMPILE_JOBS=$1 shift;; - (--confirm) - BUILD_CONFIRM=1 - shift;; (--silent) SILENT=silent shift;; - (--qt=system) - QTCORE=system - shift;; - (--qtwebkit=system) - QTCORE=system - QTWEBKIT=system - shift;; - - (--*=system | --*=bundled) - QT_CFG+=" $1" - shift;; "--help") cat <&2 - exit 1 -fi - -if [[ "$BUILD_CONFIRM" -eq 0 ]]; then -cat << EOF ----------------------------------------- - WARNING ----------------------------------------- - -Building PhantomJS from source takes a very long time, anywhere from 30 -minutes to several hours (depending on the machine configuration). -We recommend you use the premade binary packages on supported operating -systems. - -For details, please go the the web site: http://phantomjs.org/download.html. - -EOF - - echo "Do you want to continue (y/n)?" - read continue - if [[ "$continue" != "y" ]]; then - exit 1 - fi - echo - echo -fi - UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -MAKE_S="" -if [[ "$SILENT" == "silent" ]]; then - MAKE_S="-s" - QT_CFG+=" --silent" -fi - echo "System architecture... ($UNAME_SYSTEM $UNAME_RELEASE $UNAME_MACHINE)" -echo -if [[ "$QTCORE" == "bundled" ]]; then - export QMAKE=$PWD/src/qt/qtbase/bin/qmake - ( cd src/qt && ./preconfig.sh $QTDEPLIBS $QT_CFG ) - - echo - echo "Building Qt..." - echo - ( cd src/qt/qtbase && make -j$COMPILE_JOBS $MAKE_S ) -else - export QMAKE=qmake - # some Linux distros (e.g. Debian) allow you to parallel-install - # Qt4 and Qt5, using this environment variable to declare which - # one you want - export QT_SELECT=qt5 -fi - -if [[ "$QTWEBKIT" == "bundled" ]]; then - echo - echo "Building QtWebkit..." - echo - if grep -qEe '-qt-sql-sqlite\>' src/qt/qtbase/config.status; then - export SQLITE3SRCDIR=$PWD/src/qt/qtbase/src/3rdparty/sqlite/ - fi - - # By default, suppress video and audio-related features. - # They can be reactivated with e.g. - # --qmake-args WEBKIT_CONFIG+='use_gstreamer video' - WEBKIT_DISABLE= - WEBKIT_DISABLE+=' use_glib' - WEBKIT_DISABLE+=' use_gstreamer' - WEBKIT_DISABLE+=' use_gstreamer010' - WEBKIT_DISABLE+=' use_native_fullscreen_video' - WEBKIT_DISABLE+=' legacy_web_audio' - WEBKIT_DISABLE+=' web_audio' - WEBKIT_DISABLE+=' video' - WEBKIT_DISABLE+=' gamepad' - - ( cd src/qt/qtwebkit && - $QMAKE "WEBKIT_CONFIG -= $WEBKIT_DISABLE" $QMAKE_ARGS && - make -j$COMPILE_JOBS $MAKE_S ) -fi +export QMAKE=qmake +# some Linux distros (e.g. Debian) allow you to parallel-install +# Qt4 and Qt5, using this environment variable to declare which +# one you want +export QT_SELECT=qt5 echo echo "Building main PhantomJS application..." diff --git a/phantomjs.pro b/phantomjs.pro index 24663df3..8944c2ae 100644 --- a/phantomjs.pro +++ b/phantomjs.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs CONFIG += ordered -SUBDIRS += src/phantomjs.pro +SUBDIRS += src/qphantom/phantom.pro src/phantomjs.pro diff --git a/src/main.cpp b/src/main.cpp index 6e3f9ab4..496c69d2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -40,6 +40,9 @@ #include #include +#include +Q_IMPORT_PLUGIN(PhantomIntegrationPlugin) + int main(int argc, char** argv) { char **new_argv = (char**) malloc(sizeof(char*) * (3+argc)); diff --git a/src/phantomjs.pro b/src/phantomjs.pro index 78ab730f..ded67867 100644 --- a/src/phantomjs.pro +++ b/src/phantomjs.pro @@ -8,15 +8,14 @@ TARGET = phantomjs QT += network webkitwidgets printsupport CONFIG += console +QT += platformsupport-private +LIBS += ../bin/libqphantom.a + DESTDIR = ../bin RESOURCES = phantomjs.qrc \ ghostdriver/ghostdriver.qrc -!winrt:!win32: { - QTPLUGIN += qphantom -} - HEADERS += \ phantom.h \ callback.h \ diff --git a/src/qphantom/phantom.pro b/src/qphantom/phantom.pro index c27dc6c0..0dc9513b 100644 --- a/src/qphantom/phantom.pro +++ b/src/qphantom/phantom.pro @@ -2,18 +2,15 @@ TEMPLATE = lib TARGET = qphantom DESTDIR = ../../bin -CONFIG += plugin -CONFIG += qpa/genericunixfontdatabase +CONFIG += plugin static PLUGIN_TYPE = platforms PLUGIN_CLASS_NAME = PhantomIntegrationPlugin -QT += core-private gui-private platformsupport-private +QT += platformsupport-private -SOURCES = main.cpp \ +SOURCES += main.cpp \ phantomintegration.cpp \ phantombackingstore.cpp -HEADERS = phantomintegration.h \ +HEADERS += phantomintegration.h \ phantombackingstore.h - -OTHER_FILES += phantom.json