cmake_minimum_required(VERSION 3.10)
project(sync_board_core LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

# 头文件
include_directories(
    sync_board_core/include
    third_party/mavlink
)

# 源文件
file(GLOB SRC_FILES
    sync_board_core/src/*.cpp
)

# 生成动态库
add_library(sync_board_core SHARED ${SRC_FILES})

target_link_libraries(sync_board_core pthread)

# 定义所有示例文件
set(EXAMPLE_SOURCES
    examples/first_start.cpp
    examples/flash_firmware.cpp
    examples/read_data.cpp
    examples/camera_control.cpp
    examples/time_source.cpp
)

# 批量创建可执行文件
foreach(example_source ${EXAMPLE_SOURCES})
    # 从文件路径提取文件名（不含扩展名）
    get_filename_component(example_name ${example_source} NAME_WE)
    
    # 创建可执行文件
    add_executable(${example_name} ${example_source})
    target_link_libraries(${example_name} sync_board_core)
    
    # 设置输出目录
    set_target_properties(${example_name} PROPERTIES
        RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/examples
    )
endforeach()
