Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ install(EXPORT YatoTargets

option(YATO_BUILD_TESTS "Build unit tests" ON)
if(YATO_BUILD_TESTS)
enable_testing()
add_subdirectory(./tests)
endif()

Expand Down
30 changes: 14 additions & 16 deletions cmake/dependency.gtest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,28 @@
# Google test dependency
# https://github.com/google/googletest
#
# Output variables:
# GTEST_INCLUDE_DIR - includes
# GTEST_LIBRARY_DIR - link directories
# GTEST_LIBRARIES - link targets
# GMOCK_INCLUDE_DIR - includes
# Targets:
# gtest and gtest_main


include(${YATO_SOURCE_DIR}/cmake/dependency.common.functions.cmake)
if (TARGET gtest)
return()
endif()

macro(_gtest_fix_definitions _TARGET_NAME_)
if(TARGET ${_TARGET_NAME_})
target_compile_definitions(${_TARGET_NAME_} PRIVATE GTEST_LANG_CXX11=1 GTEST_HAS_TR1_TUPLE=0)
endif()
endmacro(_gtest_fix_definitions)

find_package(GTest CONFIG)
if (TARGET GTest::gtest)
add_library(gtest ALIAS GTest::gtest)
add_library(gtest_main ALIAS GTest::gtest_main)
return()
endif()

include(${YATO_SOURCE_DIR}/cmake/dependency.common.functions.cmake)

dependency_find_or_download(
NAME GTEST
VERBOSE_NAME "GoogleTest"
Expand Down Expand Up @@ -51,12 +58,3 @@ if(NOT TARGET gtest)
set_property(TARGET gtest PROPERTY FOLDER "Dependencies")
set_property(TARGET gtest_main PROPERTY FOLDER "Dependencies")
endif()

set(GTEST_INCLUDE_DIR ${GTEST_FOUND_ROOT}/googletest/include CACHE INTERNAL "")
set(GMOCK_INCLUDE_DIR ${GTEST_FOUND_ROOT}/googlemock/include CACHE INTERNAL "")
set(GTEST_LIBRARY_DIR "" CACHE INTERNAL "")
list(APPEND GTEST_LIBRARIES gtest)
list(APPEND GTEST_LIBRARIES gtest_main)
set(GTEST_LIBRARIES ${GTEST_LIBRARIES} CACHE INTERNAL "")


8 changes: 3 additions & 5 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ include(${YATO_SOURCE_DIR}/cmake/dependency.gtest.cmake)
#==========================================
# Sources

include_directories(${GTEST_INCLUDE_DIR})
include_directories(${YATO_INCLUDE_DIRS})

file(GLOB all_tests "${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/source/*.h")
Expand All @@ -33,9 +32,9 @@ source_group(TREE "${YATO_SOURCE_DIR}" FILES ${all_sources})
# Targets

add_definitions(-DYATO_ENABLE_TESTED_ASSERTIONS)
link_directories(${GTEST_LIBRARY_DIR})

add_executable(YatoTests ${all_sources})
target_link_libraries(YatoTests PRIVATE gtest_main)

set_property(TARGET YatoTests PROPERTY FOLDER "Tests")

Expand All @@ -45,6 +44,5 @@ _gtest_fix_definitions(YatoTests)
foreach(lib ${Yato_TEST_LIBS})
target_link_libraries(YatoTests ${lib})
endforeach()
foreach(lib ${GTEST_LIBRARIES})
target_link_libraries(YatoTests ${lib})
endforeach()

add_test(NAME "unit-tests" COMMAND "./YatoTests")