-
-
Save theshadowx/438297ac465874a5e226 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
set -e | |
# Install NaCl | |
wget http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip | |
unzip nacl_sdk.zip | |
rm nacl_sdk.zip | |
nacl_sdk/naclsdk list | |
# get the latest stable bender | |
nacl_sdk/naclsdk install pepper_47 | |
NACL_SDK_ROOT=$(pwd)/$(find ./nacl_sdk -maxdepth 1 -type d -name "pepper*") | |
echo "export NACL_SDK_ROOT=$NACL_SDK_ROOT">> ~/.bashrc | |
source ~/.bashrc | |
# Checkout Qt 5.6.0 | |
git clone git://code.qt.io/qt/qt5.git Qt5.6 | |
cd Qt5.6 | |
git checkout 5.6 | |
perl init-repository | |
git checkout 5.6 | |
cd .. | |
cd Qt5.6/qtbase | |
git checkout wip/nacl | |
cd ../qtdeclarative | |
git checkout wip/nacl | |
cd ../qtxmlpatterns | |
git apply ../../qtxmlpatterns.patch | |
cd ../.. | |
mkdir QtNaCl_56 | |
cd QtNaCl_56 | |
../Qt5.6/qtbase/nacl-configure linux_x86_newlib release 64 | |
make module-qtbase -j6 | |
make module-qtdeclarative -j6 | |
make module-qtquickcontrols -j6 | |
#running the example | |
# cd ../Qt5.4.2/qtdeclarative/examples/nacl | |
# mkdir build | |
# cd build | |
# ../../../../../QtNacl_5.4/qtbase/bin/qmake .. | |
# make | |
# ../../../../../QtNacl_5.4/qtbase/bin/nacldeployqt nacl.nexe --run |
diff --git a/tools/tools.pro b/tools/tools.pro | |
index 92bbaca..0040747 100644 | |
--- a/tools/tools.pro | |
+++ b/tools/tools.pro | |
@@ -1,9 +1,11 @@ | |
TEMPLATE = subdirs | |
load(qfeatures) | |
-!android|android_app { | |
- SUBDIRS += xmlpatterns | |
- !contains(QT_DISABLED_FEATURES, xmlschema) { | |
- SUBDIRS += xmlpatternsvalidator | |
+!nacl { | |
+ !android|android_app { | |
+ SUBDIRS += xmlpatterns | |
+ !contains(QT_DISABLED_FEATURES, xmlschema) { | |
+ SUBDIRS += xmlpatternsvalidator | |
+ } | |
} | |
} | |
diff --git a/tools/xmlpatterns/xmlpatterns.pro b/tools/xmlpatterns/xmlpatterns.pro | |
index 0f1ee4f..1172883 100644 | |
--- a/tools/xmlpatterns/xmlpatterns.pro | |
+++ b/tools/xmlpatterns/xmlpatterns.pro | |
@@ -14,4 +14,4 @@ HEADERS = main.h \ | |
load(qt_tool) | |
# with c++11 / __STRICT_ANSI__ mingw.org stdio.h doesn't declare e.g. _fileno | |
-win32-g++*: QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x | |
\ No newline at end of file | |
+win32-g++*: QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x | |
diff --git a/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro b/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro | |
index af9469f..21b1b18 100644 | |
--- a/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro | |
+++ b/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro | |
@@ -1,6 +1,8 @@ | |
-QT = core xmlpatterns | |
+!nacl { | |
+ QT = core xmlpatterns | |
-SOURCES = main.cpp | |
-HEADERS = main.h | |
+ SOURCES = main.cpp | |
+ HEADERS = main.h | |
-load(qt_tool) | |
+ load(qt_tool) | |
+} |
Hi, thank you for clarification of the main function. I read the your previous description:
@bgrasic here is how the main.cpp should look like
#include
#include
#include "analogclock.h"
AnalogClock *clockA = 0;
// App-provided init and exit functions:
void app_init(int argc, char **argv)
{
clockA = new AnalogClock;
clockA->show();
}
void app_exit()
{
delete clockA;
}
// Register functions with Qt. The type of register function
// selects the QApplicaiton type.
Q_GUI_MAIN(app_init, app_exit);
and inserted some changes in mine project in such way
#include "service.h"
//#include <QApplication>
//#include <QObject>
#include <QtCore>
#include <QtGui>
Service *w = 0;
void app_init(int argc, char **argv)
//int app_init(int argc, char *argv[])
{
//QApplication a(argc, argv);
//Service w;
w = new Service;
//w.show();
w->show();
//return a.exec();
}
void app_exit()
{
delete w;
}
Q_GUI_MAIN(app_init, app_exit);
Then, finaly project has been compiled. Here is the content of buid folder:
After I used run command like this:
sudo docker run --rm -it -p 8000:8000 -v /home/komche/RD_stage:/home/komche/RD_stage theshadowx/qt_nacl:pepper47_qt56 bash -c "cd /home/komche/RD_stage/build && /opt/QtNaCl_56/qtbase/bin/nacldeployqt RD-Artem.nexe --run"
Using Chrome (version 56.0.2924.87 (64-bit)) I linked to http://172.17.0.1:8000/, but unfortunately I saw only white screen with frame and the name of the project((
So do I, and also was reported by some people here. I couldn't debug it as the debug option works just for Mac OS.
I think it's better to contact the person maintaining nacl-wip branch in Qt --> https://github.com/msorvig
Thank you very much for your support. I appreciate that.
Ok, I will try to contact with him, but Have you already contacted with him?
Yes, but not for this issue.
https://github.com/msorvig/qt5-qtbase-nacl/issues
The nacl-wip branch in Qt hasn't been updated since last year.
Hi Ali!
Did you read this article on official Google web-site:
@kom1che thanks for this info.
hope Qt guys will make Qt able to work with WebAssembly.
Here is one more article I've found:
https://qtandeverything.blogspot.com/2017/06/qt-for-web-assembly.html?showComment=1497088985199
Thanks, that's great !!!
@kom1che here is porting webassembly to qt https://github.com/msorvig/qt-webassembly-examples
the main function should be modified.
Have a look at :
https://github.com/msorvig/qt-nacl-manualtests/tree/dev/window_widgets