[Kde-bindings] Qyoto Smokegen SmokeQt Windows Build Help

Daniel twinjudgewarrior at hotmail.com
Fri Jul 20 04:30:21 UTC 2012


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.       Before building 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.      Before building 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/> 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 < <mailto:twinjudgewarrior at hotmail.com> twinjudgewarrior at hotmail.com>
To: 'Dimitar Dobrev' < <mailto:dpldobrev at yahoo.com> dpldobrev at yahoo.com>; 'KDE bindings for other programming languages' < <mailto:kde-bindings at kde.org> 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

 

Description: cid:image002.png at 01CD659C.C22A0650

 

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:  <mailto:kde-bindings-bounces at kde.org> kde-bindings-bounces at kde.org  <mailto:[mailto: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 < <mailto:twinjudgewarrior at hotmail.com> twinjudgewarrior at hotmail.com>
To: 'Dimitar Dobrev' < <mailto:dpldobrev at yahoo.com> dpldobrev at yahoo.com>; 'KDE bindings for other programming languages' < <mailto:kde-bindings at kde.org> 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..

Description: cid:image003.png at 01CD659C.C22A0650


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:  <mailto:kde-bindings-bounces at kde.org> kde-bindings-bounces at kde.org  <mailto:[mailto: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> 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 < <mailto:twinjudgewarrior at hotmail.com> twinjudgewarrior at hotmail.com>
To:  <mailto:Kde-bindings at kde.org> 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>  <http://yahoo.com/> yahoo.com>
Subject:  <http://news.gmane.org/find-root.php?message_id=%3c1338659773.93650.YahooMailNeo%40web160403.mail.bf1.yahoo.com%3e> Re: Building Qyoto on Windows
Newsgroups:  <http://news.gmane.org/gmane.comp.kde.devel.bindings> 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
 <mailto:Kde-bindings at kde.org> Kde-bindings at kde.org
 <https://mail.kde.org/mailman/listinfo/kde-bindings> 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/20120720/ad142251/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/20120720/ad142251/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/20120720/ad142251/attachment-0003.png>


More information about the Kde-bindings mailing list