summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorRobert Carr <robert.carr@canonical.com>2014-09-18 09:30:05 -0700
committerRobert Carr <robert.carr@canonical.com>2014-09-18 09:30:05 -0700
commitb8441b17d75aa9698feb1bf0830d19464ee8dfec (patch)
tree6c513ce917ceaf02bc880cfc529baf2b5a6f5058 /cmake
parente09a9c1f8f12ec831fd41ca716ab9e7c68746a3e (diff)
parent23367f8b24e0dbab8cfbfa117c9b5343c8cbced3 (diff)
rm -rf qmake
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindGtest.cmake53
1 files changed, 53 insertions, 0 deletions
diff --git a/cmake/modules/FindGtest.cmake b/cmake/modules/FindGtest.cmake
new file mode 100644
index 0000000..c249b02
--- /dev/null
+++ b/cmake/modules/FindGtest.cmake
@@ -0,0 +1,53 @@
+include(ExternalProject)
+include(FindPackageHandleStandardArgs)
+
+#gtest
+set(GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)
+find_path(GTEST_INCLUDE_DIR gtest/gtest.h
+ HINTS ${GTEST_INSTALL_DIR})
+
+#gmock
+find_path(GMOCK_INSTALL_DIR gmock/CMakeLists.txt
+ HINTS /usr/src)
+if(${GMOCK_INSTALL_DIR} STREQUAL "GMOCK_INSTALL_DIR-NOTFOUND")
+ message(FATAL_ERROR "google-mock package not found")
+endif()
+
+set(GMOCK_INSTALL_DIR ${GMOCK_INSTALL_DIR}/gmock)
+find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
+
+set(GMOCK_PREFIX gmock)
+set(GMOCK_BINARY_DIR ${CMAKE_BINARY_DIR}/${GMOCK_PREFIX}/libs)
+set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
+
+set(GTEST_CMAKE_ARGS "")
+if (${CMAKE_CROSSCOMPILING})
+ set(GTEST_CMAKE_ARGS
+ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_MODULE_PATH}/LinuxCrossCompile.cmake)
+endif()
+
+ExternalProject_Add(
+ GMock
+ #where to build in source tree
+ PREFIX ${GMOCK_PREFIX}
+ #where the source is external to the project
+ SOURCE_DIR ${GMOCK_INSTALL_DIR}
+ #forward the compilers to the subproject so cross-arch builds work
+ CMAKE_ARGS ${GTEST_CMAKE_ARGS}
+ BINARY_DIR ${GMOCK_BINARY_DIR}
+
+ #we don't need to install, so skip
+ INSTALL_COMMAND ""
+)
+
+set(GMOCK_LIBRARY ${GMOCK_BINARY_DIR}/libgmock.a)
+set(GMOCK_MAIN_LIBRARY ${GMOCK_BINARY_DIR}/libgmock_main.a)
+set(GMOCK_BOTH_LIBRARIES ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY})
+set(GTEST_LIBRARY ${GTEST_BINARY_DIR}/libgtest.a)
+set(GTEST_MAIN_LIBRARY ${GTEST_BINARY_DIR}/libgtest_main.a)
+set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
+set(GTEST_ALL_LIBRARIES ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
+
+find_package_handle_standard_args(GTest DEFAULT_MSG
+ GMOCK_INCLUDE_DIR
+ GTEST_INCLUDE_DIR)