function (add_gtest_test NAME EXENAME) if (GMX_USE_GTEST AND BUILD_TESTING) include_directories(${GTEST_INCLUDE_DIRS}) add_executable(${EXENAME} ${ARGN} ${TESTUTILS_DIR}/test_main_gtest.cpp) target_link_libraries(${EXENAME} libgromacs ${TESTUTILS_LIBS} ${GTEST_LIBRARIES}) get_target_property(DEFS ${EXENAME} COMPILE_DEFINITIONS) if (NOT DEFS) set(DEFS) endif () list(APPEND DEFS TEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}") set_target_properties(${EXENAME} PROPERTIES COMPILE_DEFINITIONS ${DEFS}) add_test(NAME ${NAME} COMMAND ${EXENAME}) endif () endfunction () function (add_gmock_test NAME EXENAME) if (GMX_USE_GMOCK AND BUILD_TESTING) include_directories(${GMOCK_INCLUDE_DIRS}) add_executable(${EXENAME} ${ARGN} ${TESTUTILS_DIR}/test_main_gmock.cpp) target_link_libraries(${EXENAME} libgromacs ${TESTUTILS_LIBS} ${GMOCK_LIBRARIES}) get_target_property(DEFS ${EXENAME} COMPILE_DEFINITIONS) if (NOT DEFS) set(DEFS) endif () list(APPEND DEFS TEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}") set_target_properties(${EXENAME} PROPERTIES COMPILE_DEFINITIONS ${DEFS}) add_test(NAME ${NAME} COMMAND ${EXENAME}) endif () endfunction () function (add_gtest_or_gmock_test NAME EXENAME) if (GMX_USE_GTEST AND BUILD_TESTING) set(_outvar GTEST_SOURCES) foreach(_source IN ITEMS ${ARGN}) if (_source STREQUAL GMOCK_ONLY) set(_outvar GMOCK_SOURCES) else () list(APPEND ${_outvar} ${_source}) endif () endforeach() if (GMX_USE_GMOCK) set(SOURCES ${GTEST_SOURCES} ${GMOCK_SOURCES}) add_gmock_test(${NAME} ${EXENAME} ${SOURCES}) else () add_gtest_test(${NAME} ${EXENAME} ${GTEST_SOURCES}) endif () endif () endfunction ()