Qt/ByteViewTab: document potential pitfall
[metze/wireshark/wip.git] / README.macos
index cde1360559d62469e35540b72142fb3a31406fa2..cac66f37769e65e3543fa49d6fb7e4947e8c8cdd 100644 (file)
@@ -22,51 +22,78 @@ Qt packages and source code from
 
 or use the tools/macos-setup.sh script described below.
 
+You should have CMake installed; you can download binary distributions
+for macOS from
+
+       https://cmake.org/download/
+
 The tools/macos-setup.sh script can be used to download, patch as
 necessary, build as necessary, and install those libraries and the
-libraries on which they depend; it will, by default, also install other
-libraries that can be used by Wireshark and TShark.  The versions of
-libraries to download are specified by variables set early in the
-script; you can comment out the settings of optional libraries if you
-don't want them downloaded and installed.  Before running the
-tools/macos-setup.sh script, and before attempting to build Wireshark,
-make sure your PKG_CONFIG_PATH environment variable's setting includes
-both /usr/X11/lib/pkgconfig and /usr/local/lib/pkgconfig.
+libraries on which they depend, along with tools such as CMake; it will,
+by default, also install other libraries that can be used by Wireshark
+and TShark.  The versions of libraries and tools to download are
+specified by variables set early in the script; you can comment out the
+settings of optional libraries if you don't want them downloaded and
+installed.  Before running the tools/macos-setup.sh script, and before
+attempting to build Wireshark, make sure your PKG_CONFIG_PATH
+environment variable's setting includes /usr/local/lib/pkgconfig.
 
 The tools/macos-setup.sh script must be run from the top-level source
 directory.
 
-If you wish to build the legacy (GTK+) UI you must have X11 and the X11
-developer headers and libraries installed, as well as the Pango, ATK,
-and GTK+ libraries; otherwise, you will not be able to build or install
-GTK+.  The X11 and X11 SDK that come with macOS releases for releases
-from Panther to Lion can be used to build and run Wireshark.  Mountain
-Lion and later do not include X11; you should install X11 from
-elsewhere, such as
+After you have installed those libraries:
 
-       http://xquartz.macosforge.org/
+ 1. If you have installed Qt into some non-standard place, as is
+       distinctly possible with the build included with
+       macos-setup.sh, you must inform cmake by either including its
+       "bin" directory as part of the PATH environment variable or
+       setting CMAKE_PREFIX_PATH to the directory above Qt's "lib"
+       directory.  For Qt 5.8 installed into one's home directory,
+       for instance:
 
-After you have installed those libraries:
+       % export CMAKE_PREFIX_PATH=~/Qt5.8.0/5.8/clang_64
 
-If you are building from a Git tree, rather than from a source
-distribution tarball, run the autogen.sh script.  This should not be
-necessary if you're building from a source distribution tarball, unless
-you've added new source files to the Wireshark source.
+       This step is unnecessary if you've used a recent version of
+       Homebrew, as the CMake build scripts will find Qt.
 
-Then run the configure script, and run make to build Wireshark.
+ 2. Make a directory in which Wireshark is to be built, separate
+       from the top-level source directory for Wireshark - it can be a
+       subdirectory of that top-level source directory;
 
-If you upgrade the major release of macOS on which you are building
-Wireshark, we advise that, before you do any builds after the upgrade,
-you do, in the build directory:
+ 3. cd to that directory, and run CMake, with an argument that is a
+       path to the top-level source directory;
+
+ 4. When CMake finishes, run make to build Wireshark.
+
+For example, to build Wireshark in a subdirectory of the top-level
+source directory, named "build", do, from the top-level source
+directory;
+
+       mkdir build
+       cd build
+       cmake ..
+       make
 
-    If you are building from a release tarball:
-       make distclean
+It is also possible to use the Xcode IDE to build and debug Wireshark
+using cmake's Xcode generator. Create a separate build directory, as 
+described above and run cmake with the "-G Xcode" argument to create 
+a Xcode project file in the current directory.
 
-    If you are building from Git:
-       make maintainer-clean
-       ./autogen.sh
+       cmake -G Xcode ..
 
-Then re-run the configure script and rebuild from scratch.
+ 1. Double click Wireshark.xcodeproj 
+
+ 2. Choose to create schemes manually
+
+ 3. Create a scheme for the ALL_BUILD target
+
+ 4. Edit the scheme, go to the run configuration and select Wireshark.app 
+  as executable
+
+If you upgrade the major release of macOS on which you are building
+Wireshark, we advise that, before you do any builds after the upgrade,
+you remove the build directory and all its subdiretories, and repeat the
+above process, re-running CMake and rebuilding from scratch.
 
 On Snow Leopard (10.6) and later releases, if you are building on a
 machine with a 64-bit processor (with the exception of the early Intel
@@ -95,12 +122,6 @@ replace all occurrences of "libiconv_open" with "iconv_open" in the
 configure script before running the script.  The tools/macos-setup.sh
 setup script will patch GLib to work around this.
 
-GTK+ - GTK+ 2.24.10, at least, doesn't build on Mountain Lion with the
-CUPS printing backend - either the CUPS API changed incompatibly or the
-backend was depending on non-API implementation details.  The
-tools/macos-setup.sh setup script will, on Mountain Lion and later,
-configure GTK+ with the CUPS printing backend disabled.
-
 libgcrypt - the libgcrypt configuration script attempts to determine
 which flavor of assembler-language routines to use based on the platform
 type determined by standard autoconf code.  That code uses uname to
@@ -112,23 +133,6 @@ is to run the configure script with the --disable-asm argument, so that
 the assembler-language routines are not used.  The tools/macos-setup.sh
 will configure libgcrypt with that option.
 
-PortAudio - when compiling on macOS, the configure script for the
-pa_stable_v19_20071207 version of PortAudio will cause certain
-platform-dependent build environment #defines to be set in the Makefile
-rules, and to cause a universal build to be done; those #defines will be
-incorrect for all but one of the architectures for which the build is
-being done, and that will cause a compile-time error on Snow Leopard.
-Newer versions don't have this problem, but still fail to build on Lion
-if a universal build is attempted.  The tools/macos-setup.sh script
-downloads a newer version, and also suppresses the universal build.
-
-GeoIP - Their man pages "helpfully" have an ISO 8859-1 copyright symbol
-in the copyright notice, but macOS's default character encoding is
-UTF-8.  sed on Mountain Lion barfs at the "illegal character sequence"
-represented by an ISO 8859-1 copyright symbol, as it's not a valid UTF-8
-sequence.  The tools/macos-setup.sh script uses iconv to convert the man
-page files from ISO 8859-1 to UTF-8.
-
 If you want to build Wireshark installer packages on a system that
 doesn't include Xcode 3.x or earlier, you will need to install some
 additional tools.  From the Xcode menu, select the Open Developer Tool