From b3e7df8220f410398011fea71b280ba8be459fcc Mon Sep 17 00:00:00 2001 From: Christopher Dykes Date: Fri, 19 May 2017 20:57:10 -0700 Subject: [PATCH] Fix the linking of various tests against GMock Summary: A define was needed to be able to link when built against a shared-library version of gmock and gtest. Reviewed By: yfeldblum Differential Revision: D5100409 fbshipit-source-id: 9a4c9df20f682a25edde642c451476b2d1e1ae22 --- CMake/FindGMock.cmake | 10 ++++++++-- CMakeLists.txt | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CMake/FindGMock.cmake b/CMake/FindGMock.cmake index d4f61525..9078c2c1 100755 --- a/CMake/FindGMock.cmake +++ b/CMake/FindGMock.cmake @@ -1,6 +1,7 @@ # # Find libgmock # +# LIBGMOCK_DEFINES - List of defines when using libgmock. # LIBGMOCK_INCLUDE_DIR - where to find gmock/gmock.h, etc. # LIBGMOCK_LIBRARY - List of libraries when using libgmock. # LIBGMOCK_FOUND - True if libgmock found. @@ -15,9 +16,14 @@ FIND_PATH(LIBGMOCK_INCLUDE_DIR gmock/gmock.h) FIND_LIBRARY(LIBGMOCK_LIBRARY gmock_main) +# There isn't currently an easy way to determine if a library was compiled as +# a shared library on Windows, so just assume we've been built against a shared +# build of gmock for now. +SET(LIBGMOCK_DEFINES "GTEST_LINKED_AS_SHARED_LIBRARY=1" CACHE STRING "") + # handle the QUIETLY and REQUIRED arguments and set LIBGMOCK_FOUND to TRUE if # all listed variables are TRUE INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBGMOCK DEFAULT_MSG LIBGMOCK_LIBRARY LIBGMOCK_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBGMOCK DEFAULT_MSG LIBGMOCK_DEFINES LIBGMOCK_LIBRARY LIBGMOCK_INCLUDE_DIR) -MARK_AS_ADVANCED(LIBGMOCK_LIBRARY LIBGMOCK_INCLUDE_DIR) +MARK_AS_ADVANCED(LIBGMOCK_DEFINES LIBGMOCK_LIBRARY LIBGMOCK_INCLUDE_DIR) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38886d65..c17760a2 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -263,6 +263,10 @@ if (BUILD_TESTS) ${FOLLY_DIR}/io/async/test/UndelayedDestruction.h ${FOLLY_DIR}/io/async/test/Util.h ) + target_compile_definitions(folly_test_support + PUBLIC + ${LIBGMOCK_DEFINES} + ) target_include_directories(folly_test_support PUBLIC ${LIBGMOCK_INCLUDE_DIR} -- 2.34.1