mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
To reduce the need for users to manually perform unit conversions, this allows Measure objects from wpiunits to be passed into most places in wpimath that currently expect doubles in terms of SI units like meters. For example, users would need to know that unit conversion is required - and what the correct units are. Using units would be more difficult to write code for than just hardcoding a value or using Units.inchesToMeters. Now, using units has no more developer overhead than using raw numbers.
74 lines
3.1 KiB
CMake
74 lines
3.1 KiB
CMake
project(wpilibNewCommands)
|
|
|
|
include(SubDirList)
|
|
include(CompileWarnings)
|
|
include(AddTest)
|
|
|
|
if (WITH_JAVA)
|
|
find_package(Java REQUIRED)
|
|
include(UseJava)
|
|
set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked")
|
|
|
|
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
|
add_jar(wpilibNewCommands_jar ${JAVA_SOURCES} INCLUDE_JARS hal_jar ntcore_jar cscore_jar cameraserver_jar wpimath_jar wpiunits_jar wpiutil_jar wpilibj_jar OUTPUT_NAME wpilibNewCommands)
|
|
|
|
get_property(WPILIBNEWCOMMANDS_JAR_FILE TARGET wpilibNewCommands_jar PROPERTY JAR_FILE)
|
|
install(FILES ${WPILIBNEWCOMMANDS_JAR_FILE} DESTINATION "${java_lib_dest}")
|
|
|
|
set_property(TARGET wpilibNewCommands_jar PROPERTY FOLDER "java")
|
|
|
|
if (WITH_FLAT_INSTALL)
|
|
set (wpilibNewCommands_config_dir ${wpilib_dest})
|
|
else()
|
|
set (wpilibNewCommands_config_dir share/wpilibNewCommands)
|
|
endif()
|
|
endif()
|
|
|
|
if (WITH_JAVA_SOURCE)
|
|
find_package(Java REQUIRED)
|
|
include(UseJava)
|
|
file(GLOB WPILIBNEWCOMMANDS_SOURCES src/main/java/edu/wpi/first/wpilibj2/command/*.java)
|
|
file(GLOB WPILIBNEWCOMMANDS_BUTTON_SOURCES src/main/java/edu/wpi/first/wpilibj2/command/button*.java)
|
|
add_jar(wpilibNewCommands_src_jar
|
|
RESOURCES NAMESPACE "edu/wpi/first/wpilibj2/command" ${WPILIBNEWCOMMANDS_SOURCES}
|
|
NAMESPACE "edu/wpi/first/wpilibj2/command/button" ${WPILIBNEWCOMMANDS_BUTTON_SOURCES}
|
|
OUTPUT_NAME wpilibNewCommands-sources)
|
|
|
|
get_property(WPILIBNEWCOMMANDS_SRC_JAR_FILE TARGET wpilibNewCommands_src_jar PROPERTY JAR_FILE)
|
|
install(FILES ${WPILIBNEWCOMMANDS_SRC_JAR_FILE} DESTINATION "${java_lib_dest}")
|
|
|
|
set_property(TARGET wpilibNewCommands_src_jar PROPERTY FOLDER "java")
|
|
endif()
|
|
|
|
file(GLOB_RECURSE wpilibNewCommands_native_src src/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>
|
|
$<INSTALL_INTERFACE:${include_dest}/wpilibNewCommands>)
|
|
|
|
install(TARGETS wpilibNewCommands EXPORT wpilibNewCommands)
|
|
install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpilibNewCommands")
|
|
|
|
if (FLAT_INSTALL_WPILIB)
|
|
set(wpilibNewCommands_config_dir ${wpilib_dest})
|
|
else()
|
|
set(wpilibNewCommands_config_dir share/wpilibNewCommands)
|
|
endif()
|
|
|
|
configure_file(wpilibNewCommands-config.cmake.in ${WPILIB_BINARY_DIR}/wpilibNewCommands-config.cmake)
|
|
install(FILES ${WPILIB_BINARY_DIR}/wpilibNewCommands-config.cmake DESTINATION ${wpilibNewCommands_config_dir})
|
|
install(EXPORT wpilibNewCommands DESTINATION ${wpilibNewCommands_config_dir})
|
|
|
|
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 gmock_main)
|
|
endif()
|