cmake_minimum_required(VERSION 3.14) project({{PROJECT_NAME}}_tests LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # -------------------------------------------------------------------------- # Google Test (fetched automatically on first build) # -------------------------------------------------------------------------- include(FetchContent) FetchContent_Declare( googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG v1.14.0 ) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) FetchContent_MakeAvailable(googletest) enable_testing() # -------------------------------------------------------------------------- # Include paths -- same headers the Arduino sketch uses # -------------------------------------------------------------------------- set(LIB_DIR ${CMAKE_SOURCE_DIR}/../lib) include_directories( ${LIB_DIR}/hal ${LIB_DIR}/app ${CMAKE_SOURCE_DIR}/mocks ) # -------------------------------------------------------------------------- # Unit tests (Google Mock) # -------------------------------------------------------------------------- add_executable(test_unit test_unit.cpp ) target_link_libraries(test_unit GTest::gtest_main GTest::gmock ) # -------------------------------------------------------------------------- # Register with CTest # -------------------------------------------------------------------------- include(GoogleTest) gtest_discover_tests(test_unit)