Difference between revisions of "Isis-project"

From WebOS Internals
Jump to: navigation, search
Line 25: Line 25:
  
 
==QT4==
 
==QT4==
 +
 +
Build Qt4
 +
 +
Go to workspace directory $ISIS_PROJECT and clone the qt4 git repo. Next steps are to configure and built qt4.
 +
 +
<pre>
 +
cd $ISIS_PROJECT_DIR
 +
git clone https://github.com/isis-project/qt4.git
 +
cd qt4
 +
./palm-desktop-configure && make && make install
 +
</pre>
 +
 +
You should see the qt4 binaries, libraries and headers installed in STAGING_DIR directory.
 +
 +
Now we need to use qt4 that is installed in $STAGING_DIR using update-alternatives script
 +
 +
<pre>
 +
sudo update-alternatives --install /usr/bin/qmake qmake $QTDEST/bin/qmake-palm 50
 +
sudo update-alternatives --config qmake
 +
</pre>
 +
 +
==GT 4.8 Stock==
 +
 +
Download stock Qt 4.8 from ftp://ftp.qt.nokia.com/qt/source/ Configure Qt as follows:
 +
 +
<pre>
 +
cd ./qt-everywhere-opensource-src-4.8.0
 +
./configure -qpa -opensource -no-cups -no-nis -no-exceptions -no-accessibility -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-webkit -confirm-license -make 'libs tools' -opengl desktop
 +
make
 +
pushd src/plugins/platforms/xlib
 +
make
 +
popd
 +
sudo make install
 +
sudo cp plugins/platforms/libqxlib.so /usr/local/Trolltech/QtLighthouse-4.8.0/plugins/platforms/
 +
</pre>
 +
 +
Make certain that the installed Qt is in your path. When running an application built with the QPA version of Qt 4.8 the command line option must be added: -platform Xlib
 +
 +
==Webkit==
 +
 +
Go to workspace directory $ISIS_PROJECT and clone the webkit git repo.
 +
 +
<pre>
 +
cd $ISIS_PROJECT_DIR
 +
git clone https://github.com/isis-project/WebKit.git
 +
</pre>
 +
 +
Next step is to build and stage webkit libraries and headers at correct location. Save the raw Makefile from https://gist.github.com/1997887 to $ISIS_PROJECT and issue the below commands.
 +
 +
**Note: Copy the Makefile in workspace root directory $ISIS_PROJECT and execute below commands from there **
 +
 +
<pre>
 +
make webkit
 +
make install-webkit
 +
</pre>
 +
 +
'''Note: Once most of the components are building and are ready, We will make it as a common makefile to build all components'''
 +
 +
==Isis-Test==
 +
 +
This is a test browser which loads the enyo app using qt4 & qtwebkit
 +
 +
<pre>
 +
cd $ISIS_PROJECT_DIR
 +
git clone https://github.com/isis-project/isis-test.git
 +
cd isis-test
 +
qmake && make
 +
./isis-test
 +
</pre>
 +
 +
==Webkit Supplemental==
 +
 +
<pre>
 +
git clone https://www.github.com/isis-project/WebKitSupplemental.git
 +
cd WebKitSupplemental
 +
make configure
 +
make
 +
make stage
 +
</pre>
 +
 +
==npapi_headers==
 +
 +
<pre>
 +
git clone https://github.com/isis-project/npapi-headers.git
 +
mkdir $ISIS_PROJECT_DIR/isis_headers
 +
export STAGING_DIR=$ISIS_PROJECT_DIR/isis_headers
 +
cd npapi_headers
 +
make
 +
</pre>
 +
 +
==Adapter Base==
 +
 +
AdapterBase depends on npapi_headers. So make sure you have compiled npapi_headers as described in the previous section. Here are the steps to build component AdapterBase.
 +
 +
Make sure the variable $STAGING_DIR is set as shown for npapi_headers
 +
 +
<pre>
 +
git clone https://github.com/isis-project/AdapterBase.git
 +
cd AdapterBase
 +
make -f Makefile.Ubuntu
 +
</pre>
 +
 +
make will create object files in the folder debug-x86 in the folder AdapterBase It will refer to npapi_headers from isis_headers if npapi_headers was compiled correctly.
 +
 +
==pbnjson==
 +
 +
There are a few manual steps which will be automated in a final build script.
 +
 +
<pre>
 +
git clone https://www.github.com/isis-project/pbnjson.git
 +
</pre>
 +
 +
pbnjson depends on yajl which needs to be built first:
 +
 +
<pre>
 +
cd pbnjson/src/deps/yajl/
 +
cmake . -DCMAKE_INSTALL_PREFIX=$STAGING_DIR
 +
make
 +
make install
 +
</pre>
 +
 +
Now pbnjson can be built:
 +
 +
<pre>
 +
cd ../../
 +
cmake  . -DCMAKE_INSTALL_PREFIX=$STAGING_DIR
 +
make
 +
make install
 +
</pre>
 +
 +
libraries libpbnjson_c.so, libpbnjson_c_s.a and libpbnjson_cpp.so will be created in folders pjson_c and libpbnjson_cxx folders respectively.
 +
 +
==Browser Server==
 +
 +
<pre>
 +
git clone https://www.github.com/isis-project/BrowserServer.git
 +
cd BrowserServer
 +
git checkout -b ubuntu_local_branch --track origin/ubuntu
 +
cp $ISIS_PROJECT_DIR/staging/bin/moc-palm $ISIS_PROJECT_DIR/staging/bin/moc
 +
make -f Makefile.Ubuntu
 +
make -f Makefile.Ubuntu stage
 +
make -f Makefile.Ubuntu install
 +
$STAGING_DIR/usr/bin/BrowserServer
 +
</pre>

Revision as of 11:42, 21 March 2012

How To Build

Prereqs:

You MUST have Ubuntu 11.04 Desktop 32 bit.

Add the following lines to your .bashrc

export ISIS_PROJECT_DIR="$HOME/isis-project"
export STAGING_DIR="$ISIS_PROJECT_DIR/staging/"
export QTDIR="$ISIS_PROJECT_DIR/qt4"
export QTDEST="$STAGING_DIR"
export INSTALL_DIR="$STAGING_DIR"
export MY_YAJL_INCLUDE_PATH="$ISIS_PROJECT_DIR/pbnjson/src/deps/yajl/yajl-1.0.7/include"
export MY_YAJL_LIB_PATH="$ISIS_PROJECT_DIR/pbnjson/src/deps/yajl/yajl-1.0.7/lib"
export LD_LIBRARY_PATH=$STAGING_DIR/lib:/usr/lib:/usr/local/lib

then type the following line

source ~/.bashrc

QT4

Build Qt4

Go to workspace directory $ISIS_PROJECT and clone the qt4 git repo. Next steps are to configure and built qt4.

cd $ISIS_PROJECT_DIR 
git clone https://github.com/isis-project/qt4.git 
cd qt4 
./palm-desktop-configure && make && make install 

You should see the qt4 binaries, libraries and headers installed in STAGING_DIR directory.

Now we need to use qt4 that is installed in $STAGING_DIR using update-alternatives script

sudo update-alternatives --install /usr/bin/qmake qmake $QTDEST/bin/qmake-palm 50 
sudo update-alternatives --config qmake

GT 4.8 Stock

Download stock Qt 4.8 from ftp://ftp.qt.nokia.com/qt/source/ Configure Qt as follows:

cd ./qt-everywhere-opensource-src-4.8.0
./configure -qpa -opensource -no-cups -no-nis -no-exceptions -no-accessibility -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-webkit -confirm-license -make 'libs tools' -opengl desktop
make
pushd src/plugins/platforms/xlib
make
popd
sudo make install
sudo cp plugins/platforms/libqxlib.so /usr/local/Trolltech/QtLighthouse-4.8.0/plugins/platforms/

Make certain that the installed Qt is in your path. When running an application built with the QPA version of Qt 4.8 the command line option must be added: -platform Xlib

Webkit

Go to workspace directory $ISIS_PROJECT and clone the webkit git repo.

cd $ISIS_PROJECT_DIR 
git clone https://github.com/isis-project/WebKit.git

Next step is to build and stage webkit libraries and headers at correct location. Save the raw Makefile from https://gist.github.com/1997887 to $ISIS_PROJECT and issue the below commands.

    • Note: Copy the Makefile in workspace root directory $ISIS_PROJECT and execute below commands from there **
make webkit
make install-webkit

Note: Once most of the components are building and are ready, We will make it as a common makefile to build all components

Isis-Test

This is a test browser which loads the enyo app using qt4 & qtwebkit

cd $ISIS_PROJECT_DIR 
git clone https://github.com/isis-project/isis-test.git
cd isis-test
qmake && make
./isis-test

Webkit Supplemental

git clone https://www.github.com/isis-project/WebKitSupplemental.git
cd WebKitSupplemental
make configure
make
make stage

npapi_headers

git clone https://github.com/isis-project/npapi-headers.git
mkdir $ISIS_PROJECT_DIR/isis_headers
export STAGING_DIR=$ISIS_PROJECT_DIR/isis_headers
cd npapi_headers
make

Adapter Base

AdapterBase depends on npapi_headers. So make sure you have compiled npapi_headers as described in the previous section. Here are the steps to build component AdapterBase.

Make sure the variable $STAGING_DIR is set as shown for npapi_headers

git clone https://github.com/isis-project/AdapterBase.git
cd AdapterBase
make -f Makefile.Ubuntu

make will create object files in the folder debug-x86 in the folder AdapterBase It will refer to npapi_headers from isis_headers if npapi_headers was compiled correctly.

pbnjson

There are a few manual steps which will be automated in a final build script.

git clone https://www.github.com/isis-project/pbnjson.git

pbnjson depends on yajl which needs to be built first:

cd pbnjson/src/deps/yajl/
cmake . -DCMAKE_INSTALL_PREFIX=$STAGING_DIR
make
make install

Now pbnjson can be built:

cd ../../
cmake  . -DCMAKE_INSTALL_PREFIX=$STAGING_DIR
make
make install

libraries libpbnjson_c.so, libpbnjson_c_s.a and libpbnjson_cpp.so will be created in folders pjson_c and libpbnjson_cxx folders respectively.

Browser Server

git clone https://www.github.com/isis-project/BrowserServer.git
cd BrowserServer
git checkout -b ubuntu_local_branch --track origin/ubuntu
cp $ISIS_PROJECT_DIR/staging/bin/moc-palm $ISIS_PROJECT_DIR/staging/bin/moc
make -f Makefile.Ubuntu
make -f Makefile.Ubuntu stage
make -f Makefile.Ubuntu install
$STAGING_DIR/usr/bin/BrowserServer