summaryrefslogtreecommitdiff
path: root/test/libapt/CMakeLists.txt
blob: f3df14848db0b46358020f75db6b2a067373b00f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
set(GTEST_ROOT "/usr/src/gtest" CACHE FILEPATH "Path to GTest CMake project")

find_package(GTest)
set(GTEST_DEPENDENCIES)

if(NOT GTEST_FOUND AND EXISTS ${GTEST_ROOT})
   include(ExternalProject)
   ExternalProject_Add(gtest PREFIX ./gtest
                             SOURCE_DIR ${GTEST_ROOT}
                             INSTALL_COMMAND true)

   link_directories(${CMAKE_CURRENT_BINARY_DIR}/gtest/src/gtest-build)

   set(GTEST_LIBRARIES "-lgtest")
   set(GTEST_DEPENDENCIES "gtest")
   set(GTEST_FOUND TRUE)
   find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h)

   message(STATUS "Found GTest at ${GTEST_ROOT}, headers at ${GTEST_INCLUDE_DIRS}")
endif()

if(GTEST_FOUND)
   file(GLOB files gtest_runner.cc *-helpers.cc *_test.cc)
   add_executable(libapt_test ${files})
   target_include_directories(libapt_test PRIVATE ${GTEST_INCLUDE_DIRS})
   target_link_libraries(libapt_test ${GTEST_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} apt-private apt-inst)
   if (GTEST_DEPENDENCIES)
      add_dependencies(libapt_test ${GTEST_DEPENDENCIES})
   endif()
   add_test(NAME AptTests
            COMMAND libapt_test
            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif()