You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.2 KiB

cmake_minimum_required(VERSION 3.10)
get_filename_component(TARGET_NAME "${CMAKE_CURRENT_SOURCE_DIR}" NAME)
set(COMMON_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../library/CMakeLists.txt")
if(EXISTS ${COMMON_CMAKE_PATH})
include(${COMMON_CMAKE_PATH})
else()
message(FATAL_ERROR "Cannot find common build logic at ${COMMON_CMAKE_PATH}")
endif()
if(TARGET bspMCU)
target_link_libraries(${TARGET_NAME} PUBLIC bspMCU)
else()
message(FATAL_ERROR "[${TARGET_NAME}] Dependency 'bspMCU' not found.")
endif()
get_filename_component(ROBOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE)
file(GLOB PROJECT_DIRS LIST_DIRECTORIES true "${ROBOT_DIR}/project/*")
foreach(PROJ_DIR ${PROJECT_DIRS})
if(IS_DIRECTORY "${PROJ_DIR}")
get_filename_component(PROJ_NAME "${PROJ_DIR}" NAME)
string(TOUPPER "${PROJ_NAME}" PROJ_NAME_UPPER)
if(BUILD_${PROJ_NAME_UPPER})
set(PROTOBUF_PSOURCE "${PROJ_DIR}/Protobuf/PSource")
if(EXISTS "${PROTOBUF_PSOURCE}")
target_include_directories(${TARGET_NAME} PUBLIC "${PROTOBUF_PSOURCE}")
message(STATUS "[${TARGET_NAME}] Auto-detected protobuf include: ${PROTOBUF_PSOURCE}")
endif()
endif()
endif()
endforeach()