diff --git a/docs/build.gradle b/docs/build.gradle index b00786376b..f0782bc80d 100644 --- a/docs/build.gradle +++ b/docs/build.gradle @@ -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') diff --git a/wpilibj/CMakeLists.txt b/wpilibj/CMakeLists.txt index 964fa0cc1f..ad554c7d23 100644 --- a/wpilibj/CMakeLists.txt +++ b/wpilibj/CMakeLists.txt @@ -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}") diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index edcf1178bd..e08dca6128 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -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}") diff --git a/wpiutil/build.gradle b/wpiutil/build.gradle index ccd8a8b856..5d013d7bd1 100644 --- a/wpiutil/build.gradle +++ b/wpiutil/build.gradle @@ -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" +}