On 30 November 2013 23:18, Joerg Mayer <jma...@loplof.de> wrote: > It took some preparational time before I could test your patches: > - I needed to get a working Windows build first > - I've finally managed to be able to compile via cygwin-ssh, so no more > remote desktop sessions :-) > - Finish some other small issues first so I didn't have any uncommitted > stuff in my tree. > > On Sun, Nov 24, 2013 at 07:45:07PM +0000, Graham Bloice wrote: > > I've now got tshark to build from a VS solution file, had to do some > hacks > > to get there though, patch files attached for others to peruse, as I'm > not > > sure if they are the optimal solutions: > > Before I comment on the individual things in this patch: With your stuff > committed so far I've been able to build on my Windows with both > cmake -> nmake and cmake -> vs (msbuild). Great! > > > 1. I had to add some MSC version definitions to CMakeLists.txt > > There are two independent parts to this patch: > > 1) I applied the MSC_VER_REQUIRED part (after I understood the cmake > specific > part of it). > > 2) > - set( CMAKE_PREFIX_PATH > "${QT5_BASE_PATH}\\msvc2010" ) > +# set( CMAKE_PREFIX_PATH > "${QT5_BASE_PATH}\\msvc2010" ) > + set( CMAKE_PREFIX_PATH "${QT5_BASE_PATH}" ) > > I have no idea why/how this is supposed to work: Is Qt5 supposed to > automagically > add the right msvc version back into the path? > After applying and testing this it didn't fail right away but it no longer > found Qt5LinguistTools and Qt5PrintSupport. > > > 2. I had to remove some definitions from cmakeconfig.h.in for > windows. > > The windows config.h produced for the normal nmake build is quite a > bit > > different than the cmake produced one. I've attached my patch to get > the > > cmake build to work. Folks can check config.h.win32 to see the > starting > > point for the normal nmake build. > > --- cmakeconfig.h.in (revision 53524) > +++ cmakeconfig.h.in (working copy) > +#if !defined(_WIN32) > /* Define to 1 if you have the <stdlib.h> header file. */ > #cmakedefine HAVE_STDLIB_H 1 > +#endif > > +#if !defined(_WIN32) > /* Define to 1 if you have the <string.h> header file. */ > #cmakedefine HAVE_STRING_H 1 > +#endif > > What is the problem here? I only get a warning for these two symbols. Also, > if we do not include kerberos then these symbols will not be defined at > all, > which is also not a good idea. I see two cleaner solutions to this: > - Rename our HAVE_STRING_H to WS_HAVE_STRING_H > - Undef HAVE_STRING_H etc. in the outer file before including the (broken) > includes > of krb/krb5.h, not without adding a comment about bad taste in putting > the > values of the included win-mac.h unprotected into a global include file. > I'll probably go with the second one. > > > 3. As mentioned in my previous message, the VS solution chops out > every > > 8192nd byte from the command line passed to make-dissector-reg.py. My > > patch (make-reg.patch) gets CMake to write out the required source > file > > list to a file and modifies the python script to read in the file. > The > > python changes *should* be backwards compatible. > > I committed your patch but it seems to break on older python. Can you > please take > a look at the OS X buildbot? > > > 4. As I've moved over to building the GTK3 version, some CMake FindXXX > > modules had to be fixed, not entirely convinced by my changes here, > but it > > works for me (Findxxx.patch). > > I do my builds with GTK3 as well and they seem to build just fine. I agree > that > using gtk[23] is a hack and you cleaned that up properly. What I don't > understand > is why you removed the "IF( NOT GMODULE2_FOUND )" (or similar) in > FindGMODULE2.cmake and FindGTHREAD2.cmake. > > > 5. The current setpath method for fixing up paths to all the dll's and > > executables doesn't work for VS solution builds, as a solution will > usually > > have multiple build configurations (Debug, Release, etc.) and the > build > > artefacts go in different places depending on the build config used, > e.g. > > builddir\Debug\tshark.exe, builddir\lib\Debug\libwireshark.dll. As > the > > build config is chosen at build time, not cmake generation time the > paths > > required can't be generated by cmake. I think we'll have to move to > the > > normal nmake option of copying everything into a target directory. > > I'll look some more into this but it looks doable: After a complete build > with msbuild everything is in ./Debug/ except the dlls, which are in > ./lib/Debug/, so I'm optimistic I can find a solution. > > > 6. I have one warning in the tshark build: > > > > Build succeeded. > > "E:\Wireshark\build\Wireshark.sln" (Executables\tshark target) > (1) -> > > "E:\Wireshark\build\tshark.vcxproj.metaproj" (default target) (2) > -> > > "E:\Wireshark\build\tshark.vcxproj" (default target) (16) -> > > (ClCompile target) -> > > ..\trunk\capture-wpcap.c(906): warning C4003: not enough actual > > parameters for macro 'G_STRINGIFY_ARG' > [E:\Wireshark\build\tshark.vcxproj] > > 1 Warning(s) > > 0 Error(s) > > Time Elapsed 00:01:26.80 > > I get that warning as well. It's also happening with cmake/nmake build but > not > with the nmake build. Looking into the source makes it clear: I'll have to > find > a way to determine the value of and assign a value to PCAP_VERSION. > > > Onwards and upward, now to make dumpcap compile. > > This is from svn head, so no extra patches: > > C:\wireshark\build\msbuild-x86\Debug>dir *.exe > [...] > 30.11.2013 23:49 57.344 capinfos.exe > 30.11.2013 23:49 35.840 dftest.exe > 30.11.2013 23:49 145.920 dumpcap.exe > 30.11.2013 23:49 87.552 editcap.exe > 30.11.2013 23:52 47.616 mergecap.exe > 30.11.2013 23:54 3.823.616 qtshark.exe > 30.11.2013 23:54 35.840 randpkt.exe > 30.11.2013 23:54 93.184 rawshark.exe > 30.11.2013 23:54 40.448 reordercap.exe > 30.11.2013 23:54 78.336 text2pcap.exe > 30.11.2013 23:54 385.536 tshark.exe > 30.11.2013 23:54 3.016.192 wireshark.exe > > Great stuff Joerg, lots to look over here, I had also got wireshark and qtshark to build with msbuild. I've also tried debug and release builds.
I might get some time this evening to go over things, but if I don't I'll be unable to get back to this for a week as I'm travelling. Gerald, We are getting close to a point where CMake is usable for Windows, it would be nice to have a buildbot for that, keeping the current Win 7 nmake one as well. How are we placed for getting a Windows CMake one?
___________________________________________________________________________ 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-requ...@wireshark.org?subject=unsubscribe