[build] Remove cmake Java support (#8952)

This is increasingly difficult to maintain, and has very limited
benefit. Modern coprocessors with enough horsepower to run Java
applications can use the Gradle or Bazel build systems instead.
This commit is contained in:
Peter Johnson
2026-06-05 15:05:09 -07:00
committed by GitHub
parent d941be905e
commit 96fb033deb
42 changed files with 13 additions and 1238 deletions

View File

@@ -4,109 +4,9 @@ include(SubDirList)
include(GenResources)
include(CompileWarnings)
include(AddTest)
include(DownloadAndCheck)
file(GLOB wpiutil_jni_src src/main/native/cpp/jni/WPIUtilJNI.cpp)
# Java bindings
if(WITH_JAVA)
include(UseJava)
if(NOT EXISTS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/avaje/avaje-jsonb-3.11.jar")
set(BASE_URL "https://search.maven.org/remotecontent?filepath=")
set(JAR_ROOT "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/avaje")
message(STATUS "Downloading Avaje jarfiles...")
download_and_check(
"${BASE_URL}io/avaje/avaje-jsonb/3.11/avaje-jsonb-3.11.jar"
"${JAR_ROOT}/avaje-jsonb-3.11.jar"
)
download_and_check(
"${BASE_URL}io/avaje/avaje-json-core/3.11/avaje-json-core-3.11.jar"
"${JAR_ROOT}/avaje-json-core-3.11.jar"
)
download_and_check(
"${BASE_URL}io/avaje/avaje-jsonb-inject-plugin/3.11/avaje-jsonb-inject-plugin-3.11.jar"
"${JAR_ROOT}/avaje-jsonb-inject-plugin-3.11.jar"
)
download_and_check(
"${BASE_URL}io/avaje/avaje-jsonb-generator/3.11/avaje-jsonb-generator-3.11.jar"
"${JAR_ROOT}/avaje-jsonb-generator-3.11.jar"
)
download_and_check(
"${BASE_URL}io/avaje/avaje-spi-service/2.16/avaje-spi-service-2.16.jar"
"${JAR_ROOT}/avaje-spi-service-2.16.jar"
)
download_and_check(
"${BASE_URL}io/avaje/avaje-spi-core/2.16/avaje-spi-core-2.16.jar"
"${JAR_ROOT}/avaje-spi-core-2.16.jar"
)
message(STATUS "All files downloaded.")
endif()
file(GLOB AVAJE_JARS ${WPILIB_BINARY_DIR}/wpiutil/thirdparty/avaje/*.jar)
if(NOT EXISTS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf/quickbuf-runtime-1.4.jar")
set(BASE_URL "https://search.maven.org/remotecontent?filepath=")
set(JAR_ROOT "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf")
message(STATUS "Downloading Quickbuf jarfile...")
download_and_check(
"${BASE_URL}us/hebi/quickbuf/quickbuf-runtime/1.4/quickbuf-runtime-1.4.jar"
"${JAR_ROOT}/quickbuf-runtime-1.4.jar"
)
message(STATUS "Downloaded.")
endif()
file(GLOB QUICKBUF_JAR ${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf/*.jar)
set(CMAKE_JNI_TARGET true)
file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java)
add_jar(
wpiutil_jar
${JAVA_SOURCES}
INCLUDE_JARS ${AVAJE_JARS} ${QUICKBUF_JAR}
OUTPUT_NAME wpiutil
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
GENERATE_NATIVE_HEADERS wpiutil_jni_headers
)
set_property(TARGET wpiutil_jar PROPERTY FOLDER "java")
install_jar(wpiutil_jar DESTINATION ${java_lib_dest})
install_jar_exports(TARGETS wpiutil_jar FILE wpiutil_jar.cmake DESTINATION share/wpiutil)
add_library(wpiutiljni ${wpiutil_jni_src})
wpilib_target_warnings(wpiutiljni)
target_link_libraries(wpiutiljni PUBLIC wpiutil)
set_property(TARGET wpiutiljni PROPERTY FOLDER "libraries")
target_link_libraries(wpiutiljni PRIVATE wpiutil_jni_headers)
add_dependencies(wpiutiljni wpiutil_jar)
install(TARGETS wpiutiljni EXPORT wpiutiljni)
export(TARGETS wpiutiljni FILE wpiutiljni.cmake NAMESPACE wpiutiljni::)
endif()
if(WITH_JAVA_SOURCE)
include(UseJava)
include(CreateSourceJar)
add_source_jar(
wpiutil_src_jar
BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java
OUTPUT_NAME wpiutil-sources
OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest}
)
set_property(TARGET wpiutil_src_jar PROPERTY FOLDER "java")
install_jar(wpiutil_src_jar DESTINATION ${java_lib_dest})
endif()
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

View File

@@ -10,6 +10,3 @@ endif()
@FILENAME_DEP_REPLACE@
include(${SELF_DIR}/wpiutil.cmake)
if(@WITH_JAVA@)
include(${SELF_DIR}/wpiutil_jar.cmake)
endif()