2026-09-20 12:18:52 +08:00
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
|
|
project(robot_bt_core LANGUAGES CXX)
|
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
add_library(robot_bt_core src/core.cpp src/workflow.cpp)
|
|
|
|
|
target_include_directories(robot_bt_core PUBLIC include)
|
|
|
|
|
target_compile_options(robot_bt_core PRIVATE -Wall -Wextra -Werror)
|
|
|
|
|
add_library(robot_bt_sim src/sim_driver.cpp)
|
|
|
|
|
target_link_libraries(robot_bt_sim PUBLIC robot_bt_core)
|
|
|
|
|
target_compile_options(robot_bt_sim PRIVATE -Wall -Wextra -Werror)
|
|
|
|
|
add_executable(robot_bt_demo examples/demo.cpp)
|
|
|
|
|
target_link_libraries(robot_bt_demo PRIVATE robot_bt_sim)
|
|
|
|
|
target_compile_options(robot_bt_demo PRIVATE -Wall -Wextra -Werror)
|
|
|
|
|
include(CTest)
|
|
|
|
|
if(BUILD_TESTING)
|
2026-09-20 13:36:48 +08:00
|
|
|
file(GLOB core_test_sources CONFIGURE_DEPENDS "tests/*_test.cpp")
|
|
|
|
|
foreach(test_source IN LISTS core_test_sources)
|
|
|
|
|
get_filename_component(test_name "${test_source}" NAME_WE)
|
|
|
|
|
add_executable(${test_name} "${test_source}")
|
2026-09-20 12:18:52 +08:00
|
|
|
target_link_libraries(${test_name} PRIVATE robot_bt_core)
|
|
|
|
|
target_compile_options(${test_name} PRIVATE -Wall -Wextra -Werror -UNDEBUG)
|
|
|
|
|
add_test(NAME ${test_name} COMMAND ${test_name})
|
|
|
|
|
endforeach()
|
|
|
|
|
endif()
|