mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
This enables frc-docs to use RLIs for things that are currently in-line code blocks, and ensures they compile, which is important with the 2027 breaking changes coming. They are kept separate from the examples to ensure they don't polute the VSCode examples finder. Adds the Encoder snippets used in the frc-docs Encoder article as the first instance of this.
80 lines
2.8 KiB
CMake
80 lines
2.8 KiB
CMake
project(wpilibcExamples)
|
|
|
|
include(AddTest)
|
|
include(SubDirList)
|
|
|
|
subdir_list(TEMPLATES ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/main/cpp/templates)
|
|
subdir_list(EXAMPLES ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/main/cpp/examples)
|
|
subdir_list(SNIPPETS ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/main/cpp/snippets)
|
|
|
|
add_custom_target(wpilibcExamples)
|
|
add_custom_target(wpilibcExamples_test)
|
|
|
|
foreach(example ${EXAMPLES})
|
|
file(
|
|
GLOB_RECURSE sources
|
|
src/main/cpp/examples/${example}/cpp/*.cpp
|
|
src/main/cpp/examples/${example}/c/*.c
|
|
)
|
|
add_executable(${example} ${sources})
|
|
wpilib_target_warnings(${example})
|
|
target_include_directories(${example} PUBLIC src/main/cpp/examples/${example}/include)
|
|
target_link_libraries(
|
|
${example}
|
|
apriltag
|
|
wpilibc
|
|
wpilibNewCommands
|
|
romiVendordep
|
|
xrpVendordep
|
|
)
|
|
add_dependencies(wpilibcExamples ${example})
|
|
|
|
if(WITH_TESTS AND EXISTS ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/test/cpp/examples/${example})
|
|
wpilib_add_test(Example_${example} src/test/cpp/examples/${example}/cpp)
|
|
target_sources(Example_${example}_test PRIVATE ${sources})
|
|
target_include_directories(
|
|
Example_${example}_test
|
|
PRIVATE
|
|
src/main/cpp/examples/${example}/include
|
|
src/test/cpp/examples/${example}/include
|
|
)
|
|
target_compile_definitions(Example_${example}_test PUBLIC RUNNING_FRC_TESTS)
|
|
target_link_libraries(
|
|
Example_${example}_test
|
|
apriltag
|
|
wpilibc
|
|
wpilibNewCommands
|
|
romiVendordep
|
|
xrpVendordep
|
|
googletest
|
|
)
|
|
add_dependencies(wpilibcExamples_test Example_${example}_test)
|
|
endif()
|
|
endforeach()
|
|
|
|
foreach(template ${TEMPLATES})
|
|
file(
|
|
GLOB_RECURSE sources
|
|
src/main/cpp/templates/${template}/cpp/*.cpp
|
|
src/main/cpp/templates/${template}/c/*.c
|
|
)
|
|
add_executable(${template} ${sources})
|
|
wpilib_target_warnings(${template})
|
|
target_include_directories(${template} PUBLIC src/main/cpp/templates/${template}/include)
|
|
target_link_libraries(${template} wpilibc wpilibNewCommands romiVendordep xrpVendordep)
|
|
add_dependencies(wpilibcExamples ${template})
|
|
endforeach()
|
|
|
|
foreach(snippet ${SNIPPETS})
|
|
file(
|
|
GLOB_RECURSE sources
|
|
src/main/cpp/snippets/${snippet}/cpp/*.cpp
|
|
src/main/cpp/snippets/${snippet}/c/*.c
|
|
)
|
|
add_executable(snippet${snippet} ${sources})
|
|
wpilib_target_warnings(${snippet})
|
|
target_include_directories(snippet${snippet} PUBLIC src/main/cpp/snippets/${snippet}/include)
|
|
target_link_libraries(snippet${snippet} wpilibc wpilibNewCommands romiVendordep xrpVendordep)
|
|
add_dependencies(wpilibcExamples snippet${snippet})
|
|
endforeach()
|