polysquare/yiqi — pull request #45 by smspillaz (2013-11-24 07:05:53+00:00)
Title: Add some basic multiplatform support and support for Mac OS X.

There were some important changes that needed to be made in order
to support these platforms.

1. Some versions of CMake are not compiled with HTTPS support in
libcurl, so we need to fetch gmock by HTTP.
2. Newer versions of gmock have moved StringMatchResultListener
out of the ::testing::internal namespace. Depending on this was
bad anyways, and it was trivial to re-implement inside the
source tree.
3. environ, pipe2 and others cannot be used on Darwin. A platform
abstraction for slightly divergent versions of sysv unix was
added in order to handle some of these differences and take
advantage of features on platforms that support certain
functionality (like O_CLOEXEC).
4. Valgrind is not supported on all operating systems. As such, we
cannot depend on Valgrind. This means that the list of tools
that yiqi can use needs to be autogenerated at built-time.
5. General source code cleanups where warranted (80-character lines,
spaces between identifiers and brackets, etc).
6. Some of the build process assumes that gtest/gtest.h was in the
system include path, but this isn't true on platforms where
gtest needs to be downloaded and built locally.