[Kde-bindings] Patches to vastly improve building smokegen/smokeqt/qyoto on Windows

Arno Rehn arno at arnorehn.de
Wed Dec 7 14:38:20 UTC 2011


On Wednesday 07 December 2011 00:35:44 Dimitar Dobrev wrote:
> 2) As I said, it doesn't matter where they are and I didn't pay attention;
> however, as you mention ARCHIVE/RUNTIME, I have to tell you these were once
> again not accepted, you can see a message from Arno Rehn from yesterday
> about it; I don't intend to learn CMake any more than necessary so I'll
> just ask him how he thinks the problem should be solved, otherwise I'm just
> going to leave the CMakeLists patched on my Windows system;
Well, steven's version looks fine:
     install(TARGETS <target-name>
         LIBRARY DESTINATION ${LIB_INSTALL_DIR}
         ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
         RUNTIME DESTINATION bin)

But from your patches I guess that it doesn't work for you this way.

> 3) This is an
> issue, "solved" by patching your generated make files, I sent a message a
> week or so ago about that; however, I intend this evening just to replace
> [DllImport("qyoto...")] with [DllImport("libqyoto...")] in the C# source
> files and push that, this way it will work with no changes to the CMake
> scripts;
There's also a cmake option to force a prefix for libs ( 
set_target_propery(<target> PREFIX "") ), you might want to try that first. 
(the "libqyoto-.." approach shouldn't break anything, but it looks not so nice 
on windows).

> 4) This is just like 1) - you don't actually need them in your GAC
> because you'll have to deploy them anyway; however, there may be again some
> Windows bug in the scripts because about a week ago I built Qyoto on Mac OS
> X and the assemblies were actually sent to the GAC; however, I won't spare
> any effort on this (because of deployment, as I said).
There's no way (that I know of) to put assemblies into the Windows gac in a 
proper way (mono's gacutil is different from .NET's one), so currently there's 
only support for Mono's gactutil.
The problem here is the "-root" option. When I just type "make", I don't 
expect the buildsystem to install anything yet. Only on "make install" stuff 
should be installed. So on Mono, we simply pass the -root option to gacutil, 
to create a gac "subtree" in the build dir, which is simply copied to the real 
gac on "make install".

However, the windows gacutil has no -root option. You could probably hack 
something up with "install(SCRIPT <some cmake script here>)" with an 
automatically generated script which calls gacutil - but that will soon get 
messy.

-- 
Arno Rehn


More information about the Kde-bindings mailing list