Installing Wt on Mac OS X Yosemite » History » Revision 17

Revision 16 (Kevin Patterson, 03/06/2015 06:09 PM) → Revision 17/26 (Kevin Patterson, 03/06/2015 06:10 PM)

h1. Installing Wt on Mac OS X Yosemite (macosx 10.10) 


 The following are installation instructions for installing Wt (from source) on OS X 10.10 "Yosemite", using Homebrew to install dependencies. The build toolchain on macosx Yosemite is based on CLang and libc++, and requires the installation of Xcode and the Xcode Command-Line tools. 

 h2. Requirements  

 * Xcode (free download from the Apple App Store) 
 * Xcode Command-Line Tools (installed from within Xcode or from the command line) 
 * "Homebrew": 

 h2. Preparation  

 h3. Get Homebrew 

 This guide relies on the excellent "Homebrew": package manager, which facilitates the fast and easy installation of many popular packages and their dependencies on macosx. We will use Homebrew to install the dependencies that Wt requires, as well as additional packages that enable optional features in Wt. 

 If you haven't installed Homebrew already, it's very easy to do using the following command in Terminal: 
 $ ruby -e "$(curl -fsSL" 

 h3. Install Base Dependencies 

 With Homebrew installed, let's install the base dependencies for Wt: 
 $ brew install cmake 
 $ brew install boost 

 h3. Install Additional Dependencies 

 For this guide, we we be enabling the following optional features in Wt: 
 * FastCGI 
 * MySQL 
 * Graphics drawing and PDF Generation 

 If you want FastCGI support: 
 $ brew install fcgi 

 If you want SSL (HTTPS) support in Wt's built-in web server: 
 $ brew install openssl 

 If you want support for MySQL: 
 $ brew install mysql-connector-c 

 If you want graphics drawing and PDF generation support: 
 $ brew install libpng 
 $ brew install libtiff 
 $ brew install libharu 
 $ brew install pango 
 $ brew install GraphicsMagick 

 *NOTE:* _Homebrew detects existing packages on your system, and by default will not overwrite existing packages when installing new ones. Please pay attention to the messages displayed during the brew process. Mac OS X includes a few packages that conflict (harmlessly) with some of the packages we are installing (e.g. OpenSSL). When an a package already exists on your system, Homebrew will place the new package in a different location, and notify you during the install. In the Wt configuration process, I have modified some of the library prefixes passed to cmake to point to these alternate locations for the affected libraries installed by brew._ 

 h3. Download Wt 

 At the time of this writing, you'll need to download the latest version of Wt using git, in order to support Boost version 1.57 installed by brew: 
 $ git clone git:// 

 h2. Building Wt  

 *NOTE:* _Please notice the lines related to MySQL, GraphicsMagick, GraphicsMagic, and OpenSSL passed to cmake below. Make sure the paths (and version numbers) match those reported by the brew installation of these packages on your system._ 

 To build Wt, do the following: 
 $ cd wt 
 $ mkdir build 
 $ cd build 
 $ cmake \ 
      -DCMAKE_CXX_FLAGS='-stdlib=libc++' -DCMAKE_EXE_LINKER_FLAGS='-stdlib=libc++' \ 
      -DCMAKE_MODULE_LINKER_FLAGS='-stdlib=libc++' -DWT_CPP_11_MODE='-std=c++11' \ 
      -DMYSQL_LIBRARY=mysqlclient -DMYSQL_PREFIX=/usr/local/Cellar/mysql-connector-c/6.1.3 \ 
      -DSSL_PREFIX=/usr/local/Cellar/openssl/1.0.2 \ 
 $ make 
 $ make -C examples # to build the examples 
 $ sudo make install 

 You may receive warnings that not all features will be built, but Wt doesn't require those. You can of course install other dependencies too using brew. 

 If you successfully enable other optional features in Wt, or if you know how to get Wt's OpenGL support built under macosx, please contact me at _kevpatt~at~khptech.com_ and/or consider updating this Wiki page. 

 h2. Running Examples 

 To run the examples, please see the "generic installation instructions": 

 Here's how to compile and run the "Hello World" sample application from the "Wt Online Tutorial": 

 Assuming the code for "Hello World" has been saved in source file named "": 
 $ c++ -o hello -lwthttp -lwt -I/usr/local/include -L/usr/local/lib 
 $ ./hello --docroot . --http-address --http-port 9090 

 Have fun!