1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-04-19 01:04:16 +03:00
proxygen/cmake/ProxygenTest.cmake
Richard Barnes bf4a7a5abc use gmock 1.10 instead of 1.8
Summary: See D34622171 for details

Differential Revision: D34688142

fbshipit-source-id: ec0c3fdd92723629e0c484388b9ae24436780cf9
2022-03-07 20:03:35 -08:00

66 lines
1.9 KiB
CMake

# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
option(BUILD_TESTS "Enable tests" OFF)
include(CTest)
if(BUILD_TESTS)
find_package(GMock 1.10.0 MODULE REQUIRED)
find_package(GTest 1.10.0 MODULE REQUIRED)
endif()
function(proxygen_add_test)
if(NOT BUILD_TESTS)
return()
endif()
set(options)
set(one_value_args TARGET WORKING_DIRECTORY PREFIX)
set(multi_value_args SOURCES DEPENDS INCLUDES EXTRA_ARGS)
cmake_parse_arguments(PARSE_ARGV 0 PROXYGEN_TEST "${options}" "${one_value_args}" "${multi_value_args}")
if(NOT PROXYGEN_TEST_TARGET)
message(FATAL_ERROR "The TARGET parameter is mandatory.")
endif()
if(NOT PROXYGEN_TEST_SOURCES)
set(PROXYGEN_TEST_SOURCES "${PROXYGEN_TEST_TARGET}.cpp")
endif()
add_executable(${PROXYGEN_TEST_TARGET}
"${PROXYGEN_TEST_SOURCES}"
)
set_property(TARGET ${PROXYGEN_TEST_TARGET} PROPERTY ENABLE_EXPORTS true)
target_include_directories(${PROXYGEN_TEST_TARGET} PUBLIC
"${PROXYGEN_TEST_INCLUDES}"
${LIBGMOCK_INCLUDE_DIR}
${LIBGTEST_INCLUDE_DIRS}
)
target_compile_definitions(${PROXYGEN_TEST_TARGET} PUBLIC
${LIBGMOCK_DEFINES}
)
target_link_libraries(${PROXYGEN_TEST_TARGET} PUBLIC
"${PROXYGEN_TEST_DEPENDS}"
${LIBGMOCK_LIBRARIES}
${GLOG_LIBRARY}
)
target_compile_options(${PROXYGEN_TEST_TARGET} PRIVATE
"${_PROXYGEN_COMMON_COMPILE_OPTIONS}"
)
gtest_add_tests(TARGET ${PROXYGEN_TEST_TARGET}
EXTRA_ARGS "${PROXYGEN_TEST_EXTRA_ARGS}"
WORKING_DIRECTORY ${PROXYGEN_TEST_WORKING_DIRECTORY}
TEST_PREFIX ${PROXYGEN_TEST_PREFIX}
TEST_LIST PROXYGEN_TEST_CASES)
set_tests_properties(${PROXYGEN_TEST_CASES} PROPERTIES TIMEOUT 120)
endfunction()