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,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. |