diff --git a/.travis.yml b/.travis.yml index 4ca73897..45af8511 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,9 @@ language: script: - mkdir build - cd build - - cmake .. + - cmake .. -DFTXUI_BUILD_TESTS=ON - cmake --build . + - ./tests --gtest_color=yes notifications: email: false diff --git a/CMakeLists.txt b/CMakeLists.txt index 4caa3434..c7c7f144 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,8 @@ project(ftxui ) option(FTXUI_BUILD_EXAMPLES "Set to ON to build examples" ON) -option(FTXUI_BUILD_TESTS "Set to ON to build tests" ON) option(FTXUI_ENABLE_INSTALL "Generate the install target" ON) +option(FTXUI_BUILD_TESTS "Set to ON to build tests" OFF) enable_testing() @@ -150,10 +150,28 @@ endif() export(TARGETS screen dom component NAMESPACE ftxui:: FILE ${PROJECT_BINARY_DIR}/ftxui-targets.cmake) -# Note: For gtest, please follow: -# https://stackoverflow.com/questions/24295876/cmake-cannot-find-a-googletest-required-library -find_package(GTest) -if (FTXUI_BUILD_TESTS AND GTEST_FOUND AND THREADS_FOUND) + +if (FTXUI_BUILD_TESTS AND ${CMAKE_VERSION} VERSION_GREATER "3.11.4") + set(FETCHCONTENT_UPDATES_DISCONNECTED TRUE) + include(FetchContent) + + FetchContent_Declare( + googletest + GIT_REPOSITORY "https://github.com/google/googletest" + GIT_TAG master + ) + + FetchContent_GetProperties(googletest) + if(NOT googletest_POPULATED) + message(STATUS "Fetching googletest...") + FetchContent_Populate(googletest) + message(STATUS "... done") + add_subdirectory( + ${googletest_SOURCE_DIR} + ${googletest_BINARY_DIR} + EXCLUDE_FROM_ALL) + endif() + add_executable(tests src/ftxui/component/toggle_test.cpp src/ftxui/component/radiobox_test.cpp @@ -167,15 +185,10 @@ if (FTXUI_BUILD_TESTS AND GTEST_FOUND AND THREADS_FOUND) target_link_libraries(tests PRIVATE component - PRIVATE Threads::Threads - PRIVATE ${GTEST_BOTH_LIBRARIES} + PRIVATE gtest gtest_main ) - target_include_directories(tests - PRIVATE ${GTest_INCLUDE_DIRS} - ) set_property(TARGET tests PROPERTY CXX_STANDARD 17) - gtest_discover_tests(tests) add_test(tests tests) endif() diff --git a/include/ftxui/component/receiver.hpp b/include/ftxui/component/receiver.hpp index 1d754451..e0ba5bb0 100644 --- a/include/ftxui/component/receiver.hpp +++ b/include/ftxui/component/receiver.hpp @@ -91,7 +91,6 @@ class ReceiverImpl { } void ReleaseSender() { - std::cerr << __func__ << std::endl; senders_--; notifier_.notify_one(); }