aboutsummaryrefslogtreecommitdiffstats
path: root/googlemock/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'googlemock/README.md')
-rw-r--r--googlemock/README.md47
1 files changed, 40 insertions, 7 deletions
diff --git a/googlemock/README.md b/googlemock/README.md
index 7b13a6d3..f941f158 100644
--- a/googlemock/README.md
+++ b/googlemock/README.md
@@ -35,7 +35,7 @@ We hope you find it useful!
* Does automatic verification of expectations (no record-and-replay needed).
* Allows arbitrary (partial) ordering constraints on
function calls to be expressed,.
- * Lets a user extend it by defining new matchers and actions.
+ * Lets an user extend it by defining new matchers and actions.
* Does not use exceptions.
* Is easy to learn and use.
@@ -78,7 +78,7 @@ posting a question on the
Google Mock is not a testing framework itself. Instead, it needs a
testing framework for writing tests. Google Mock works seamlessly
-with [Google Test](http://code.google.com/p/googletest/), but
+with [Google Test](https://github.com/google/googletest), but
you can also use it with [any C++ testing framework](../../master/googlemock/docs/ForDummies.md#using-google-mock-with-any-testing-framework).
### Requirements for End Users ###
@@ -125,13 +125,46 @@ build Google Mock and its tests, which has further requirements:
### Building Google Mock ###
+#### Using CMake ####
+
If you have CMake available, it is recommended that you follow the
[build instructions][gtest_cmakebuild]
-as described for Google Test. If are using Google Mock with an
+as described for Google Test.
+
+If are using Google Mock with an
existing CMake project, the section
[Incorporating Into An Existing CMake Project][gtest_incorpcmake]
-may be of particular interest. Otherwise, the following sections
-detail how to build Google Mock without CMake.
+may be of particular interest.
+To make it work for Google Mock you will need to change
+
+ target_link_libraries(example gtest_main)
+
+to
+
+ target_link_libraries(example gmock_main)
+
+This works because `gmock_main` library is compiled with Google Test.
+However, it does not automatically add Google Test includes.
+Therefore you will also have to change
+
+ if (CMAKE_VERSION VERSION_LESS 2.8.11)
+ include_directories("${gtest_SOURCE_DIR}/include")
+ endif()
+
+to
+
+ if (CMAKE_VERSION VERSION_LESS 2.8.11)
+ include_directories(BEFORE SYSTEM
+ "${gtest_SOURCE_DIR}/include" "${gmock_SOURCE_DIR}/include")
+ else()
+ target_include_directories(gmock_main SYSTEM BEFORE INTERFACE
+ "${gtest_SOURCE_DIR}/include" "${gmock_SOURCE_DIR}/include")
+ endif()
+
+This will addtionally mark Google Mock includes as system, which will
+silence compiler warnings when compiling your tests using clang with
+`-Wpedantic -Wall -Wextra -Wconversion`.
+
#### Preparing to Build (Unix only) ####
@@ -300,8 +333,8 @@ may need to tweak your compiler and/or linker flags. Please see the
If you have custom matchers defined using `MatcherInterface` or
`MakePolymorphicMatcher()`, you'll need to update their definitions to
use the new matcher API (
-[monomorphic](http://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Monomorphic_Matchers),
-[polymorphic](http://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Polymorphic_Matchers)).
+[monomorphic](./docs/CookBook.md#writing-new-monomorphic-matchers),
+[polymorphic](./docs/CookBook.md#writing-new-polymorphic-matchers)).
Matchers defined using `MATCHER()` or `MATCHER_P*()` aren't affected.
### Developing Google Mock ###