From 9dbbcaac415f1ec1952c66a49f1113a31eaac7dd Mon Sep 17 00:00:00 2001 From: Gold856 <117957790+Gold856@users.noreply.github.com> Date: Sat, 20 Apr 2024 19:23:41 -0400 Subject: [PATCH] Simplify source JAR creation and install --- apriltag/CMakeLists.txt | 17 +++----- cameraserver/CMakeLists.txt | 16 +++---- cmake/modules/CreateSourceJar.cmake | 35 +++++++++++++++ cscore/CMakeLists.txt | 16 +++---- hal/CMakeLists.txt | 25 ++++------- ntcore/CMakeLists.txt | 20 ++++----- romiVendordep/CMakeLists.txt | 14 +++--- wpilibNewCommands/CMakeLists.txt | 20 +++------ wpilibj/CMakeLists.txt | 67 +++++++++-------------------- wpimath/CMakeLists.txt | 49 ++++----------------- wpinet/CMakeLists.txt | 14 +++--- wpiunits/CMakeLists.txt | 15 +++++++ wpiutil/CMakeLists.txt | 24 +++-------- xrpVendordep/CMakeLists.txt | 14 +++--- 14 files changed, 143 insertions(+), 203 deletions(-) create mode 100644 cmake/modules/CreateSourceJar.cmake diff --git a/apriltag/CMakeLists.txt b/apriltag/CMakeLists.txt index d098bb01aa8..fe5278b5e77 100644 --- a/apriltag/CMakeLists.txt +++ b/apriltag/CMakeLists.txt @@ -85,21 +85,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB APRILTAG_SOURCES src/main/java/edu/wpi/first/apriltag/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( apriltag_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/apriltag" ${APRILTAG_SOURCES} - NAMESPACE - "edu/wpi/first/apriltag/jni" - src/main/java/edu/wpi/first/apriltag/jni/AprilTagJNI.java + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/apriltag OUTPUT_NAME apriltag-sources ) - - get_property(APRILTAG_SRC_JAR_FILE TARGET apriltag_src_jar PROPERTY JAR_FILE) - install(FILES ${APRILTAG_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET apriltag_src_jar PROPERTY FOLDER "java") + + install_jar(apriltag_src_jar DESTINATION ${java_lib_dest}) endif() generate_resources( diff --git a/cameraserver/CMakeLists.txt b/cameraserver/CMakeLists.txt index 1270c383db5..4c9c8ba74ba 100644 --- a/cameraserver/CMakeLists.txt +++ b/cameraserver/CMakeLists.txt @@ -46,20 +46,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB CAMERASERVER_SOURCES src/main/java/edu/wpi/first/cameraserver/*.java) - file(GLOB VISION_SOURCES src/main/java/edu/wpi/first/vision/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( cameraserver_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/cameraserver" ${CAMERASERVER_SOURCES} - NAMESPACE "edu/wpi/first/vision" ${VISION_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first OUTPUT_NAME cameraserver-sources ) - - get_property(CAMERASERVER_SRC_JAR_FILE TARGET cameraserver_src_jar PROPERTY JAR_FILE) - install(FILES ${CAMERASERVER_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET cameraserver_src_jar PROPERTY FOLDER "java") + + install_jar(cameraserver_src_jar DESTINATION ${java_lib_dest}) endif() file(GLOB_RECURSE cameraserver_native_src src/main/native/cpp/*.cpp) diff --git a/cmake/modules/CreateSourceJar.cmake b/cmake/modules/CreateSourceJar.cmake new file mode 100644 index 00000000000..a6f07d617c9 --- /dev/null +++ b/cmake/modules/CreateSourceJar.cmake @@ -0,0 +1,35 @@ +macro(add_source_jar target) + set(options) + set(oneValueArgs OUTPUT_NAME BASE_PACKAGE) + set(multiValueArgs BASE_DIRECTORIES) + cmake_parse_arguments(SOURCE_JAR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + set(packages "") + foreach(base_package_dir ${SOURCE_JAR_BASE_DIRECTORIES}) + file(GLOB_RECURSE sources LIST_DIRECTORIES true ${base_package_dir}/${SOURCE_JAR_BASE_PACKAGE}) + # Find all packages + foreach(source ${sources}) + if(IS_DIRECTORY ${source}) + cmake_path( + RELATIVE_PATH + source + BASE_DIRECTORY ${base_package_dir} + OUTPUT_VARIABLE package_name + ) + file(GLOB package_sources ${source}/*.java) + # If package sources are scattered across different places, consolidate them under one package + list(FIND packages ${package_name} index) + if(index EQUAL -1) + set(${package_name} ${package_sources}) + list(APPEND packages ${package_name}) + else() + list(APPEND ${package_name} ${package_sources}) + endif() + endif() + endforeach() + endforeach() + set(resources "") + foreach(package ${packages}) + string(APPEND resources "NAMESPACE \"${package}\" ${${package}} ") + endforeach() + cmake_language(EVAL CODE "add_jar(${target} RESOURCES ${resources} OUTPUT_NAME ${SOURCE_JAR_OUTPUT_NAME})") +endmacro() diff --git a/cscore/CMakeLists.txt b/cscore/CMakeLists.txt index e4f4315acc5..142a1e1c38a 100644 --- a/cscore/CMakeLists.txt +++ b/cscore/CMakeLists.txt @@ -175,20 +175,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB CSCORE_SOURCES src/main/java/edu/wpi/first/cscore/*.java) - file(GLOB CSCORE_RAW_SOURCES src/main/java/edu/wpi/first/cscore/raw/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( cscore_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/cscore" ${CSCORE_SOURCES} - NAMESPACE "edu/wpi/first/cscore/raw" ${CSCORE_RAW_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/cscore OUTPUT_NAME cscore-sources ) - - get_property(CSCORE_SRC_JAR_FILE TARGET cscore_src_jar PROPERTY JAR_FILE) - install(FILES ${CSCORE_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET cscore_src_jar PROPERTY FOLDER "java") + + install_jar(cscore_src_jar DESTINATION ${java_lib_dest}) endif() if(WITH_TESTS) diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 1a735a68548..26c53919535 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -99,27 +99,18 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB HAL_SOURCES src/main/java/edu/wpi/first/hal/*.java src/generated/main/java/*.java) - file(GLOB HAL_CAN_SOURCES src/main/java/edu/wpi/first/hal/can/*.java) - file(GLOB HAL_SIMULATION_SOURCES src/main/java/edu/wpi/first/hal/simulation/*.java) - file(GLOB HAL_UTIL_SOURCES src/main/java/edu/wpi/first/hal/util/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( hal_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/hal" ${HAL_SOURCES} - NAMESPACE "edu/wpi/first/hal/can" ${HAL_CAN_SOURCES} - NAMESPACE - "edu/wpi/first/hal/communication" - src/main/java/edu/wpi/first/hal/communication/NIRioStatus.java - NAMESPACE "edu/wpi/first/hal/simulation" ${HAL_SIMULATION_SOURCES} - NAMESPACE "edu/wpi/first/hal/util" ${HAL_UTIL_SOURCES} + BASE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/java + BASE_PACKAGE edu/wpi/first/hal OUTPUT_NAME wpiHal-sources ) - - get_property(HAL_SRC_JAR_FILE TARGET hal_src_jar PROPERTY JAR_FILE) - install(FILES ${HAL_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET hal_src_jar PROPERTY FOLDER "java") + + install_jar(hal_src_jar DESTINATION ${java_lib_dest}) endif() if(WITH_TESTS) diff --git a/ntcore/CMakeLists.txt b/ntcore/CMakeLists.txt index bbf3790a7b4..57017e920e4 100644 --- a/ntcore/CMakeLists.txt +++ b/ntcore/CMakeLists.txt @@ -84,22 +84,18 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file( - GLOB NTCORE_SOURCES - src/main/java/edu/wpi/first/networktables/*.java - src/generated/main/java/*.java - ) - add_jar( + include(CreateSourceJar) + add_source_jar( ntcore_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/networktables" ${NTCORE_SOURCES} + BASE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/java + BASE_PACKAGE edu/wpi/first/networktables OUTPUT_NAME ntcore-sources ) - - get_property(NTCORE_SRC_JAR_FILE TARGET ntcore_src_jar PROPERTY JAR_FILE) - install(FILES ${NTCORE_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET ntcore_src_jar PROPERTY FOLDER "java") + + install_jar(ntcore_src_jar DESTINATION ${java_lib_dest}) endif() add_executable(ntcoredev src/dev/native/cpp/main.cpp) diff --git a/romiVendordep/CMakeLists.txt b/romiVendordep/CMakeLists.txt index 960e7d112e8..d0909230bfe 100644 --- a/romiVendordep/CMakeLists.txt +++ b/romiVendordep/CMakeLists.txt @@ -36,18 +36,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB_RECURSE ROMIVENDORDEP_SOURCES src/main/java/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( romiVendordep_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/wpilibj/romi" ${ROMIVENDORDEP_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/wpilibj/romi OUTPUT_NAME romiVendordep-sources ) - - get_property(ROMIVENDORDEP_SRC_JAR_FILE TARGET romiVendordep_src_jar PROPERTY JAR_FILE) - install(FILES ${ROMIVENDORDEP_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET romiVendordep_src_jar PROPERTY FOLDER "java") + + install_jar(romiVendordep_src_jar DESTINATION ${java_lib_dest}) endif() file(GLOB_RECURSE romiVendordep_native_src src/main/native/cpp/*.cpp) diff --git a/wpilibNewCommands/CMakeLists.txt b/wpilibNewCommands/CMakeLists.txt index 5b82b2f5ff6..5273728e89a 100644 --- a/wpilibNewCommands/CMakeLists.txt +++ b/wpilibNewCommands/CMakeLists.txt @@ -36,24 +36,16 @@ 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 - src/generated/main/java/edu/wpi/first/wpilibj2/command/button/*.java - ) - add_jar( + include(CreateSourceJar) + add_source_jar( wpilibNewCommands_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/wpilibj2/command" ${WPILIBNEWCOMMANDS_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj2/command/button" ${WPILIBNEWCOMMANDS_BUTTON_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/java + BASE_PACKAGE edu/wpi/first/wpilibj2/command 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") + + install_jar(wpilibNewCommands_src_jar DESTINATION ${java_lib_dest}) endif() file( diff --git a/wpilibj/CMakeLists.txt b/wpilibj/CMakeLists.txt index e2a8fb331a7..dcd681b9746 100644 --- a/wpilibj/CMakeLists.txt +++ b/wpilibj/CMakeLists.txt @@ -19,7 +19,10 @@ if(WITH_JAVA) NO_DEFAULT_PATH ) - configure_file(src/generate/WPILibVersion.java.in WPILibVersion.java) + configure_file( + src/generate/WPILibVersion.java.in + generated/main/java/edu/wpi/first/wpilibj/WPILibVersion.java + ) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java src/generated/main/java/*.java) file(GLOB EJML_JARS "${WPILIB_BINARY_DIR}/wpimath/thirdparty/ejml/*.jar") @@ -28,7 +31,7 @@ if(WITH_JAVA) add_jar( wpilibj_jar ${JAVA_SOURCES} - ${CMAKE_CURRENT_BINARY_DIR}/WPILibVersion.java + ${CMAKE_CURRENT_BINARY_DIR}/generated/main/java/edu/wpi/first/wpilibj/WPILibVersion.java INCLUDE_JARS hal_jar ntcore_jar @@ -53,52 +56,24 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file( - GLOB WPILIBJ_SOURCES - src/main/java/edu/wpi/first/wpilibj/*.java - src/generated/main/java/edu/wpi/first/wpilibj/*.java - ) - file(GLOB WPILIBJ_COUNTER_SOURCES src/main/java/edu/wpi/first/wpilibj/counter/*.java) - file(GLOB WPILIBJ_DRIVE_SOURCES src/main/java/edu/wpi/first/wpilibj/drive/*.java) - file(GLOB WPILIBJ_EVENT_SOURCES src/main/java/edu/wpi/first/wpilibj/event/*.java) - file(GLOB WPILIBJ_INTERFACES_SOURCES src/main/java/edu/wpi/first/wpilibj/interfaces/*.java) - file(GLOB WPILIBJ_MOTORCONTROL_SOURCES src/main/java/edu/wpi/first/wpilibj/motorcontrol*.java) - file(GLOB WPILIBJ_SHUFFLEBOARD_SOURCES src/main/java/edu/wpi/first/wpilibj/shuffleboard*.java) - file( - GLOB WPILIBJ_SIMULATION_SOURCES - src/main/java/edu/wpi/first/wpilibj/simulation/*.java - src/generated/main/java/edu/wpi/first/wpilibj/simulation/*.java - ) - file(GLOB WPILIBJ_SMARTDASHBOARD_SOURCES src/main/java/edu/wpi/first/wpilibj/*.java) - file( - GLOB WPILIBJ_UTIL_SOURCES - src/main/java/edu/wpi/first/wpilibj/*.java - ${CMAKE_CURRENT_BINARY_DIR}/WPILibVersion.java - ) - add_jar( + include(CreateSourceJar) + # Generate version file if it wasn't generated already + if(NOT WITH_JAVA) + configure_file( + src/generate/WPILi1bVersion.java.in + generated/main/java/edu/wpi/first/wpilibj/WPILibVersion.java + ) + endif() + add_source_jar( wpilibj_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/wpilibj" ${WPILIBJ_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/counter" ${WPILIBJ_COUNTER_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/drive" ${WPILIBJ_DRIVE_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/event" ${WPILIBJ_EVENT_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/interfaces" ${WPILIBJ_INTERFACES_SOURCES} - NAMESPACE - "edu/wpi/first/wpilibj/internal" - src/main/java/edu/wpi/first/wpilibj/internal/DriverStationModeThread.java - NAMESPACE - "edu/wpi/first/wpilibj/livewindow" - src/main/java/edu/wpi/first/wpilibj/livewindow/LiveWindow.java - NAMESPACE "edu/wpi/first/wpilibj/motorcontrol" ${WPILIBJ_MOTORCONTROL_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/shuffleboard" ${WPILIBJ_SHUFFLEBOARD_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/simulation" ${WPILIBJ_SIMULATION_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/smartdashboard" ${WPILIBJ_SMARTDASHBOARD_SOURCES} - NAMESPACE "edu/wpi/first/wpilibj/util" ${WPILIBJ_UTIL_SOURCES} + BASE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/java + ${CMAKE_CURRENT_BINARY_DIR}/generated/main/java + BASE_PACKAGE edu/wpi/first/wpilibj OUTPUT_NAME wpilibj-sources ) - - get_property(WPILIBJ_SRC_JAR_FILE TARGET wpilibj_src_jar PROPERTY JAR_FILE) - install(FILES ${WPILIBJ_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET wpilibj_src_jar PROPERTY FOLDER "java") + + install_jar(wpilibj_src_jar DESTINATION ${java_lib_dest}) endif() diff --git a/wpimath/CMakeLists.txt b/wpimath/CMakeLists.txt index f56558410af..b3f9cb0fd3e 100644 --- a/wpimath/CMakeLists.txt +++ b/wpimath/CMakeLists.txt @@ -111,51 +111,18 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file( - GLOB WPIMATH_SOURCES - src/main/java/edu/wpi/first/math/*.java - src/generated/main/java/edu/wpi/first/math/Nat.java - ) - file(GLOB WPIMATH_CONTROLLER_SOURCES src/main/java/edu/wpi/first/math/controller/*.java) - file(GLOB WPIMATH_ESTIMATOR_SOURCES src/main/java/edu/wpi/first/math/estimator/*.java) - file(GLOB WPIMATH_FILTER_SOURCES src/main/java/edu/wpi/first/math/filter/*.java) - file(GLOB WPIMATH_GEOMETRY_SOURCES src/main/java/edu/wpi/first/math/geometry/*.java) - file(GLOB WPIMATH_INTERPOLATION_SOURCES src/main/java/edu/wpi/first/math/interpolation/*.java) - file(GLOB WPIMATH_KINEMATICS_SOURCES src/main/java/edu/wpi/first/math/kinematics/*.java) - file(GLOB WPIMATH_NUMBERS_SOURCES src/generated/main/java/edu/wpi/first/math/numbers/*.java) - file(GLOB WPIMATH_SPLINE_SOURCES src/main/java/edu/wpi/first/math/spline/*.java) - file(GLOB WPIMATH_SYSTEM_SOURCES src/main/java/edu/wpi/first/math/system/*.java) - file(GLOB WPIMATH_SYSTEM_PLANT_SOURCES src/main/java/edu/wpi/first/math/system/plant/*.java) - file(GLOB WPIMATH_TRAJECTORY_SOURCES src/main/java/edu/wpi/first/math/trajectory/*.java) - file( - GLOB WPIMATH_TRAJECTORY_CONSTRAINT_SOURCES - src/main/java/edu/wpi/first/math/trajectory/constraint/*.java - ) - add_jar( + include(CreateSourceJar) + add_source_jar( wpimath_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/math" ${WPIMATH_SOURCES} - NAMESPACE "edu/wpi/first/math/controller" ${WPIMATH_CONTROLLER_SOURCES} - NAMESPACE "edu/wpi/first/math/estimator" ${WPIMATH_ESTIMATOR_SOURCES} - NAMESPACE "edu/wpi/first/math/filter" ${WPIMATH_FILTER_SOURCES} - NAMESPACE "edu/wpi/first/math/geometry" ${WPIMATH_GEOMETRY_SOURCES} - NAMESPACE "edu/wpi/first/math/interpolation" ${WPIMATH_INTERPOLATION_SOURCES} - NAMESPACE "edu/wpi/first/math/kinematics" ${WPIMATH_KINEMATICS_SOURCES} - NAMESPACE "edu/wpi/first/math/spline" ${WPIMATH_SPLINE_SOURCES} - NAMESPACE "edu/wpi/first/math/system" ${WPIMATH_SYSTEM_SOURCES} - NAMESPACE "edu/wpi/first/math/system/plant" ${WPIMATH_SYSTEM_PLANT_SOURCES} - NAMESPACE "edu/wpi/first/math/trajectory" ${WPIMATH_TRAJECTORY_SOURCES} - NAMESPACE - "edu/wpi/first/math/trajectory/constraint" - ${WPIMATH_TRAJECTORY_CONSTRAINT_SOURCES} - NAMESPACE "edu/wpi/first/math/util" src/main/java/edu/wpi/first/math/util/Units.java + BASE_DIRECTORIES + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/main/java + BASE_PACKAGE edu/wpi/first/math OUTPUT_NAME wpimath-sources ) - - get_property(WPIMATH_SRC_JAR_FILE TARGET wpimath_src_jar PROPERTY JAR_FILE) - install(FILES ${WPIMATH_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET wpimath_src_jar PROPERTY FOLDER "java") + + install_jar(wpimath_src_jar DESTINATION ${java_lib_dest}) endif() file( diff --git a/wpinet/CMakeLists.txt b/wpinet/CMakeLists.txt index 7e189a87ab9..a7b0e08a744 100644 --- a/wpinet/CMakeLists.txt +++ b/wpinet/CMakeLists.txt @@ -45,18 +45,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB WPINET_SOURCES src/main/java/edu/wpi/first/net/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( wpinet_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/net" ${WPINET_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/net OUTPUT_NAME wpinet-sources ) - - get_property(WPINET_SRC_JAR_FILE TARGET wpinet_src_jar PROPERTY JAR_FILE) - install(FILES ${WPINET_SRC_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET wpinet_src_jar PROPERTY FOLDER "java") + + install_jar(wpinet_src_jar DESTINATION ${java_lib_dest}) endif() set(THREADS_PREFER_PTHREAD_FLAG ON) diff --git a/wpiunits/CMakeLists.txt b/wpiunits/CMakeLists.txt index 4f71da1b15e..9bb16189096 100644 --- a/wpiunits/CMakeLists.txt +++ b/wpiunits/CMakeLists.txt @@ -14,3 +14,18 @@ if(WITH_JAVA) install_jar_exports(TARGETS wpiunits_jar FILE wpiunits.cmake DESTINATION share/wpiunits) install(FILES wpiunits-config.cmake DESTINATION share/wpiunits) endif() + +if(WITH_JAVA_SOURCE) + find_package(Java REQUIRED) + include(UseJava) + include(CreateSourceJar) + add_source_jar( + wpiunits_src_jar + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/units + OUTPUT_NAME wpiunits-sources + ) + set_property(TARGET wpiunits_src_jar PROPERTY FOLDER "java") + + install_jar(wpiunits_src_jar DESTINATION ${java_lib_dest}) +endif() diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index 113de0a4bc6..8653d75d48b 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -92,28 +92,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB WPIUTIL_SOURCES src/main/java/edu/wpi/first/util/*.java) - file(GLOB WPIUTIL_CLEANUP_SOURCES src/main/java/edu/wpi/first/util/cleanup/*.java) - file(GLOB WPIUTIL_CONCURRENT_SOURCES src/main/java/edu/wpi/first/util/concurrent/*.java) - file(GLOB WPIUTIL_DATALOG_SOURCES src/main/java/edu/wpi/first/util/datalog/*.java) - file(GLOB WPIUTIL_FUNCTION_SOURCES src/main/java/edu/wpi/first/util/function/*.java) - file(GLOB WPIUTIL_SENDABLE_SOURCES src/main/java/edu/wpi/first/util/sendable/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( wpiutil_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/util" ${WPIUTIL_SOURCES} - NAMESPACE "edu/wpi/first/util/cleanup" ${WPIUTIL_CLEANUP_SOURCES} - NAMESPACE "edu/wpi/first/util/concurrent" ${WPIUTIL_CONCURRENT_SOURCES} - NAMESPACE "edu/wpi/first/util/datalog" ${WPIUTIL_DATALOG_SOURCES} - NAMESPACE "edu/wpi/first/util/function" ${WPIUTIL_FUNCTION_SOURCES} - NAMESPACE "edu/wpi/first/util/sendable" ${WPIUTIL_SENDABLE_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/util OUTPUT_NAME wpiutil-sources ) - - get_property(WPIUTIL_SRC_JAR_FILE TARGET wpiutil_src_jar PROPERTY JAR_FILE) - install(FILES ${WPIUTIL_SRC_JAR_FILE} DESTINATION "${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) diff --git a/xrpVendordep/CMakeLists.txt b/xrpVendordep/CMakeLists.txt index 5099beb7603..0c77489fe06 100644 --- a/xrpVendordep/CMakeLists.txt +++ b/xrpVendordep/CMakeLists.txt @@ -36,18 +36,16 @@ endif() if(WITH_JAVA_SOURCE) find_package(Java REQUIRED) include(UseJava) - file(GLOB XRPVENDORDEP_SOURCES src/main/java/edu/wpi/first/wpilibj/xrp/*.java) - add_jar( + include(CreateSourceJar) + add_source_jar( xrpVendordep_src_jar - RESOURCES - NAMESPACE "edu/wpi/first/wpilibj/xrp" ${XRPVENDORDEP_SOURCES} + BASE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src/main/java + BASE_PACKAGE edu/wpi/first/wpilibj/xrp OUTPUT_NAME xrpVendordep-sources ) - - get_property(xrpVendordep_src_JAR_FILE TARGET xrpVendordep_src_jar PROPERTY JAR_FILE) - install(FILES ${xrpVendordep_src_JAR_FILE} DESTINATION "${java_lib_dest}") - set_property(TARGET xrpVendordep_src_jar PROPERTY FOLDER "java") + + install_jar(xrpVendordep_src_jar DESTINATION ${java_lib_dest}) endif() file(GLOB_RECURSE xrpVendordep_native_src src/main/native/cpp/*.cpp)