cmake_minimum_required(VERSION 3.13) # CMake version check if(ESP_PLATFORM) idf_component_register( SRC_DIRS "." INCLUDE_DIRS "." ) else() project(RoboidCOntrol) add_subdirectory(LinearAlgebra) set(CMAKE_CXX_STANDARD 17) # Enable c++11 standard set(CMAKE_POSITION_INDEPENDENT_CODE ON) add_compile_definitions(GTEST) include(FetchContent) FetchContent_Declare( googletest DOWNLOAD_EXTRACT_TIMESTAMP ON URL https://github.com/google/googletest/archive/refs/heads/main.zip ) # For Windows: Prevent overriding the parent project's compiler/linker settings set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) FetchContent_MakeAvailable(googletest) include_directories( . LinearAlgebra ) file(GLOB srcs *.cpp Things/*.cpp Messages/*.cpp Arduino/*.cpp Posix/*.cpp Windows/*.cpp ) add_library(RoboidControl STATIC ${srcs}) enable_testing() file(GLOB_RECURSE test_srcs test/*_test.cc) add_executable( RoboidControlTest ${test_srcs} ) target_link_libraries( RoboidControlTest gtest_main RoboidControl LinearAlgebra ) # if(MSVC) # target_compile_options(RoboidControlTest PRIVATE /W4 /WX) # # else() # # target_compile_options(RoboidControlTest PRIVATE -Wall -Wextra -Wpedantic -Werror) # endif() include(GoogleTest) gtest_discover_tests(RoboidControlTest) endif()