Commit 073929991e6346becadfc1c4ac116b97f4b95710

Authored by Geoffrey Hunter
1 parent 94d8333d

Added gtest as a CMake external project.

.travis.yml
@@ -14,7 +14,6 @@ addons: @@ -14,7 +14,6 @@ addons:
14 install: 14 install:
15 - if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi 15 - if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi
16 - if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi 16 - if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi
17 - - sudo apt install libgtest-dev -y  
18 17
19 script: 18 script:
20 - ./tools/build.sh 19 - ./tools/build.sh
21 \ No newline at end of file 20 \ No newline at end of file
CMakeLists.txt
@@ -10,7 +10,41 @@ else () @@ -10,7 +10,41 @@ else ()
10 message("BUILD_TESTS=FALSE, unit tests will NOT be built.") 10 message("BUILD_TESTS=FALSE, unit tests will NOT be built.")
11 endif () 11 endif ()
12 12
  13 +#=================================================================================================#
  14 +#========================================= gtest INSTALL =========================================#
  15 +#=================================================================================================#
  16 +
  17 +# Download and unpack googletest at configure time
  18 +configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
  19 +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
  20 + RESULT_VARIABLE result
  21 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
  22 +if(result)
  23 + message(FATAL_ERROR "CMake step for googletest failed: ${result}")
  24 +endif()
  25 +execute_process(COMMAND ${CMAKE_COMMAND} --build .
  26 + RESULT_VARIABLE result
  27 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
  28 +if(result)
  29 + message(FATAL_ERROR "Build step for googletest failed: ${result}")
  30 +endif()
  31 +
  32 +# Prevent overriding the parent project's compiler/linker
  33 +# settings on Windows
  34 +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
13 35
  36 +# Add googletest directly to our build. This defines
  37 +# the gtest and gtest_main targets.
  38 +add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
  39 + ${CMAKE_BINARY_DIR}/googletest-build
  40 + EXCLUDE_FROM_ALL)
  41 +
  42 +# The gtest/gtest_main targets carry header search path
  43 +# dependencies automatically when using CMake 2.8.11 or
  44 +# later. Otherwise we have to add them here ourselves.
  45 +if (CMAKE_VERSION VERSION_LESS 2.8.11)
  46 + include_directories("${gtest_SOURCE_DIR}/include")
  47 +endif()
14 48
15 #=================================================================================================# 49 #=================================================================================================#
16 #========================================= This Project ==========================================# 50 #========================================= This Project ==========================================#
CMakeLists.txt.in 0 → 100644
  1 +cmake_minimum_required(VERSION 2.8.2)
  2 +
  3 +project(googletest-download NONE)
  4 +
  5 +include(ExternalProject)
  6 +ExternalProject_Add(googletest
  7 + GIT_REPOSITORY https://github.com/google/googletest.git
  8 + GIT_TAG master
  9 + SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
  10 + BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
  11 + CONFIGURE_COMMAND ""
  12 + BUILD_COMMAND ""
  13 + INSTALL_COMMAND ""
  14 + TEST_COMMAND ""
  15 +)
0 \ No newline at end of file 16 \ No newline at end of file
test/unit/CMakeLists.txt
@@ -10,8 +10,8 @@ @@ -10,8 +10,8 @@
10 10
11 enable_testing() 11 enable_testing()
12 find_package (Threads) 12 find_package (Threads)
13 -find_package(GTest REQUIRED)  
14 -message("gtest libraries found at ${GTEST_BOTH_LIBRARIES}") 13 +#find_package(GTest REQUIRED)
  14 +#message("gtest libraries found at ${GTEST_BOTH_LIBRARIES}")
15 15
16 file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC 16 file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC
17 "*.cpp" 17 "*.cpp"
@@ -21,7 +21,7 @@ file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC @@ -21,7 +21,7 @@ file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC
21 21
22 add_executable(CppLinuxSerialUnitTests ${CppLinuxSerialUnitTests_SRC}) 22 add_executable(CppLinuxSerialUnitTests ${CppLinuxSerialUnitTests_SRC})
23 23
24 -target_link_libraries(CppLinuxSerialUnitTests LINK_PUBLIC CppLinuxSerial ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) 24 +target_link_libraries(CppLinuxSerialUnitTests LINK_PUBLIC CppLinuxSerial gtest_main ${CMAKE_THREAD_LIBS_INIT})
25 25
26 # The custom target and custom command below allow the unit tests 26 # The custom target and custom command below allow the unit tests
27 # to be run. 27 # to be run.