WIP: rpc_sec_vt
[metze/wireshark/wip.git] / README.cmake
index 4043d54c834f05e88c10f0e9d8d9fef9a2e33ddd..24eb8af04e9849dd736427eb6b4a651647b8ec08 100644 (file)
@@ -2,9 +2,9 @@
 
    $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.
@@ -33,7 +33,8 @@ How to do out of tree build (Unix/Linux):
 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:
@@ -48,6 +49,39 @@ Note 3:
   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\msvc2010 (or whatever)
+1d) In case you want to use Visual Studio, make sure that the paths
+    to python and cygwin are available to GUI applications.
+2) Install cmake
+2a) Build the zlib library, e.g.
+    cd %WIRESHARK_BASE_DIR%\wireshark-%WIRESHARK_TARGET_PLATFORM%-libs\zlib125
+    cmake -G "NMake Makefiles" . # msbuild will not do because of configuration path
+    cmake --build .
+3) mkdir c:\wireshark\build
+4) cd c:\wireshark\build
+5) cmake -G "NMake Makefiles" 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
+   (or use msbuild: cmake --build . -- /p:Configuration=RelWithDebInfo)
+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.
@@ -72,28 +106,33 @@ What works?
 ===========
 
 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 version detection while at it.
-- Change default for PCRE to off and use GLIB2 regexes by default.
-  This requires the redone glib2 detection module.
 - 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
+- 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
@@ -110,7 +149,7 @@ About cmake in general and why KDE4 uses it
 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