Project

General

Profile

Installing Wt on Mac OS X Yosemite » History » Version 4

Kevin Patterson, 03/06/2015 05:44 PM

1 1 Kevin Patterson
h1. Installing Wt on Mac OS X Yosemite (macosx 10.10)
2
3
{{toc}}
4
5 2 Kevin Patterson
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.
6 1 Kevin Patterson
7
h2. Requirements 
8
9
* Get Xcode from the Apple App Store
10
* Install the Xcode Command-Line Tools from within Xcode or from the command-line
11
* Install "Homebrew":http://brew.sh
12
13
h2. Preparation 
14
15
h3. Install Dependencies
16
17 2 Kevin Patterson
This guide relies on the excellent "Homebrew":http://brew.sh 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.
18 1 Kevin Patterson
19 3 Kevin Patterson
For this guide, we we be enabling the following features:
20 1 Kevin Patterson
* HTTPS (SSL)
21
* FastCGI
22
* MySQL
23 4 Kevin Patterson
* Graphics drawing and PDF Generation
24 1 Kevin Patterson
25
If you haven't installed Homebrew already, it's very easy to do using the following command in Terminal:
26
<pre>
27
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
28
</pre>
29
30
With Homebrew installed, let's install the base dependencies for Wt:
31
<pre>
32
$ brew install cmake
33
$ brew install boost
34
</pre>
35
36
If you want FastCGI support:
37
<pre>
38
$ brew install fcgi
39
</pre>
40
41
If you want SSL (HTTPS) support in Wt's built-in web server:
42
<pre>
43
$ brew install openssl
44
</pre>
45
46
Support for MySQL:
47
<pre>
48
$ brew install mysql-connector-c
49
</pre>
50
51 4 Kevin Patterson
Graphics drawing and PDF generation support:
52 1 Kevin Patterson
<pre>
53
$ brew install libpng
54
$ brew install libtiff
55
$ brew install libharu
56
$ brew install pango
57 4 Kevin Patterson
$ brew install GraphicsMagick
58 1 Kevin Patterson
</pre>
59
60
*NOTE: Homebrew detects existing packages on your system, and be 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.*
61
62
h2. Building Wt 
63
64
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:
65
<pre>
66
$ git clone git://github.com/kdeforche/wt.git
67
</pre>
68
69
To build Wt, do the following:
70
71
<pre>
72
$ cd wt
73
$ mkdir build
74
$ cd build
75
$ cmake \
76
     -DSSL_PREFIX=/usr/local/Cellar/openssl/1.0.2 \
77
     -DMYSQL_LIBRARY=mysqlclient -DMYSQL_PREFIX=/usr/local/Cellar/mysql-connector-c/6.1.3 \
78
     -DWT_WRASTERIMAGE_IMPLEMENTATION=GraphicsMagick -DGM_PREFIX=/usr/local \
79
     -DCMAKE_CXX_FLAGS='-stdlib=libc++' -DCMAKE_EXE_LINKER_FLAGS='-stdlib=libc++' -DCMAKE_MODULE_LINKER_FLAGS='-stdlib=libc++' -DWT_CPP_11_MODE='-std=c++11' \
80
     ../
81
$ make
82
$ make -C examples # to build the examples
83
$ sudo make install
84
</pre>
85
86
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.
87
88
If you know how to get Wt's OpenGL support built under macosx, please contact me at _kevpatt~at~khptech.com_
89
90
h2.
91
92
To run the examples, please see the "generic installation instructions":http://www.webtoolkit.eu/wt/doc/reference/html/InstallationUnix.html#examples.
93
94
Here's how to compile and run the "Hello World" sample application from the "Wt Online Tutorial":http://www.webtoolkit.eu/wt/doc/tutorial/wt.html
95
96
Assuming the code for "Hello World" has been saved in source file named "hello.cc":
97
<pre>
98
$ c++ -o hello hello.cc -lwthttp -lwt -I/usr/local/include -L/usr/local/lib
99
$ ./hello --docroot . --http-address 0.0.0.0 --http-port 9090
100
</pre>