[Kde-bindings] Fw: Qyoto Smokegen SmokeQt Windows Build Help

Dimitar Dobrev dpldobrev at yahoo.com
Sun Jul 22 08:06:37 UTC 2012


Hi Daniel,
Nice to hear it worked for you. No idea about that font, though. There was a problem with Cyrillic characters quite some time ago but it has been long fixed: a "list(APPEND qtdefines "QT_NO_CAST_FROM_ASCII")" had to be added to smokeqt/qtcore/QtGuess.txt and from then on it ran fine.

About Mono CXXI presentation, I assume you're talking about this year's May? I haven't seen such, could you please send me a link?



________________________________
 From: Daniel <twinjudgewarrior at hotmail.com>
To: 'Dimitar Dobrev' <dpldobrev at yahoo.com>; 'KDE bindings for other programming languages' <kde-bindings at kde.org> 
Sent: Sunday, July 22, 2012 4:28 AM
Subject: RE: [Kde-bindings] Fw:  Qyoto Smokegen SmokeQt Windows Build Help
 

Hi Dimitar,

I was able to debug this code to discover that apparently, even after ‘sudo make install’, that a library could not be found, so I gave it a break from it for a couple days just a bit annoyed from the constant tiny problems … 
 
Normally I would just assume something went wrong with the build and start over but this time I just did the install of assemblygen again and it works :D. Nice simple test code btw. I do however get some pictograph font instead of the word Test in Linux but that is minor. Code compiled on windows works and Linux and vice versa. How I have been expecting it to behave.

After watching the Cxxi video presentation, made in May, it seems that they are expecting to have Qt bindings ready by August. It looks like there are a couple of forks which are not being updated but there does seem to be activity.

Thanks for your help.
 
From:kde-bindings-bounces at kde.org [mailto:kde-bindings-bounces at kde.org] On Behalf Of Dimitar Dobrev
Sent: Friday, 20 July 2012 6:46 PM
To: KDE bindings
Subject: [Kde-bindings] Fw: Qyoto Smokegen SmokeQt Windows Build Help
 
There you are: http://pastebin.com/di85zA53. It works on Windows for sure and should on Linux; if not, please report what the problem is.
 
Yes, I am aware of Mono CXXI. It is definitely a better solution for wrapping C++ in C# but unfortunately it is, by the admission of the Mono people themselves, quite unfinished yet. There hasn't been any activity in their repo (the same one you've sent) for the past 7 months. As far as I know, the guy that worked on it during the Google Summer of Code, Alex Corrado, could not complete the whole thing but what was done was so good they hired him at Xamarin (the Mono people's company) anyway. He now works only on their products, I believe, and as a consequence CXXI remains as it was. While there is a more active fork here - https://github.com/kthompson/cxxi - I don't see it near completion either.
 

________________________________

From:Daniel <twinjudgewarrior at hotmail.com>
To: 'Dimitar Dobrev' <dpldobrev at yahoo.com>; 'KDE bindings for other programming languages' <kde-bindings at kde.org> 
Sent: Friday, July 20, 2012 7:30 AM
Subject: RE: [Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help
 
No worries Dimitar J.

I attempted to build on Linux today.. had to remove Dbus references as per previous emails. The build was a success and much easier. But if I compile some simple code it only works on windows.. could you provide me with a sample QMainWindow or QWidget code that works on both platforms? Windows + Linux. I used this code which works for the old Qyoto on KDE bindings which I built on linux but doesn’t work on Wndows..
 
using System;
using Qyoto;
 
/**
* ZetCode Qyoto C# tutorial
*
* This program displays a tooltip.
*
* @author Jan Bodnar website zetcode.com
*/
 
public class QyotoApp : QWidget {
 
    public QyotoApp() {
 
        // Not supported anymore??
       //SetWindowTitle("Tooltip");
 
        ToolTip = "This is QWidget";    
        Resize(250, 150);
        Move(300, 300);
        Show();
    }
 
    public static int Main(String[] args) {
        new QApplication(args);
        new QyotoApp();
        return QApplication.Exec();
    }
}

Just to add. Are you aware of this project. One of the devs for mono is helping with this and mentioned Qt as a prime candidate for its use. It is a Google Summer Code project.
 
https://github.com/mono/cxxi
http://www.infoq.com/presentations/Cxxi
http://tirania.org/blog/archive/2011/Dec-19.html
 
Regards


 
From:kde-bindings-bounces at kde.org [mailto:kde-bindings-bounces at kde.org] On Behalf Of Dimitar Dobrev
Sent: Thursday, 19 July 2012 6:28 PM
To: KDE bindings for other programming languages
Subject: Re: [Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help
 
Hi, Daniel,
 
Sorry about my remark, I was just trying to figure out what was happening; I use a single drive and had no idea that different drives could pose a problem.
Anyway, I'm glad it worked out for you, and, most of all, congratulation about your brilliant instructions! I'll use them as the reference for anyone else willing to build Qyoto.
 
If you need further assistance, I'd be happy to help.
 
Best regards,
Dimitar Dobrev
 

________________________________

From:Daniel <twinjudgewarrior at hotmail.com>
To: 'KDE bindings for other programming languages' <kde-bindings at kde.org> 
Sent: Thursday, July 19, 2012 8:57 AM
Subject: Re: [Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help
 
Dimitar, I have followed and understood step 1 correctly. 

However, I had to completely reshuffle my directories and setup I used as my build outputs and ensured everything was on the same drive and added a PATH to the built binaries like both you and I suggested rather than copying the smoke*.dll. For some reason even when I copied the files the build failed at smokeqtgui.dll… When there was a PATH to the built binaries using cross drive directories, e.g. C and I drive, the build still failed.. (prior to my drive reshuffle). Failure even occurred after a direct copy of the files to the correct build directory. Even after fresh build attempts.. Due to the fickle nature of Windows I have included the steps that I had to take to complete the build.

Thanks for your help Dimitar… got there in the end and it was just fickle reasons why it did not build..

Daniel Kemp

Build Steps used:
1.      !!! Ensure all code checkouts, Qt tools, Qt SDK, CMake, Qt MinGW, Mono and build output directories, as will be set in CMake gui, are on the same drive: e.g. C: (I used my I: drive)
2.      Install QtSDK;
3.      Install CMake;
4.      Make sure you have Git, Mono;
5.      ENSURE ALL OF YOUR PATH VARIABLEs ARE SETUP
a.      Ensure that Qt qmake bin is on the PATH and corresponds to the Qt <version> you will select for qmake in the CMake gui.
b.      Ensure that Qt mingw bin is also on the PATH.
c.       Beforebuilding anything decide where you want the install prefix path to be e.g. C:\Program Files (x86)\Qyoto and add this to the PATH with bin dir. ( I used I:\Qyoto\bin )
d.      Beforebuilding anything and after ensuring your paths are correct you can then open an Administrator command console (as a console window does not automatically renew the Path setting if you make changes in Windows).
e.      Ensure that the order for the Variables is GIT QTMINGW CMAKE QT MONO QYOTO: Being that I experienced a conflict between CMAKE and QTMINGW. 

NOTING THAT THESE INSTRUCTIONS SHOULD ELIMINATE THE NEED TO COPY ANY LIBRARIES OR MOVE ANY FILES

ALSO AVOID PROGRAM FILES AS A DESTINATION AS IT NEEDS ADMIN PRIVILEGE’S AND SEEMS TO CREATE FURTHER ISSUES

These instructions may seem more verbose than others but in reality these tools should be on your windows path anyway.
 
f.        Example path variables. 
Variable Name Example Value Example 
QYOTO (smokegen, smokeqt, assembleygen install path) I:\Qyoto\bin 
 
(AVOID C:\Program Files ) 
QT I:\QtSDK\Desktop\Qt\<version>\mingw\bin 
 
(ENSURE CMAKE GUI Points to same <version>) 
QTMINGW I:\QtSDK\mingw\bin 
CMAKE I:\CMake2.8\bin 
MONO I:\Mono-2.10.8\bin 
(Make sure all of the above are on the same Drive)   
    
GIT C:\Program Files (x86)\Git\cmd 
    
DEVTOOLS (creating this variable makes it easier to manage) %GIT%;%QTMINGW%;%CMAKE%;%QT%;%MONO%;%QYOTO%  
 
(The order matters or you will have to copy files to another directory as per the original instructions) 
    
Path ( this will vary on every machine) add
;%DEVTOOLS%; to the ‘Path’ variable %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\VisualSVN Server\bin;%JAVA_HOME%\bin;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files (x86)\VisualSVN\bin;C:\Program Files\TortoiseSVN\bin;% DEVTOOLS%;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\ 
 
IF YOU HAVE the normal distribution of MINGW installed REMOVE IT FROM THE PATH during these QT builds 
 
6.      Check out smokegen:                                                                                                  git clone git://anongit.kde.org/smokegen
7.      Check out smokeqt:                                                                                                    git clone git://anongit.kde.org/smokeqt
8.      Check out assemblygen: @ http://gitorious.org/assemblygen/assemblygen/;         git clone git://gitorious.org/assemblygen/assemblygen.git
 
for each in smokegen, smokeqt, assemblygen (in this order):
 
1.      Run cmake-gui - select directories with checked out git source and the desired dir for output binaries; 
a.      use MinGW makefiles and select ‘specify native compilers’ 
b.      specify X:\QtSDK\mingw\bin\gcc.exe as the C compiler: X being your install path
c.       specify X:\QtSDK\mingw\bin\g++.exe as the C++ compiler;
2.      Fill in the CMAKE_BUILD_TYPE: "Release" or "Debug"; leaving it empty produces some strange half-debug version;
3.      Fill in the CMAKE_INSTALL_PREFIX: 
a.      For this to work as per these instructions you must use the same path for each: smokegen, smokeqt, assemblygen: E.g. I:\Qyoto SAME as Qyoto Path in step 5f; OR
b.      you must then also create Path variables for each; smokegen, smokeqt, assemblygen and make them point to these paths bin dir.
4.      Press Configure - when it complains about QT_QMAKE_EXECUTABLE, set it to the location of qmake.exe ensuring the SAME VERSION used in the Path variable; e.g. I:\QtSDK\Desktop\Qt\<version>\mingw\bin\qmake 
5.      Keep pressing Configure until all variables highlighted red are dealt with.
6.      Press Generate
7.      On the command line, cd to the desired dir for output binaries through the command line and run "mingw32-make.exe install".
 
Notes about assemblygen:
 
1.      If the build hangs during qtcore compilation at 6%. Ctrl C quit as you may have set up the CMake variables incorrectly. In the Cmake gui clear the cache and try again for assemblygen as per the instructions above. Noting issues with GAC_DIR and SMOKE_INCLUDE_DIR: In my limited experience these need to remain empty or NOT-FOUND.
2.      If you have problems with assemblygen/tools/uics/ui4.h, open it, find the line "#define QDESIGNER_UILIB_EXPORTQDESIGNER_UILIB_IMPORT" at the start and change it to "#define QDESIGNER_UILIB_EXPORTQDESIGNER_UILIB_EXTERN".
 
Good luck.
 
 
 
From:Dimitar Dobrev [mailto:dpldobrev at yahoo.com] 
Sent: Thursday, 19 July 2012 12:43 AM
To: Daniel; KDE bindings
Subject: Re: [Kde-bindings] Fw: Qyoto Smokegen SmokeQt Windows Build Help
 
I think there are some files you haven't copied. I'm going to explain point 1. a bit more thoroughly. Let's say that your binary dir for smokeqt is C:\smokeqt. In its bin/ subdir you have all smoke libs - smokebase.dll, smokeqtcore.dll, smokeqtgui.dll, etc. - this is what smoke*.dll from the instructions means. You need to grab all of these, and copy them to your binary dir for assemblygen, that is, they should neighbour assemblygen.exe. The other way would be for C:\smokeqt\bin to be in your PATH.
 
Regards,
Dimitar Dobrev
 

________________________________

From:Daniel <twinjudgewarrior at hotmail.com>
To: 'Dimitar Dobrev' <dpldobrev at yahoo.com>; 'KDE bindings for other programming languages' <kde-bindings at kde.org> 
Sent: Wednesday, July 18, 2012 5:20 PM
Subject: RE: [Kde-bindings] Fw: Qyoto Smokegen SmokeQt Windows Build Help
 
Thanks again Dimitar,

I misread the instructions for point one and did not put in the ‘bin’ directory but rather put them in the binary output directory as marked by the CMAKE_INSTALL_PREFIX. Noting that adding the Qyoto bin to the PATH has the same effect.

However, the build still fails further down the track. I hope this time for sanity sake that it is not point 2.. lol
 
 
In the meantime I appreciate your pointers and help and am learning as much as I can about these new tools.

Best,
 
Daniel Kemp
 
From:kde-bindings-bounces at kde.org[mailto:kde-bindings-bounces at kde.org]On Behalf Of Dimitar Dobrev
Sent: Wednesday, 18 July 2012 10:54 PM
To: KDE bindings
Subject: [Kde-bindings] Fw: Qyoto Smokegen SmokeQt Windows Build Help
 
Hi, Daniel,
 
Please try point 1. from "Notes about assemblygen" in the instructions.
 
Regards
 

________________________________

From:Daniel <twinjudgewarrior at hotmail.com>
To: 'Dimitar Dobrev' <dpldobrev at yahoo.com>; 'KDE bindings for other programming languages' <kde-bindings at kde.org> 
Sent: Wednesday, July 18, 2012 3:20 PM
Subject: RE: [Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help
 
Hi Dimitar,
 
Thanks for the quick reply. I have been able to get past the problem I was experiencing with the smokeqt libraries; thank you. Your simpler instructions enabled me to find what was wrong. It is a pity I missed them when searching the archives.. I am using Gmane to read and search them.. I don’t know if there are any better alternatives. To fix my original problems I had to manually port the Qtcore4 dll, mingwm10 dll and other dependencies to the Smokgen install at C:\Program Files (86). The difficulties may have something to do with the fact that I install all of my ‘tools’ on I:\.. separate drive from C:\Program Files (86). I also needed admin privilege’s to finish the install. (standard and implied)

However, no party yet as I am now getting an issue with assemblygen. Assuming I have the first two libraries built correctly..

Debugging with VS2010 tells me the same thing. Assemblygen.exe could not find the dll… it is in the BUILD_DIR/bin path… along with the exe.

Any ideas?
 
Regards, 

Daniel Kemp
From:kde-bindings-bounces at kde.org[mailto:kde-bindings-bounces at kde.org]On Behalf Of Dimitar Dobrev
Sent: Wednesday, 18 July 2012 6:31 PM
To: KDE bindings for other programming languages
Subject: Re: [Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help
 
Hi, Daniel,
 
Could you try these instrucations: http://lists.kde.org/?l=kde-bindings&m=133865974413799&w=2 ? Just make sure to skip point 7 (the commenting out of mapPointer).
 
Regards,
Dimitar Dobrev
 

________________________________

From:Daniel <twinjudgewarrior at hotmail.com>
To: Kde-bindings at kde.org
Sent: Wednesday, July 18, 2012 10:41 AM
Subject: [Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help
 
Hi,

I am interested in building Qyoto on Windows. I have been following the instructions through which I have learnt that the Qyoto repo at KDE is no longer supported.. I did however manage to build this older version in linux; Ubuntu, after mush now wasted time. I am quite new to many of the concepts involved with make/cmake as I most of my development has been with Java for the web using IDE’s like eclipse. I managed to make a few sample widgets and windows using my linux of the unsupported version of Qyoto build to find out they do not work on Windows. So I dug deeper…

Anyhow, after following the instructions based on this email:

From: Steven Boswell II <ulatekh <at> yahoo.com>
Subject: Re: Building Qyoto on Windows
Newsgroups: gmane.comp.kde.devel.bindings
Date: 2012-06-02 17:56:13 GMT (6 weeks, 3 days, 9 hours and 15 minutes ago)

I can successfully build smokegen but during the build for smokeqt under the Qt Creator it fails almost instantly with this output: 

17:27:10: Running build steps for project SMOKEQT4...
17:27:11: Starting: "I:\QtSDK\mingw\bin\mingw32-make.exe" 
[ 1%] Generating smokedata.cpp, x_1.cpp, x_2.cpp, x_3.cpp, x_4.cpp, x_5.cpp, x_6.cpp, x_7.cpp, x_8.cpp, x_9.cpp, x_10.cpp, x_11.cpp, x_12.cpp, x_13.cpp, x_14.cpp, x_15.cpp, x_16.cpp, x_17.cpp, x_18.cpp, x_19.cpp, x_20.cpp
mingw32-make.exe[2]: *** [qtcore/smokedata.cpp] Error -1073741515
mingw32-make.exe[1]: *** [qtcore/CMakeFiles/smokeqtcore.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
17:27:11: The process "I:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project SMOKEQT4 (target: Desktop)
When executing build step 'Make'
 
I am wanting to try Qyoto for a new project I wish to work on but keep hitting brickwalls. Given the nature of Qt and Mono paired together I will want to ensure that this product works properly on windows.

Any help building and assessing this product will be highly appreciated.

Regards,
Daniel Kemp 

_______________________________________________
Kde-bindings mailing list
Kde-bindings at kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings
 
 
 

_______________________________________________
Kde-bindings mailing list
Kde-bindings at kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20120722/291e92e9/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 11372 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20120722/291e92e9/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 58622 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20120722/291e92e9/attachment-0003.png>


More information about the Kde-bindings mailing list