$Id$
- Notice
+ Notice
- To find out the current state of the cmake implementaion for
+ To find out the current state of the cmake implementation for
Wireshark, please take a look at "What needs to be done?" below.
Basically this is an experiment and if we find out that it works
and we like cmake more than autofoo we might switch one day.
3) mkdir build
4) cd build
5) cmake ../<Name_of_WS_source_dir>
-6) make
+6) make (or cmake --build .)
+7) (as root) umask 0022 && make install
Note 1:
in step 5), you may override the defaults for features:
After running cmake, you can always run "make help" to see
a list of all possible make targets.
+Note 4:
+ Cmake honors user umask for creating directories as of now:
+ http://public.kitware.com/Bug/view.php?id=9620
+ To get predictable results please set umask explicitly.
+
+How to do out of tree build (Win32/64):
+[This is advanced alpha and should build all executables except the GTK3
+ Wireshark for 32-bit.]
+1) Follow http://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html
+ Steps 1-9
+1a) Set WIRESHARK_BASE_DIR=c:\wireshark (the parent directory of the
+ library directory).
+1b) set WIRESHARK_TARGET_PLATFORM=win32 (or win64)
+1c) set QT5_BASE_DIR=c:\Qt\Qt5.1.1\5.1.1 (or whatever)
+2) Install cmake
+3) mkdir c:\wireshark\build
+4) cd c:\wireshark\build
+5) cmake -G "NMake Makefiles" -DBUILD_wireshark=OFF path\to\sources
+ (i.e. in case your sources are located at c:\wireshark\trunk, use "..\trunk")
+5a) cmake path\to\sources (this will build for the latest Visual Studio version found)
+6) nmake /X- VERBOSE=1 (or cmake --build . -- VERBOSE=1 )
+6a) Wireshark.sln (this will run up Visual Studio with the cmake built solution
+7) In case you want to test the executable(s) inside the build tree:
+ Run setpath.bat whenever it gets updated (there is a message in each cmake
+ run whether it is necessary or not).
+
Why cmake?
==========
- Can create project files for some MS and Apple IDEs.
===========
All the executables now build from clean source on:
-* 32bit openSUSE 11.2
+* 32bit openSUSE 11.3: (gnu)make and gcc
+* 64bit FedoraXXX
* 32bit Ubuntu 9.04
+* 32bit Ubuntu 10.04
+* 64bit Debian Wheezy
What needs to be done?
======================
-- Add asn1 autogen target (assigned: krj)
-- Redo glib2 find modules.
- Add back platform specific objects.
- Fix places in the cmake files marked as todo.
-- Add back (working) install target.
- Currently, directories are created with user umask
-- Add back linker flags test
+- 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, ...)
+- Add support for cmake configurations.
+- Get plugins loading when running *shark from the build directory.
+- Automatically figure out if *shark is running from the build directory
+ (making WIRESHARK_RUN_FROM_BUILD_DIRECTORY unnecessary like it is with
+ autofoo).
+- Get cross-compilation working (or ensure it does). It works with autofoo.
...
Links regarding cmake
Introductory/tutorial presentation
http://ait.web.psi.ch/services/linux/hpc/hpc_user_cookbook/tools/cmake/docs/Cmake_VM_2007.pdf
-Introductory arcticle in Linux Journal
+Introductory article in Linux Journal
http://www.linuxjournal.com/node/6700/print
Useful variables