mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-28 02:11:43 +00:00
Add EJML dependency to wpiutil (#1769)
Add EJML as the Java library for linear algebra for use in wpilib. This is equivalent to Eigen for C++. The EJML dependency is downloaded in cmake and pulled in via maven in the gradle build.
This commit is contained in:
@@ -97,6 +97,7 @@ ext {
|
||||
apply from: "${rootDir}/shared/opencv.gradle"
|
||||
|
||||
task generateJavaDocs(type: Javadoc) {
|
||||
classpath += project(":wpiutil").sourceSets.main.compileClasspath
|
||||
options.links("https://docs.oracle.com/en/java/javase/11/docs/api/")
|
||||
options.addStringOption "tag", "pre:a:Pre-Condition"
|
||||
options.addStringOption('Xdoclint:accessibility,html,missing,reference,syntax')
|
||||
|
||||
@@ -15,8 +15,9 @@ if (NOT WITHOUT_JAVA)
|
||||
configure_file(src/generate/WPILibVersion.java.in WPILibVersion.java)
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
file(GLOB EJML_JARS "${CMAKE_BINARY_DIR}/wpiutil/thirdparty/*.jar")
|
||||
|
||||
add_jar(wpilibj_jar ${JAVA_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/WPILibVersion.java INCLUDE_JARS hal_jar ntcore_jar ${OPENCV_JAR_FILE} cscore_jar cameraserver_jar wpiutil_jar OUTPUT_NAME wpilibj)
|
||||
add_jar(wpilibj_jar ${JAVA_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/WPILibVersion.java INCLUDE_JARS hal_jar ntcore_jar ${EJML_JARS} ${OPENCV_JAR_FILE} cscore_jar cameraserver_jar wpiutil_jar OUTPUT_NAME wpilibj)
|
||||
|
||||
get_property(WPILIBJ_JAR_FILE TARGET wpilibj_jar PROPERTY JAR_FILE)
|
||||
install(FILES ${WPILIBJ_JAR_FILE} DESTINATION "${java_lib_dest}")
|
||||
|
||||
@@ -11,10 +11,37 @@ if (NOT WITHOUT_JAVA)
|
||||
include(UseJava)
|
||||
set(CMAKE_JAVA_COMPILE_FLAGS "-Xlint:unchecked")
|
||||
|
||||
set(CMAKE_JAVA_INCLUDE_PATH wpiutil.jar)
|
||||
if(NOT EXISTS "${CMAKE_BINARY_DIR}/wpiutil/thirdparty/ejml-simple-0.38.jar")
|
||||
set(BASE_URL "https://search.maven.org/remotecontent?filepath=")
|
||||
set(JAR_ROOT "${CMAKE_BINARY_DIR}/wpiutil/thirdparty")
|
||||
|
||||
message(STATUS "Downloading EJML jarfiles...")
|
||||
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-cdense/0.38/ejml-cdense-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-cdense-0.38.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-core/0.38/ejml-core-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-core-0.38.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-ddense/0.38/ejml-ddense-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-ddense-0.38.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-dsparse/0.38/ejml-dsparse-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-dsparse-0.38.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-fdense/0.38/ejml-fdense-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-fdense-0.38.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-simple/0.38/ejml-simple-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-simple-0.38.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-zdense/0.38/ejml-zdense-0.38.jar"
|
||||
"${JAR_ROOT}/ejml-zdense-0.38.jar")
|
||||
|
||||
message(STATUS "All files downloaded.")
|
||||
endif()
|
||||
|
||||
file(GLOB EJML_JARS
|
||||
${CMAKE_BINARY_DIR}/wpiutil/thirdparty/*.jar)
|
||||
|
||||
set(CMAKE_JAVA_INCLUDE_PATH wpiutil.jar ${EJML_JARS})
|
||||
|
||||
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
|
||||
add_jar(wpiutil_jar ${JAVA_SOURCES} OUTPUT_NAME wpiutil)
|
||||
add_jar(wpiutil_jar ${JAVA_SOURCES} INCLUDE_JARS ${EJML_JARS} OUTPUT_NAME wpiutil)
|
||||
|
||||
get_property(WPIUTIL_JAR_FILE TARGET wpiutil_jar PROPERTY JAR_FILE)
|
||||
install(FILES ${WPIUTIL_JAR_FILE} DESTINATION "${java_lib_dest}")
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
apply from: "${rootDir}/shared/resources.gradle"
|
||||
|
||||
ext {
|
||||
baseId = 'wpiutil'
|
||||
groupId = 'edu.wpi.first.wpiutil'
|
||||
|
||||
nativeName = 'wpiutil'
|
||||
devMain = 'edu.wpi.first.wpiutil.DevMain'
|
||||
def generateTask = createGenerateResourcesTask('main', 'WPI', 'wpi', project)
|
||||
@@ -213,3 +216,7 @@ model {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "org.ejml:ejml-simple:0.38"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user