From kde-bindings Sun May 13 17:22:08 2012 From: Dimitar Dobrev Date: Sun, 13 May 2012 17:22:08 +0000 To: kde-bindings Subject: Re: [Kde-bindings] Building latest qyoto under Windows and Linux Message-Id: <1336929728.5805.YahooMailNeo () web125905 ! mail ! ne1 ! yahoo ! com> X-MARC-Message: https://marc.info/?l=kde-bindings&m=133692989001861 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============6705246956333024095==" --===============6705246956333024095== Content-Type: multipart/alternative; boundary="-2119685684-1081987111-1336929728=:5805" ---2119685684-1081987111-1336929728=:5805 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Steven, all of your patches, including the uics one, are applied. Great wor= k! It's actually the first time I've been able to build Qyoto without ANY l= ocal changes.=0AI do not maintain Kimono at all, and have no intention to. = With the maintenance of Qyoto and my project to port to it I have my hands = completely full.=0AIt's just System.Action, I believe. However, I do not li= ke adding code that does the same as a built-in library so if the .NET 4 de= pendency is not a problem for you I'd prefer to leave this as is.If it is a= problem, I'd take a patch. And another thing: I'm not sure if it concerns = you but, speaking of deployment, .NET 3.5 is not available by default on mo= st Windows machines as they are still running XP, and .NET 3.5 Client Profi= le, unlike .NET 4 Client Profile, has been screwed up and as a result it's = almost as large as the full .NET 3.5. The other deployment-friendly option = would be .NET 2.0 but first, it's very old and second, I'm not sure if Qyot= o can run on it any more.=0A=0A=0A=0A________________________________=0A Fr= om: Steven Boswell II =0ATo: KDE bindings for other prog= ramming languages =0ASent: Sunday, May 13, 2012 6:31= PM=0ASubject: Re: [Kde-bindings] Building latest qyoto under Windows and L= inux=0A =0A=0AOK, I separated out all my patches. =C2=A0Enclosed is an arch= ive with all of them. =C2=A0They are meant to be applied in order, but if t= hey're not, or one is skipped, they should work, but patch will report "fuz= z", i.e. that the target line numbers had to be adjusted.=0A=0APatch 1 allo= ws MONO_EXECUTABLE to be undefined, i.e. so that the Windows version can be= built with Microsoft's C# compiler.=0A=0APatch 2 modifies output-destinati= ons, so that executables, libraries, and assemblies go to the proper locati= on, and it modifies Windows libraries/DLLs so that they don't have a "lib" = prefix.=0APatch 3 is the patch that detects a missing QtDBus (i.e. under Wi= ndows) but allows building anyway.=0APatch 4 fixes qyoto-phonon to use=C2= =A0DEF_LIST_MARSHALLER instead of=C2=A0DEF_VALUELIST_MARSHALLER. =C2=A0I ho= pe I did it right.=0APatch 5 makes the build look for the .NET 4 compiler u= nder both Windows and Linux.=0APatch 6 adds "SMOKE_INCLUDE_DIR" to a few pl= aces where it's needed.=0APatch 7 builds a native assemblygen under Windows= , so that it can load native DLLs.=0APatch 8 is the hack that adds a refere= nce for the Error class under QX11EmbedContainer and QX11EmbedWidget.=0A=0A= I noticed that Kimono isn't building under Linux. =C2=A0Is the Kimono proje= ct in the assemblygen git-project being used or maintained? =C2=A0I started= to modify the CMakeLists.txt files to build it, but it looks like it needs= more work than that.=0A=0AOne last thing...are there any other dependencie= s on .NET 4, or is it just the System.Action<> prototypes with more than 4 = parameters? =C2=A0If so, can we just add our own "Qyoto.Action<>" prototype= s with the required number of parameters, and use those instead? =C2=A0Woul= d that cause any headaches that I can't think of? =C2=A0(In which case, pat= ch 5 can be ignored.)=0A=0ASteven Boswell=0A=0A=0A_________________________= _______=0A From: Dimitar Dobrev =0ATo: Steven Boswell = II ; KDE bindings for other programming languages =0ASent: Sunday, May 13, 2012 5:54 AM=0ASubject: Re: [Kde-= bindings] Building latest qyoto under Windows and Linux=0A =0A=0AIt seems t= o me you haven't subscribed to the mailing list because I've been doing qui= te a bit of shouting here. :) Please consider joining, this way you'll alwa= ys be up to date with all developments.=0A=0A=0AMost of the errors you repo= rt are my fault, sorry about that:=0A=0A=0A1. QX11EmbedContainer and QX11Em= bedWidget - I removed them because the nested type Error was not generated;= I didn't check that as I was after another bug then so seeing they are not= that often used I just removed them; obviously I forgot to remove the even= ts that use them; I compiled everything then but apparently these events ar= e new to Qt 4.8.0 as my Linux had 4.7.4;=0A=0A2. dmcs - I really don't know= what happened here; I clearly remember searching for "gmcs" in the whole d= ir and replacing it; it seems that I didn't commit these changes;=0A=0A3. D= EF_VALUELIST_MARSHALLER - I replaced this everywhere with DEF_LIST_MARSHALL= ER because of two of the bugs (QPrinterInfo and QModelIndex) I've written a= bout in my recent post called "Qyoto: help needed"; but I have clearly forg= otten about Phonon as I don't compile it on my Windows because of some miss= ing dependencies;=0A=0A4. uics - Arno advised me months ago to move uics to= assemblygen but I haven't done it yet; I will complete that today.=0A=0AYo= u can send me your patches and I'll push them but please try to separate th= em per feature: that is, one for dmcs, one for DBus, one for MONO_EXECUTABL= E, etc.=0A=0A=0A=0A________________________________=0A From: Steven Boswell= II =0ATo: KDE bindings for other programming languages = =0ASent: Sunday, May 13, 2012 4:12 AM=0ASubject: Re:= [Kde-bindings] Building latest qyoto under Windows and Linux=0A =0A=0AOK, = I added two lines to=C2=A0src/plugins/qyoto/QyotoTranslator.cs:=0A=0A{ "QX1= 1EmbedContainer::Error", delegate { throw new NotSupportedException(); } },= =0A=0A{ "QX11EmbedWidget::Error", delegate { throw new NotSupportedExceptio= n(); } },=0A=0A=0AI don't know if that was a great idea, but at least it ke= pt compiling.=0A=0AThe next compile error (under Linux) was in qyoto-phonon= :=0A=0Aassemblygen/assemblies/qyoto-phonon/native/phononhandlers.cpp:29:25:= error: expected constructor, destructor, or type conversion before =E2=80= =98(=E2=80=99 token=0A=0A=0AThe issue seems to be that=C2=A0DEF_VALUELIST_M= ARSHALLER isn't defined anywhere. =C2=A0assemblies/qyoto-qtcore/native/mars= hall_macros.h has a definition for=C2=A0DEF_LIST_MARSHALLER, so maybe that = file is out of date.=0A=0AAs always, help is appreciated.=0A=0ASteven Boswe= ll=0A=0A=0A________________________________=0A From: Steven Boswell II =0ATo: KDE bindings for other programming languages =0ASent: Saturday, May 12, 2012 5:33 PM=0ASubject: Re: [Kde-= bindings] Building latest qyoto under Windows and Linux=0A =0A=0AI've been = here the whole time...you could have just shouted!=0A=0AI'm still overloade= d at work, but decided to take some time today to work on this anyway. =C2= =A0I'm tired of being too tired to work on projects that I want to work on!= :-)=0A=0AIf Qyoto has to depend on .NET 4, that's not a big deal -- if it = needs to use System.Action<> instances with more than 4 parameters, there's= not much of a choice. =C2=A0The problem was that=C2=A0cmake/modules/CMakeD= etermineCSharpCompiler.cmake was still looking for the v3.5 compiler. =C2= =A0So I updated it to look for the=C2=A0v4.0.30319 compiler. =C2=A0I also u= pdated to look for dmcs (i.e. the .NET 4 version of Mono) instead of gmcs. = =C2=A0How is it that assemblygen ever compiled without these changes?=0A=0A= The next barrier was that the most of the changes I submitted a long time a= go had never been applied. I had modified assemblies/qyoto-*/CMakeLists.txt= to make them work if =C2=A0MONO_EXECUTABLE was undefined, and various plac= es to allow=C2=A0QT_QTDBUS_LIBRARY to be undefined. =C2=A0I put those back.= =0A=0ANow assemblygen builds and links under Windows, but I haven't tried t= o run it =C2=A0yet.=0A=0AUnder Linux, I get as far as building qyoto-qtgui,= then I get a bunch of errors like "error CS0426: The nested type `Error' d= oes not exist in the type `Qyoto.QX11EmbedContainer'". =C2=A0One example of= a line that causes this problem is:=0A=0A=C2=A0 =C2=A0 =C2=A0 =C2=A0 [Q_SI= GNAL("error(QX11EmbedContainer::Error)")]=0A=C2=A0 =C2=A0 =C2=A0 =C2=A0 eve= nt System.Action Error;=0A=0AIf you know how to g= et past this, I'd be grateful. =C2=A0The only reference I see to QX11EmbedC= ontainer is in=C2=A0src/plugins/qyoto/QyotoTranslator.cs, where it throws a= NotSupportedException, so I have no idea where to go with this.=0A=0AAlso,= I have some vague memory that uics was branched into assemblygen? =C2=A0If= not, what do I use?=0A=0AThanks in advance for any help with these issues!= =0A=0ASteven Boswell=0A=0A=0A________________________________=0A From: Dimi= tar Dobrev =0ATo: Steven Boswell II ; KDE bindings for other programming languages =0AS= ent: Saturday, May 12, 2012 12:13 PM=0ASubject: Re: [Kde-bindings] Building= latest qyoto under Windows and Linux=0A =0A=0AI'm glad you're back, Steven= !=0A=0ABoth problems are one and the same: Qyoto now depends on .NET/Mono 4= . =0A=0AThe reason is that I needed the overloads for System.Action as I us= e them to generate events corresponding to signals. The other thing I need = to find the files with parameter names.=0AIf the dependency on .NET 4 is un= acceptable for you please say so and we might be able to think of some work= around.=0A=0A=0A=0A________________________________=0A From: Steven Boswell= II =0ATo: KDE bindings =0ASent: = Saturday, May 12, 2012 9:50 PM=0ASubject: [Kde-bindings] Building latest qy= oto under Windows and Linux=0A =0A=0AToday I decided to try to build latest= smokegen/smokeqt/assemblygen under Windows and Linux.=0Asmokegen, i.e.=C2= =A0git://anongit.kde.org/smokegen, and smokeqt, i.e.=C2=A0git://anongit.kde= .org/smokeqt, built and linked under both Windows 7 and Fedora Core 16 just= fine.=0A=0ABut when building assemblygen, i.e.git://gitorious.org/assembly= gen/assemblygen.git, "assemblies" branch, I get the same build error immedi= ately, under both OSes:=0A=0AGeneratorData.cs(220,98): error CS0117: `Syste= m.Environment.SpecialFolder' does not contain a definition for `Windows'=0A= =0A=0AGetting that error under Linux didn't surprise me, but getting it und= er Windows did.=0A=0ADiking that line out and continuing to build, I get to= building=C2=A0qyoto-qtcore.dll. =C2=A0I get 260 "Won't wrap method" warnin= gs and 65 "Conflicting names" messages, then I get a bunch of errors that s= ay "error CS0305: Using the generic type `System.Action' requi= res `4' type argument(s)". =C2=A0One example of a line that generates such = an error is:=0A=0A=C2=A0 =C2=A0 =C2=A0 =C2=A0 [Q_SIGNAL("rowsAboutToBeMoved= (QModelIndex,int,int,QModelIndex,int)")]=0A=C2=A0 =C2=A0 =C2=A0 =C2=A0 even= t System.Action RowsAboutToBeMoved;=0A=0AI'm guessing there's a 'System.Action' now, but my version of Qt (4.8.1-5) doesn't have that.=0A=0ASo...doe= s anyone know what to do about these? =C2=A0The first error appears to be r= eal; the second one appears to want a different version of Qt. =C2=A0What v= ersion of Qt should I be using?=0A=0ASteven Boswell=0A=0A__________________= _____________________________=0AKde-bindings=0A mailing list=0AKde-bindings= @kde.org=0Ahttps://mail.kde.org/mailman/listinfo/kde-bindings=0A=0A=0A=0A= =0A=0A_______________________________________________=0AKde-bindings mailin= g list=0AKde-bindings@kde.org=0Ahttps://mail.kde.org/mailman/listinfo/kde-b= indings=0A=0A=0A=0A_______________________________________________=0AKde-bi= ndings mailing list=0AKde-bindings@kde.org=0Ahttps://mail.kde.org/mailman/l= istinfo/kde-bindings=0A=0A=0A=0A=0A=0A_____________________________________= __________=0AKde-bindings mailing list=0AKde-bindings@kde.org=0Ahttps://mai= l.kde.org/mailman/listinfo/kde-bindings ---2119685684-1081987111-1336929728=:5805 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Steven, al= l of your patches, including the uics one, are applied. Great work! It's ac= tually the first time I've been able to build Qyoto without ANY local chang= es.
I do not maintain Kimono at all, and have no int= ention to. With the maintenance of Qyoto and my project to port to it I hav= e my hands completely full.
It's just System.Action,= I believe. However, I do not like adding code that does the same as a buil= t-in library so if the .NET 4 dependency is not a problem for you I'd prefe= r to leave this as is. If it is a problem, I'd take a patch. And another th= ing: I'm not sure if it concerns you but, speaking of deployment, .NET 3.5 = is not available by default on most Windows machines as they are still runn= ing XP, and .NET 3.5 Client Profile, unlike .NET 4 Client Profile, has been screwed up and as a result it's almost as large as the full .NET 3.5.= The other deployment-friendly option would be .NET 2.0 but first, it's ver= y old and second, I'm not sure if Qyoto can run on it any more.
<= /div>


From: Steven Boswell II <ulatekh@yahoo.com>
To: KDE bindings for other program= ming languages <kde-bindings@kde.org>
Sent: Sunday, May 13, 2012 6:31 PM
Subject: Re: [Kde-bindings] Building la= test qyoto under Windows and Linux

=0A
OK, I separated out all my patc= hes.  Enclosed is an archive with all of them.  They are meant to= be applied in order, but if they're not, or one is skipped, they should wo= rk, but patch will report "fuzz", i.e. that the target line numbers had to = be adjusted.

Patch 1 allows MONO_EXECUTABLE to be undefined, i= .e. so that the Windows version can be built with Microsoft's C# compiler.<= br>
Patch 2 modifies output-destinations, so that executables, li= braries, and assemblies go to the proper location, and it modifies Windows = libraries/DLLs so that they don't have a "lib" prefix.
Patch 3 is= the=0A patch that detects a missing QtDBus (i.e. under Windows) but allows= building anyway.
Patch 4 fixes qyoto-phonon to use DEF_LIST_MARSHALLER instead of DEF_VALUELIST_MARSHALLER.  I hope I did it rig= ht.
Patch 5 makes the buil= d look for the .NET 4 compiler under both Windows and Linux.
Patch 6 adds "SMOKE_INCLUDE_DIR" to a fe= w places where it's needed.
Patch 7 builds a native assemblygen under Windows, so that it can load na= tive DLLs.
Patch 8 is the = hack that adds a reference for the Error class under QX11EmbedContainer and= QX11EmbedWidget.

I noticed that Kimono isn't= =0A building under Linux.  Is the Kimono project in the assemblygen gi= t-project being used or maintained?  I started to modify the CMakeList= s.txt files to build it, but it looks like it needs more work than that.

One last thing...are there any other dependencies= on .NET 4, or is it just the System.Action<> prototypes with more th= an 4 parameters?  If so, can we just add our own "Qyoto.Action<>= " prototypes with the required number of parameters, and use those instead?=  Would that cause any headaches that I can't think of?  (In whic= h case, patch 5 can be ignored.)

Steven Boswell=

=

From: Dimitar Dobrev <dpldobrev@yahoo.com>
= To: Steven Boswell II <ulat= ekh@yahoo.com>; KDE bindings for other programming languages <kde-bin= dings@kde.org>
Sent: Sunday, May 13, 2012 5:54 AM
Sub= ject: Re: [Kde-bindings] Building latest qyoto under Windows and= Linux

=0A
It seems to me you haven't subscribed to the= mailing list because I've been doing quite a bit of shouting here. :) Plea= se consider joining, this way you'll always be up to date with all developm= ents.

Most of the errors you report are my fau= lt, sorry about that:

1. QX11EmbedContainer and QX11EmbedWidget - I r= emoved them because the nested type Error was not generated; I didn't check= that as I was after another bug then so seeing they are not that often use= d I just removed them; obviously I forgot to remove the events that use the= m; I compiled everything then but apparently these events are new to Qt 4.8= .0 as my Linux had 4.7.4;
2. dmcs - I really=0A don't k= now what happened here; I clearly remember=0A searching for "gmcs" in the w= hole dir and replacing it; it seems that I didn't commit these changes;
=
3. DEF_VALUELIST_MARSHALLER - I replaced thi= s everywhere with DEF_LIST_MARSHALLER because of two of the bugs (QPrinterI= nfo and QModelIndex) I've written about in my recent post called "Qyoto: he= lp needed"; but I have clearly forgotten about Phonon as I don't compile it= on my Windows because of some missing dependencies;
4.= uics - Arno advised me months ago to move uics to assemblygen but I haven'= t done it yet; I will complete that today.

You can send me your patches and I'll push them but plea= se try to separate them per feature: that is, one for dmcs, one for DBus, o= ne for MONO_EXECUTABLE, etc.

=

Fro= m: Steven Boswell II <ulatekh@yahoo.com>
To: KDE bindings for other programming l= anguages <kde-bindings@kde.org>
Sent: Sunday, May 13, 2012 4:12 AM
Subject: Re: [Kde-bindings] Building latest qyo= to under Windows and Linux

=0A
OK, I added two lines to src/plugins/qy= oto/QyotoTranslator.cs:

=09{ "QX11EmbedContain= er::Error", delegate { throw new NotSupportedException(); } },
=09{ "QX11EmbedWidget::Error", delegate { throw new NotSupported= Exception(); } },

I don't know if that was a g= reat idea, but at least it kept compiling.

The nex= t compile error (under Linux) was in=0A qyoto-phonon:

<= div>assemblygen/assemblies/qyoto-phonon/native/phononhandlers.cpp:29:25: er= ror: expected constructor, destructor, or type conversion before =E2=80=98(= =E2=80=99 token

The issue seems to be that&nbs= p;DEF_VALUELIST_MARSHALLER isn't defined anywhere.  assemblies/qyoto-q= tcore/native/marshall_macros.h has a definition for DEF_LIST_MARSHALLE= R, so maybe that file is out of date.

As always, h= elp is appreciated.

Steven Boswell

<= /div>

From: Steven Boswell II <ulatekh@yahoo.com>
To: KDE bindings for=0A other progr= amming languages <kde-bindings@kde.org>
Sent: Saturday, May 12, 2012 5:33 PM
Subject: Re: [Kde-bindings] Building = latest qyoto under Windows and Linux

=0A
I've been here the whole time...yo= u could have just shouted!

I'm still overloaded at work, but decided to = take some time today to work on this anyway.  I'm tired of being too t= ired to work on projects that I want to work on! :-)

If Qyoto has to dep= end on .NET 4, that's not a big deal -- if it needs to=0A use System.Action= <> instances with more than 4 parameters, there's not much of a choic= e.  The problem was that cmake/modules/CMakeDetermineCSharpCompil= er.cmake was still looking for the v3.5 compiler.  So I updated it to = look for the v4.0.30319 compiler.  I also updated to look for dmc= s (i.e. the .NET 4 version of Mono) instead of gmcs.  How is it that a= ssemblygen ever compiled without these changes?

The next barrier was th= at the most of the changes I submitted a long time ago had never been appli= ed. I had modified assemblies/qyoto-*/CMakeLists.txt to make them work if &= nbsp;MONO_EXECUTABLE was undefined, and various places to allow QT_QTD= BUS_LIBRARY to be undefined.  I put those=0A back.

Now assemblygen builds= and links under Windows, but I haven't tried to run it  yet.

Under Linux, I get as far as = building qyoto-qtgui, then I get a bunch of errors like "error CS0426: The = nested type `Error' does not exist in the type `Qyoto.QX11EmbedContainer'".=  One example of a line that causes this problem is:

  &n= bsp;     [Q_SIGNAL("error(QX11EmbedContainer::Error)")]
       =0A event System.Action<QX11EmbedContainer.E= rror> Error;
If you = know how to get past this, I'd be grateful.  The only reference I see = to QX11EmbedContainer is in src/plugins/qyoto/QyotoTranslator.cs, wher= e it throws a NotSupportedException, so I have no idea where to go with thi= s.

<= div style=3D"font-size:12pt;font-family:times, serif;">Also, I have some va= gue memory that uics was branched into assemblygen?  If not, what do I= use?

Thanks in advance= for any help with these issues!

Steven Boswell


From:= Dimitar Dobrev <dpldobrev@yahoo.com>
To: Steven Boswell II <ulatekh@yahoo.com>; KDE b= indings for other programming languages <kde-bindings@kde.org>
<= b>Sent: Saturday, May 12, 2012= =0A 12:13 PM
Subject: R= e: [Kde-bindings] Building latest qyoto under Windows and Linux
=

=0A
I'm glad you're back, Steven!

<= /span>
Both problems are one and the same: Qyoto now depend= s on .NET/Mono 4.
The reason is that I needed t= he overloads for System.Action as I use them to generate events corresponding to sig= nals. The= other thing I need to find the files with parameter names.
If the depende= ncy on .NET 4 is unacceptable for you please say so and we might be able to= think of some workaround.


From: Steven Boswell II = <ulatekh@yahoo.com>
To: KDE bindings <kde-bindings@kde.org>
Sent: Saturday, May 12, 2012 9:50 PM
Subject: [Kde-bindings] Building l= atest qyoto under Windows and Linux

=0A
Today I decided to try to build latest sm= okegen/smokeqt/assemblygen under Windows and Linux.
smokegen, i.e. git://anongit.kde= .org/smokegen, and smokeqt, i.e. git://anongit.kde.org/smokeqt, built = and linked under both Windows 7 and Fedora Core 16 just fine.

But when building assemblygen, i.e.g= it://gitorious.org/assemblygen/assemblygen.git, "assemblies" branch, I get = the same build error immediately, under both OSes:

GeneratorData.cs(220,98): error CS01= 17: `System.Environment.SpecialFolder' does not contain a definition for `W= indows'

Getting that error under Linux didn't surprise me, but g= etting it under Windows did.

Diking that line out and continuing to = build, I get to building qyoto-qtcore.dll.  I get 260 "Won't wrap= method" warnings and 65 "Conflicting names" messages, then I get a bunch o= f errors that say "error CS0305: Using the generic type `System.Action<T= 1,T2,T3,T4>' requires `4' type argument(s)".  One=0A example of a l= ine that generates such an error is:

       = ; [Q_SIGNAL("rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)")]
        event System.Action<QModelIndex,Syste= m.Int32,System.Int32,QModelIndex,System.Int32> RowsAboutToBeMoved;
=

I'm guessing there's a 'System.Action<T1,T2,T3,T4>= ;' now, but my version of Qt (4.8.1-5) doesn't have that.

So...does anyone know what to do about these?  The first error= appears to be real; the second one appears to want a different version of = Qt.  What version of Qt should I be using?

St= even Boswell


_______= ________________________________________
Kde-bindings=0A mailing listKde-bindings@kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings
=




_______________________________________________
Kde-binding= s mailing list
Kde-bindings@kde.= org
https://mail.kde.org/mailman/listinfo/kde= -bindings



____________= ___________________________________
Kde-bindings mailing list
Kde-bindings@kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings



=

_______________________________________________
Kde-bindings m= ailing list
Kde-bindings@kde.org
https://mail.kde.org/= mailman/listinfo/kde-bindings


<= /html> ---2119685684-1081987111-1336929728=:5805-- --===============6705246956333024095== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Kde-bindings mailing list Kde-bindings@kde.org https://mail.kde.org/mailman/listinfo/kde-bindings --===============6705246956333024095==--