From: Christopher Dykes Date: Sat, 20 May 2017 03:57:10 +0000 (-0700) Subject: Fix the linking of various tests against GMock X-Git-Tag: v2017.05.22.00~3 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff_plain;h=b3e7df8220f410398011fea71b280ba8be459fcc 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 --- 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}