Wireshark mailing list archives
Windows build environment (was: Re: [Wireshark-commits] rev 52194: ...)
From: Gerald Combs <gerald () wireshark org>
Date: Wed, 25 Sep 2013 11:46:42 -0700
On 9/24/13 3:15 AM, Graham Bloice wrote:
On 24 September 2013 10:49, Joerg Mayer <jmayer () loplof de <mailto:jmayer () loplof de>> wrote: On Tue, Sep 24, 2013 at 10:24:33AM +0100, Graham Bloice wrote: > On 24 September 2013 10:17, Joerg Mayer <jmayer () loplof de <mailto:jmayer () loplof de>> wrote: > > > On Mon, Sep 23, 2013 at 05:32:38PM -0700, Gerald Combs wrote: > > > Would it make things easier for either of you if you could get useful > > > answers from pkg-config on Windows? > > > > Sure! The problem to solve here is how to handle the different install > > places (not everyone will find c:\wireshark\ a convenient place where to > > put the Wireshark-winXX-libs directory). In my current cmake install I've > > created an (environment) variable to specify that base path. > > Apart from that: it would be helping because pkgconfig will allow us to > > get additional information like other required libs, compile flags etc. > > > > > As Jorg says, the main issue right at the start is the location of stuff, > does pkg-config give you that, or is it more oriented around how the > package was built and configured? I'm not at all familiar with pkg-config. It will provide paths, but also additional information required to bild a program with that lib. Here is an example: jmayer@egg:~> pkg-config --cflags gtk+-3.0 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/libpng15 jmayer@egg:~> pkg-config --libs gtk+-3.0 -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 If linking would require -L or other flags, they would be displayed as well. Is any of that useful for what we want to do on Windows? I don't know.
pkg-config has a "--msvc-syntax" flag which generates output compatible with Visual C++, so it's at least theoretically useful. In practice it's a bit more complex. It looks like we'd have to come up with a path naming convention for .pc file collections for each build configuration (32-bit and 64-bit), then point pkg-config at the desired collection. We could do this by setting environment variables ourselves or by using a wrapper script.[1] I was hoping that we could make pkg-config as easy to use out of the box as it is on other systems but the deeper I dig the more complex it becomes.
> My proto-plan at the moment is that the env installer\updater > (chocolatey??) will grab all the required bits and store them somewhere > (possibly configurable by the user) and then provide that location(s) as a > hint(s) to CMake (env var is too ephemeral for me, probably a file) which > can then go and do its thing. The current windows build process seems to require set WIRESHARK_TARGET_PLATFORM=winXX so I added set WIRESHARK_BASE_DIR=c:/wireshark If you think a registry entry would be better: That's supported by cmake as well and would probably be a cleaner solution.
Chocolatey supports this approach with metapackages. E.g. a wireshark.devenv metapackage could have dependencies for specific versions of software libraries and less specific dependencies for things like Python and Nasm. Libraries, DLLs, and headers would end up in easy-to-find paths under %ChocolateyInstall%. I like this approach better than pkg-config (although strictly speaking they aren't mutually exclusive).
I still prefer a file as its easier for folks to adjust (maybe easier to mess up).
Agreed. [1]https://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Re: [Wireshark-commits] rev 52194: / /trunk/cmake/modules/: FindCARES.cmake FindGCRYPT.cmake FindGEOIP.cmake FindGLIB2.cmake FindGMODULE2.cmake FindGNUTLS.cmake FindGTHREAD2.cmake FindGTK2.cmake FindKERBEROS.cmake ... Joerg Mayer (Sep 24)
- Re: [Wireshark-commits] rev 52194: / /trunk/cmake/modules/: FindCARES.cmake FindGCRYPT.cmake FindGEOIP.cmake FindGLIB2.cmake FindGMODULE2.cmake FindGNUTLS.cmake FindGTHREAD2.cmake FindGTK2.cmake FindKERBEROS.cmake ... Graham Bloice (Sep 24)
- Re: [Wireshark-commits] rev 52194: / /trunk/cmake/modules/: FindCARES.cmake FindGCRYPT.cmake FindGEOIP.cmake FindGLIB2.cmake FindGMODULE2.cmake FindGNUTLS.cmake FindGTHREAD2.cmake FindGTK2.cmake FindKERBEROS.cmake ... Joerg Mayer (Sep 24)
- Re: [Wireshark-commits] rev 52194: / /trunk/cmake/modules/: FindCARES.cmake FindGCRYPT.cmake FindGEOIP.cmake FindGLIB2.cmake FindGMODULE2.cmake FindGNUTLS.cmake FindGTHREAD2.cmake FindGTK2.cmake FindKERBEROS.cmake ... Graham Bloice (Sep 24)
- Windows build environment (was: Re: [Wireshark-commits] rev 52194: ...) Gerald Combs (Sep 25)
- Re: [Wireshark-commits] rev 52194: / /trunk/cmake/modules/: FindCARES.cmake FindGCRYPT.cmake FindGEOIP.cmake FindGLIB2.cmake FindGMODULE2.cmake FindGNUTLS.cmake FindGTHREAD2.cmake FindGTK2.cmake FindKERBEROS.cmake ... Joerg Mayer (Sep 24)
- Re: [Wireshark-commits] rev 52194: / /trunk/cmake/modules/: FindCARES.cmake FindGCRYPT.cmake FindGEOIP.cmake FindGLIB2.cmake FindGMODULE2.cmake FindGNUTLS.cmake FindGTHREAD2.cmake FindGTK2.cmake FindKERBEROS.cmake ... Graham Bloice (Sep 24)