Files
behavior-tree/core/CMakeLists.txt
T

25 lines
1.1 KiB
CMake

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)
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}")
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()