cmake_minimum_required(VERSION 3.13) # CMake version check if(ESP_PLATFORM) idf_component_register( SRC_DIRS "." INCLUDE_DIRS "." ) else() project(ControlCore) add_subdirectory(LinearAlgebra) set(CMAKE_CXX_STANDARD 11) # 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 ) add_library(ControlCore STATIC "Thing.cpp" "LowLevelMessages.cpp" "Messages.cpp" "Participant.cpp" "float16.cpp" ) enable_testing() file(GLOB_RECURSE test_srcs test/*_test.cc) add_executable( ControlCoreTest ${test_srcs} ) target_link_libraries( ControlCoreTest gtest_main ControlCore ) if(MSVC) target_compile_options(ControlCoreTest PRIVATE /W4 /WX) else() target_compile_options(ControlCoreTest PRIVATE -Wall -Wextra -Wpedantic -Werror) endif() include(GoogleTest) gtest_discover_tests(ControlCoreTest) endif()