diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..7e14f2b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "googletest"] + path = googletest + url = https://github.com/smarr/googletest.git diff --git a/CMakeLists.txt b/CMakeLists.txt index a78a701..2b27793 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,9 +137,11 @@ install( ENABLE_TESTING() ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(src) -ADD_SUBDIRECTORY(tests) ADD_SUBDIRECTORY(examples) +ADD_SUBDIRECTORY(googletest) +ADD_SUBDIRECTORY(tests) + # Add all targets to the build-tree export set EXPORT( TARGETS tins diff --git a/googletest b/googletest new file mode 160000 index 0000000..2ccb249 --- /dev/null +++ b/googletest @@ -0,0 +1 @@ +Subproject commit 2ccb2496fef815a1c18fcbc79c178f6cb4b5f982 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9b20d87..930e530 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,7 +1,12 @@ -FIND_PACKAGE(GTest) +IF(gtest_BINARY_DIR) + MESSAGE(STATUS "Using googletest submodule") + SET(GTEST_FOUND true) +ELSE() + FIND_PACKAGE(GTest) +ENDIF() IF(GTEST_FOUND) - INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIRS}) + INCLUDE_DIRECTORIES(${gtest_INCLUDE_DIRS}) ADD_SUBDIRECTORY(src) ELSE(GTEST_FOUND) - MESSAGE(WARNING "Google test not found. Disabling tests.") + MESSAGE(WARNING "Google test not found. Tests disabled.") ENDIF(GTEST_FOUND) diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index 5219800..6081d02 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -1,14 +1,22 @@ # Use libtins' include directories + test include directories -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include/tins/ ../include/) +INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/include/tins/ + ../include/ + ${gtest_SOURCE_DIR}/include +) # Find pthread library FIND_PACKAGE(Threads REQUIRED) +LINK_DIRECTORIES( + ${gtest_BINARY_DIR} + +) # Link against GoogleTest, libtins and pthread. # Pthread is required by GoogleTest LINK_LIBRARIES( - ${GTEST_LIBRARIES} - ${GTEST_MAIN_LIBRARY} + gtest + gtest_main tins ${CMAKE_THREAD_LIBS_INIT} )