mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Adds a `@NoDiscard` annotation that can be placed on methods to guarantee their return values are used and on types to guarantee that any method returning that type uses the return value.
Methods that call `@NoDiscard`-annotated functions can add a `@SuppressWarnings("NoDiscard")` or `@SuppressWarnings("all")` annotation (or annotation on the class declaring that method) to silence the compiler error warnings.
99 lines
3.2 KiB
CMake
99 lines
3.2 KiB
CMake
project(wpilibNewCommands)
|
|
|
|
include(SubDirList)
|
|
include(CompileWarnings)
|
|
include(AddTest)
|
|
|
|
if(WITH_JAVA)
|
|
include(UseJava)
|
|
|
|
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java src/generated/main/java/*.java)
|
|
file(GLOB JACKSON_JARS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/jackson/*.jar")
|
|
add_jar(
|
|
wpilibNewCommands_jar
|
|
${JAVA_SOURCES}
|
|
INCLUDE_JARS
|
|
hal_jar
|
|
ntcore_jar
|
|
${JACKSON_JARS}
|
|
cscore_jar
|
|
cameraserver_jar
|
|
wpimath_jar
|
|
wpiunits_jar
|
|
wpiutil_jar
|
|
wpilibj_jar
|
|
wpiannotations_jar
|
|
OUTPUT_NAME wpilibNewCommands
|
|
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
|
)
|
|
set_property(TARGET wpilibNewCommands_jar PROPERTY FOLDER "java")
|
|
|
|
install_jar(wpilibNewCommands_jar DESTINATION ${java_lib_dest})
|
|
install_jar_exports(
|
|
TARGETS wpilibNewCommands_jar
|
|
FILE wpilibNewCommands_jar.cmake
|
|
DESTINATION share/wpilibNewCommands
|
|
)
|
|
endif()
|
|
|
|
if(WITH_JAVA_SOURCE)
|
|
include(UseJava)
|
|
include(CreateSourceJar)
|
|
add_source_jar(
|
|
wpilibNewCommands_src_jar
|
|
BASE_DIRECTORIES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/main/java
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/java
|
|
OUTPUT_NAME wpilibNewCommands-sources
|
|
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
|
|
)
|
|
set_property(TARGET wpilibNewCommands_src_jar PROPERTY FOLDER "java")
|
|
|
|
install_jar(wpilibNewCommands_src_jar DESTINATION ${java_lib_dest})
|
|
endif()
|
|
|
|
file(
|
|
GLOB_RECURSE wpilibNewCommands_native_src
|
|
src/main/native/cpp/*.cpp
|
|
src/generated/main/native/cpp/*.cpp
|
|
)
|
|
add_library(wpilibNewCommands ${wpilibNewCommands_native_src})
|
|
set_target_properties(wpilibNewCommands PROPERTIES DEBUG_POSTFIX "d")
|
|
set_property(TARGET wpilibNewCommands PROPERTY FOLDER "libraries")
|
|
|
|
target_compile_features(wpilibNewCommands PUBLIC cxx_std_20)
|
|
wpilib_target_warnings(wpilibNewCommands)
|
|
target_link_libraries(wpilibNewCommands wpilibc)
|
|
|
|
target_include_directories(
|
|
wpilibNewCommands
|
|
PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/main/native/include>
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/native/include>
|
|
$<INSTALL_INTERFACE:${include_dest}/wpilibNewCommands>
|
|
)
|
|
|
|
install(TARGETS wpilibNewCommands EXPORT wpilibnewcommands)
|
|
export(TARGETS wpilibNewCommands FILE wpilibnewcommands.cmake NAMESPACE wpilibnewcommands::)
|
|
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpilibNewCommands")
|
|
install(
|
|
DIRECTORY src/generated/main/native/include/
|
|
DESTINATION "${include_dest}/wpilibNewCommands"
|
|
)
|
|
|
|
configure_file(
|
|
wpilibnewcommands-config.cmake.in
|
|
${WPILIB_BINARY_DIR}/wpilibnewcommands-config.cmake
|
|
)
|
|
install(
|
|
FILES ${WPILIB_BINARY_DIR}/wpilibnewcommands-config.cmake
|
|
DESTINATION share/wpilibNewCommands
|
|
)
|
|
install(EXPORT wpilibnewcommands DESTINATION share/wpilibNewCommands)
|
|
|
|
if(WITH_TESTS)
|
|
wpilib_add_test(wpilibNewCommands src/test/native/cpp)
|
|
target_include_directories(wpilibNewCommands_test PRIVATE src/test/native/include)
|
|
target_link_libraries(wpilibNewCommands_test wpilibNewCommands googletest)
|
|
endif()
|