Commit 073929991e6346becadfc1c4ac116b97f4b95710
1 parent
94d8333d
Added gtest as a CMake external project.
Showing
4 changed files
with
52 additions
and
4 deletions
.travis.yml
| ... | ... | @@ -14,7 +14,6 @@ addons: |
| 14 | 14 | install: |
| 15 | 15 | - if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi |
| 16 | 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 | 18 | script: |
| 20 | 19 | - ./tools/build.sh |
| 21 | 20 | \ No newline at end of file | ... | ... |
CMakeLists.txt
| ... | ... | @@ -10,7 +10,41 @@ else () |
| 10 | 10 | message("BUILD_TESTS=FALSE, unit tests will NOT be built.") |
| 11 | 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 | 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 | 16 | \ No newline at end of file | ... | ... |
test/unit/CMakeLists.txt
| ... | ... | @@ -10,8 +10,8 @@ |
| 10 | 10 | |
| 11 | 11 | enable_testing() |
| 12 | 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 | 16 | file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC |
| 17 | 17 | "*.cpp" |
| ... | ... | @@ -21,7 +21,7 @@ file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC |
| 21 | 21 | |
| 22 | 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 | 26 | # The custom target and custom command below allow the unit tests |
| 27 | 27 | # to be run. | ... | ... |