Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] finishing Cmake (Was: Simpifying exporting DLL symbols)

From: Bálint Réczey <balint@xxxxxxxxxxxxxxx>
Date: Wed, 27 Feb 2013 17:51:20 +0100
Hi,

2013/2/27 Jeff Morriss <jeff.morriss.ws@xxxxxxxxx>:
> Bálint Réczey wrote:
>>
>> 2013/2/26 Bill Meier <wmeier@xxxxxxxxxxx>:
>>>
>>> On 2/26/2013 5:11 PM, Bálint Réczey wrote:
>>>>
>>>> 2013/2/26 Pascal Quantin <pascal.quantin@xxxxxxxxx>:
>>>> ...
>>>>>
>>>>>
>>>> Thank you! If no one opposes I'll commit the patch on Thursday and
>>>> then start converting the remaining libs.
>>>>
>>> It sounds like the change is significant.
>>>
>>> if so, I suggest we consider if we should wait until after 1.10 is
>>> released
>>> to make the change.
>>
>> It is significant in a way, but I think it would be better to have it in
>> 1.10.
>> It is the last change needed for CMake build system to make it good enough
>> to
>> generate official Debian packages.
>> I got several requests to ship the Qt GUI in Debian and with CMake I
>> can generate both
>> GTK and Qt GUIs nicely not to mention that CMake builds are faster.
>>
>> 1.10.0 would be a perfect candidate to release a fully operational
>> CMake build system
>> for Linux and after 1.10 we could make CMake work on every platform.
>
>
> Another thing that is missing in CMake is the ability to (re)generate the
> ASN.1 dissectors. Currently you need to use autofoo or Windows to do that.
>
> (I tried looking at it once a long time ago but didn't spend the time to
> learn CMake sufficiently...)

The current TODO list in README.cmake is the following:
What needs to be done?
======================

- Add asn1 autogen target (assigned: krj)
- Add back platform specific objects.
- Fix places in the cmake files marked as todo.
- Guides are not installed.
- Build source package (using CPack).
  This is obsolete if we decide to release VCS snapshots instead
- Build rpm package (using CPack).
- Build dpkg package (using CPack).
  This is obsolete, we should call CMake from debian/rules instead, using dh
  (rbalint)
- Add back checkAPI target.
- Test and add support for other platforms (BSDs, OSX,
  Solaris, Win32, Win64, ...)
...

Since the asn1 seems to be assigned already I did not want to
intervene with it. ;-)
I think we are pretty close to completion and we could have the Linux
part finished for 1.10.
I have added the dumpabi targets and with the symbol visibility patch I'll be
able to ship Debian packages using CMake.

I'm not sure which "platform specific targets" are missing, so if
anyone has some idea please
detail the TODO item, or  - the better - fix it. ;-)

Cheers,
Balint