Wireshark-dev: Re: [Wireshark-dev] Status Cmake Win32 support
From: Joerg Mayer <jmayer@xxxxxxxxx>
Date: Mon, 2 Dec 2013 14:49:48 +0100
On Mon, Dec 02, 2013 at 11:34:21AM +0000, Graham Bloice wrote:
> On 2 December 2013 10:54, Joerg Mayer <jmayer@xxxxxxxxx> wrote:
> > On Sun, Dec 01, 2013 at 10:35:50PM +0000, Graham Bloice wrote:
> > > On 30 November 2013 23:18, Joerg Mayer <jmayer@xxxxxxxxx> wrote:
> >
> > > I still have the issue with GTK3, in that I have to comment out the path
> > > "corrections" in FindGTK3.cmake.
> >
> > Hmm, can you please explain the problems you are encountering - I'd like to
> > fix them. In case it involves rewriting the results from pkg-config, can
> > you
> > please include the .pc file?
> 
> In FindGTK3.cmake there is some code that modifies the paths found by
> pkg-config only on Windows.  Doing this totally messed up the paths for me,
> I commented out the block of code and everything just worked.  Note that
> I'm using pkg-config from the gtk2 bundle not the Cygwin one.

I can't find a pkg-config.exe in the gtk2 bundle. Where can I find it
(version, arch)? Do I need to do something special in the "nmake ... setup"
phase to get it?

> > > 4.  Fix the use of zlib, so that zlib is built by CMake and doesn't
> > require
> > > nmake build first.
> >
> > This should be done in the setup process.
> >
> 
> If zlib had a CmakeLists.txt, could we somehow chain that in?

zlib has a CmakeLists.txt, but for some reason it only builds for 32 bits.
I do an in tree build - after which it works just fine with FindZLIB.cmake.
cmake .
cmake --build .
As I'm only doing 32-bit builds this doesn't affect me yet. I will start work
on 64-bit builds soon though (once I have your remaining problems sorted out ;-)

> > One of the remaining points is to make the setup process independent of
> > nmake but we need a concept here first that should probably then be applied
> > to the native nmake too.
> >
> >
> On the long list.

This is something we need to coordinate with Gerald anyhow.

> > > 5.  Fix PortAudio.
> >
> > dito.
> >
> > > 6.  Fix CMake to find a working pkg-config.exe (only found in gtk2\bin at
> > > the moment, missing from gtk3), currently manualy copied to build dir
> > > (along with intl.dll and libglib-2.0-0.dll)
> >
> > I use pkg-config from cygwin, so it might be easiest to update the
> > installation
> > manual.
> >
> 
> See my earlier comment about using the one from gtk2.  I'd really like not
> to add any dependencies on Cygwin, as one of my long-term goals is to
> remove the need for Cygwin.

Sure - no problem with that - on the contrary. Thus my questions above as I'd
like to try your pkg-config setup.

> > > 7.  Fix qtshark use its own .rc file (not done in nmake either)
> >
> > > 8.  Fix build of plugins.
> >
> > They build on my system (cmake with nmake and msbuild).
> >
> 
> When building wireshark, I don't see any attempt to build them, maybe
> there's a missing dependency in CMakeLists.  I haven't tried building them
> explicitly.

They are built automagically, i.e. right now I do out of tree builds
on 32 bit arch:
cmake ..\..\trunk 2>&1 | tee cmake.log
cmake --build . 2>&1 | tee build.log
With default cmakeoptions and default config.nmake files (OK, I modified
config.nmake temporarily to pull in gtk2 as well in order to have both
gtk versions to test with).

> > > 9.  Fix build of executables that use WTAP_PLUGIN_SOURCES.
> >
> > Have to check what you are talking about :-)
> >
> 
> Happened right at the end of my testing time so I didn't really investigate
> it.  I was trying to build some one of the other executables (mergecap??)
> and it failed.  Then I noticed all other executables that depended on
> WTAP_PLUGIN_SOURCES also failed.

I grepped the whole source tree and did not find anything:
jmayer@egg:~/work/wireshark/svn/trunk> grep -ri WTAP_PLUGIN_SOURCES .
jmayer@egg:~/work/wireshark/svn/trunk>

Ciao
    Jörg
-- 
Joerg Mayer                                           <jmayer@xxxxxxxxx>
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.