mirror of
https://github.com/facebook/sapling.git
synced 2024-10-05 06:18:07 +03:00
bcad7419bf
Summary: Initial commit to include the fbcode_builder sources in the eden github repository. fbshipit-source-id: 49098cecda04a7e9dd9dcc0b569fffc96f0f719b
81 lines
2.6 KiB
CMake
81 lines
2.6 KiB
CMake
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
# Find libgmock
|
|
#
|
|
# LIBGMOCK_DEFINES - List of defines when using libgmock.
|
|
# LIBGMOCK_INCLUDE_DIR - where to find gmock/gmock.h, etc.
|
|
# LIBGMOCK_LIBRARIES - List of libraries when using libgmock.
|
|
# LIBGMOCK_FOUND - True if libgmock found.
|
|
|
|
IF (LIBGMOCK_INCLUDE_DIR)
|
|
# Already in cache, be silent
|
|
SET(LIBGMOCK_FIND_QUIETLY TRUE)
|
|
ENDIF ()
|
|
|
|
find_package(GTest CONFIG QUIET)
|
|
if (TARGET GTest::gmock)
|
|
get_target_property(LIBGMOCK_DEFINES GTest::gtest INTERFACE_COMPILE_DEFINITIONS)
|
|
if (NOT ${LIBGMOCK_DEFINES})
|
|
# Explicitly set to empty string if not found to avoid it being
|
|
# set to NOTFOUND and breaking compilation
|
|
set(LIBGMOCK_DEFINES "")
|
|
endif()
|
|
get_target_property(LIBGMOCK_INCLUDE_DIR GTest::gtest INTERFACE_INCLUDE_DIRECTORIES)
|
|
set(LIBGMOCK_LIBRARIES GTest::gmock_main GTest::gmock GTest::gtest)
|
|
set(LIBGMOCK_FOUND ON)
|
|
message(STATUS "Found gmock via config, defines=${LIBGMOCK_DEFINES}, include=${LIBGMOCK_INCLUDE_DIR}, libs=${LIBGMOCK_LIBRARIES}")
|
|
else()
|
|
|
|
FIND_PATH(LIBGMOCK_INCLUDE_DIR gmock/gmock.h)
|
|
|
|
FIND_LIBRARY(LIBGMOCK_MAIN_LIBRARY_DEBUG NAMES gmock_maind)
|
|
FIND_LIBRARY(LIBGMOCK_MAIN_LIBRARY_RELEASE NAMES gmock_main)
|
|
FIND_LIBRARY(LIBGMOCK_LIBRARY_DEBUG NAMES gmockd)
|
|
FIND_LIBRARY(LIBGMOCK_LIBRARY_RELEASE NAMES gmock)
|
|
FIND_LIBRARY(LIBGTEST_LIBRARY_DEBUG NAMES gtestd)
|
|
FIND_LIBRARY(LIBGTEST_LIBRARY_RELEASE NAMES gtest)
|
|
|
|
find_package(Threads REQUIRED)
|
|
INCLUDE(SelectLibraryConfigurations)
|
|
SELECT_LIBRARY_CONFIGURATIONS(LIBGMOCK_MAIN)
|
|
SELECT_LIBRARY_CONFIGURATIONS(LIBGMOCK)
|
|
SELECT_LIBRARY_CONFIGURATIONS(LIBGTEST)
|
|
|
|
set(LIBGMOCK_LIBRARIES
|
|
${LIBGMOCK_MAIN_LIBRARY}
|
|
${LIBGMOCK_LIBRARY}
|
|
${LIBGTEST_LIBRARY}
|
|
Threads::Threads
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
# The GTEST_LINKED_AS_SHARED_LIBRARY macro must be set properly on Windows.
|
|
#
|
|
# 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 "")
|
|
endif()
|
|
|
|
# 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(
|
|
GMock
|
|
DEFAULT_MSG
|
|
LIBGMOCK_MAIN_LIBRARY
|
|
LIBGMOCK_LIBRARY
|
|
LIBGTEST_LIBRARY
|
|
LIBGMOCK_LIBRARIES
|
|
LIBGMOCK_INCLUDE_DIR
|
|
)
|
|
|
|
MARK_AS_ADVANCED(
|
|
LIBGMOCK_DEFINES
|
|
LIBGMOCK_MAIN_LIBRARY
|
|
LIBGMOCK_LIBRARY
|
|
LIBGTEST_LIBRARY
|
|
LIBGMOCK_LIBRARIES
|
|
LIBGMOCK_INCLUDE_DIR
|
|
)
|
|
endif()
|