<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>I have some good news, Dimitar -- I finally built a version of Qyoto that runs under Windows!  One pleasant surprise...the two bugs that I reported before, with QObject.Connect() crashing when methods are called directly (versus turning those methods into Q_SLOTs), and QFileDialog crashing immediately, aren't happening to me!  So now I have to beat on it more to figure out what's not working.</span></div><div><br><span></span></div><div><span>I see one minor item, one that I saw with the binaries you built...on startup, I get a message on the console that says "Qt: Could not initialize OLE (error 80010106)".  Google suggests it's a relatively common problem, but there's little in the way of suggesting a solution.<br></span></div><div><span><br></span></div><div><span>I still have a few build issues left,
 and would like your opinion on them.</span></div><div><br><span></span></div><div><span>1) Should the DLLs be in the bin directory or the lib directory?  I've been putting them in the bin directory, mostly so that I only have to add one directory to the system path.</span></div><div><span><br></span></div><div><span>2) My DLL installation line in all my cmake files looks like this:</span></div><div><span class="tab">    install(TARGETS <target-name></span></div><div><span class="tab">    </span><span class="tab">    LIBRARY DESTINATION ${LIB_INSTALL_DIR}</span></div><div><span class="tab">    </span><span class="tab">    ARCHIVE DESTINATION ${LIB_INSTALL_DIR}</span></div><div><span class="tab">    </span><span class="tab">    RUNTIME DESTINATION bin)</span></div><div>and for all the targets, except the one for "qyoto" in
 qyoto/CMakeLists.txt, this installs the DLL in the bin directory.  But libqyoto.dll ends up in the lib directory.  I'm not sure why.</div><div><br></div><div>3) When I launch my C# app, it crashes and says it can't find the "qyoto" DLL.  I solved that by renaming libqyoto.dll to qyoto.dll, which was unexpected.  I'm not sure how to resolve this properly.</div><div><br></div><div>4) I assume that assemblygen is the program that converts the assembly DLLs into the magic-named format that goes in C:\Windows\assembly\GAC?  Because right now the assembly DLLs end up in the lib directory, and thus aren't automatically found by MonoDevelop's assembly browser -- I have to import them.</div><div><br></div><div>If anyone can help with these issues, then I will be able to submit a final set of patches, and hopefully get them submitted to the git repositories.</div><div><br></div><div>Steven Boswell<br></div><div><br></div>  <div
 style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Dimitar Dobrev <dpldobrev@yahoo.com><br> <b><span style="font-weight: bold;">To:</span></b> Steven Boswell II <ulatekh@yahoo.com>; KDE bindings <kde-bindings@kde.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, December 6, 2011 9:54 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Kde-bindings] Patches to vastly improve building smokegen/smokeqt/qyoto on Windows<br> </font> <br>
<div id="yiv1724413036"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div><span>Yep, there is - CMAKE_SHARED_LIBRARY_SUFFIX. I attached a patch that uses it and works fine on Windows, if you can test it on Linux, I'll recommend it for application.<br></span></div><div><br></div>  <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Dimitar Dobrev <dpldobrev@yahoo.com><br> <b><span style="font-weight: bold;">To:</span></b> Steven Boswell II <ulatekh@yahoo.com>; KDE bindings <kde-bindings@kde.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, December 6, 2011 6:36 PM<br> <b><span style="font-weight:
 bold;">Subject:</span></b> Re: [Kde-bindings] Patches
 to vastly improve building smokegen/smokeqt/qyoto on Windows<br> </font> <br>
<div id="yiv1724413036"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div><span>Here you go: the </span><span> ARCHIVE/RUNTIME DESTINATION applied to all assemblygen/</span><span>assemblies. There are more changes on my machine but I cannot mail them as they are not cross-platform. One type of change is that the generated libs are named *.so in the CMake lists while the compiled files are *.dll-s. I noticed you used a </span>CMAKE_EXECUTABLE_SUFFIX for smokegen. There may be a CMAKE_LIBRARY_SUFFIX (or something) which has the same function for libraries.<br></div><div><br></div>  <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Steven Boswell II
 <ulatekh@yahoo.com><br>
 <b><span style="font-weight: bold;">To:</span></b> Dimitar Dobrev <dpldobrev@yahoo.com>; KDE bindings for other programming languages <kde-bindings@kde.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, December 6, 2011 4:20 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Kde-bindings] Patches to vastly improve building smokegen/smokeqt/qyoto on Windows<br> </font> <br>
<div id="yiv1724413036"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div><span>Don't call yourself lazy -- you've done a lot to get me started on this project.  This is called "teamwork"! :-)<br></span></div><div><span><br></span></div><div><span>They should take the parts for ARCHIVE/RUNTIME DESTINATION -- they didn't have any apparent effect on Linux.  I could go double-check that, if they're worried about it, but I compared the Linux builds before/after my patch, just to be paranoid.</span></div><div><br><span></span></div><div><span>I'd appreciate a pre-release of any Windows-related patches you have.  I'll be happy to test them on my end.</span></div><div><br><span></span></div><div><span>My next goal is to figure out how to debug unmanaged code under Windows, so that I can track down problems in Qyoto.  It looks possible with
 Visual Studio, but I'm hoping
 for an
 open-source solution.</span></div><div><br><span></span></div><div><span>Steven Boswell<br></span></div><div><br></div>  <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Dimitar Dobrev <dpldobrev@yahoo.com><br> <b><span style="font-weight: bold;">To:</span></b> Steven Boswell II <ulatekh@yahoo.com>; KDE bindings for other programming languages <kde-bindings@kde.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, December 6, 2011 1:39 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Kde-bindings] Patches to vastly improve building smokegen/smokeqt/qyoto on Windows<br> </font> <br>
<div id="yiv1724413036"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div><span>Great work! These actually contain some of the issues I didn't post workarounds for, for example the searching for "smokegen" while the file is named "smokegen.exe"</span>. It's good you compensated for my laziness. :)</div><div>I hope they take the parts for "ARCHIVE DESTINATION and RUNTIME DESTINATION". They do work and I had prepared such for smokegen. It was not accepted, though, because its validity on non-Windows system was doubted even though I actually read about it on a Linux-related mailing list, and I didn't have the time to check that AS WELL. Now that you tested it on Linux both yours and mine should be admitted. Once this happens, I'll send a patch for all CMakeLists in assemlygen/assemblies/qyoto-*/native.<br></div><div><br></div><div style="font-family: times
 new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Steven Boswell II <ulatekh@yahoo.com><br> <b><span style="font-weight: bold;">To:</span></b> "kde-bindings@kde.org" <kde-bindings@kde.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, December 6, 2011 5:22 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> [Kde-bindings] Patches to vastly improve building smokegen/smokeqt/qyoto on Windows<br> </font> <br>
<div id="yiv1724413036"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div>A few days ago, I reported a massive number of weird build issues that I ran into while trying to compile smokegen, smokeqt, and qyoto for Windows.  Most of them could be solved by someone that knows CMake.  I finally learned about CMake over the weekend...it was a lot less nasty than I was expecting.  I guess autoconf has traumatized me. :-)</div><div><br></div><div>Anyway, I found what I would consider to be proper solutions to the vast majority of the build problems I ran into!  Enclosed is an archive with three patches, one for each project, against the latest state of the public git repositories.  Here's what they do:</div><div><br></div><div>smokegen:</div><div>Adds CMAKE_EXECUTABLE_SUFFIX to the end of SMOKE_GEN_BIN and SMOKE_API_BIN, so that the
 installed SmokeConfig.cmake
 will have proper
 paths to the executables.</div><div>Put quotes around several references to path variables, so that spaces can appear in the installation path.</div><div>Added ARCHIVE DESTINATION and RUNTIME DESTINATION to the install line of cppparser.  (No apparent effect under Linux.)</div><div><br></div><div>smokeqt:</div><div>Put quotes around the reference to SMOKE_CMAKE_MODULE_DIR, so that spaces can appear in the installation path.</div><div><br></div><div>qyoto:</div><div>Modified paths to C# sources under Windows, changing forward-slashes to backward-slashes.  (Apparently, Microsoft's C# compiler can't handle forward slashes.)</div><div>When looking for the C# compiler, if the environment variable CSC refers to the 2.0 compiler, don't use it.  (The Qyoto C# files use .NET 3.0 features.)</div><div>If CMakeDetermineCSharpCompiler.cmake has to look for a Microsoft compiler, use the 3.5 version.</div><div>Don't compile QtDBus-related items unless
 the related library was found (i.e. only if SMOKE_QTDBUS_LIBRARY is defined).</div><div>Added ARCHIVE DESTINATION to the install line of qtscript-sharp, qttest-sharp, qtuitools-sharp, and qtwebkit-sharp.</div><div>Changed the external definition of Qyoto_handlers[] in src/qyoto.cpp from Q_DECL_IMPORT to Q_DECL_EXPORT, to match the way it's declared elsewhere.</div><div>Define QDESIGNER_UILIB_LIBRARY when compiling uics for Win32, to get rid of a ton of linker errors.</div><div><br></div><div>I know that no one has time to help Dimitar and I port Qyoto to Windows, but at the very least, could you look over these changes and consider them for inclusion in the public git repository?  I'll send a push request if that would make things easier for you.</div><div><br></div><div>Steven Boswell</div><div><br></div></div></div></div><br>_______________________________________________<br>Kde-bindings mailing list<br><a rel="nofollow"
 ymailto="mailto:Kde-bindings@kde.org" target="_blank" href="mailto:Kde-bindings@kde.org">Kde-bindings@kde.org</a><br><a rel="nofollow" target="_blank" href="https://mail.kde.org/mailman/listinfo/kde-bindings">https://mail.kde.org/mailman/listinfo/kde-bindings</a><br><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></body></html>