Wireshark-dev: Re: [Wireshark-dev] CMake status

From: Graham Bloice <graham.bloice@xxxxxxxxxxxxx>
Date: Mon, 5 Jan 2015 23:11:11 +0000
On 5 January 2015 at 20:17, Gerald Combs <gerald@xxxxxxxxxxxxx> wrote:
Our CMake environment has been coming along nicely. However, it's still
missing several major build targets that are present in the Autotools
and Nmake+QMake makefiles:

"dist". Balint created a script (tools/git-export-release.sh) which runs
"git archive". I'm not sure how complete it is compared to the current
"dist" output.

"distcheck". Google turned up a couple of "distcheck" CMake modules but
I'm not sure how applicable they would be to our environment. Having
working "dist" and "distcheck" targets implies that they would be usable
on Windows, which would be nice.

"packaging" (Windows NSIS). If we convert the pile-of-defines in
packaging/nsis/Makefile.nmake to a proper NSIS include file it looks
like we could migrate the remaining targets pretty easily. Ultimately we
might want to use CPack.

"packaging_papps" (PortableApps). Same as the NSIS package.

"osx-package" (.dmg). We need to add support for out-of-tree builds to
packaging/macosx/osx-dmg.sh.in.

"rpm-package" (Linux). *Should* be trivial to add.

"wsug", "wsdg", "release_notes" (Windows). We need to figure out how to
migrate the current a2x command (which is an inlined shell script) to
something more suitable for CMake.

"pdb_zip" (Windows PDB archive). *Should* be trivial to add.

ENABLE_CODE_ANALYSIS (Windows build option). Same.


As platforms go, OS X is the closest to completion. If we had a working
"osx-package" target the OS X buildbots could use CMake exclusively.


FWIW my current Windows CMake list of tasks to do (in no particular order):
  1. Add zlib to build.
  2. Add PortAudio to build.
  3. Resolve running from build (run) directory.  Currently it uses a batch file to modify the path so that all the 3rd party libs (glib etc.) are on the path.  I think we need to do the same as the nmaek build and copy the files into the build dir using a script (PowerShell?) to do that work for the CMake build.  This will also help when using CMake to create the NSIS package.
  4. Fix compile warnings.
  5. Fix CMake warnings.
  6. Fix WinPcap version number for compile.
  7. Get the intermediate build items out of the build dir, e.g. *.lib, *.exp.
  8. Get the plugins into the correct subdirectory of the build dir.
  9. Get the test executables out of the build dir.
  10. Investigate CTest for running the tests.
  11. Other stuff I've forgotten.
--
Graham Bloice