From f5fc101fda8d59264615e5c27140ae3661e4fdef Mon Sep 17 00:00:00 2001 From: Gold856 <117957790+Gold856@users.noreply.github.com> Date: Wed, 6 Dec 2023 21:28:38 -0500 Subject: [PATCH] [build] cmake: Export jars and clean up jar installs (#6014) --- CMakeLists.txt | 2 ++ apriltag/CMakeLists.txt | 6 ++---- apriltag/apriltag-config.cmake.in | 3 +++ cameraserver/CMakeLists.txt | 10 ++++++---- cameraserver/cameraserver-config.cmake.in | 3 +++ cscore/CMakeLists.txt | 6 ++---- cscore/cscore-config.cmake.in | 3 +++ hal/CMakeLists.txt | 6 ++---- hal/hal-config.cmake.in | 3 +++ ntcore/CMakeLists.txt | 6 ++---- ntcore/ntcore-config.cmake.in | 3 +++ romiVendordep/CMakeLists.txt | 10 ++++++---- romiVendordep/romiVendordep-config.cmake.in | 3 +++ wpilib-config.cmake.in | 4 ++++ wpilibNewCommands/CMakeLists.txt | 10 ++++++---- wpilibNewCommands/wpilibNewCommands-config.cmake.in | 3 +++ wpilibj/CMakeLists.txt | 6 ++---- wpimath/CMakeLists.txt | 6 ++---- wpimath/wpimath-config.cmake.in | 5 ++++- wpinet/CMakeLists.txt | 6 ++---- wpinet/wpinet-config.cmake.in | 3 +++ wpiunits/CMakeLists.txt | 7 ++----- wpiutil/CMakeLists.txt | 6 ++---- wpiutil/wpiutil-config.cmake.in | 3 +++ xrpVendordep/CMakeLists.txt | 10 ++++++---- xrpVendordep/xrpVendordep-config.cmake.in | 3 +++ 26 files changed, 82 insertions(+), 54 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 249b542681..726a1e8cc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,9 +219,11 @@ set(CSCORE_DEP_REPLACE_IMPL "find_dependency(cscore)") set(HAL_DEP_REPLACE_IMPL "find_dependency(hal)") set(NTCORE_DEP_REPLACE "find_dependency(ntcore)") set(WPILIBC_DEP_REPLACE_IMPL "find_dependency(wpilibc)") +set(WPILIBJ_DEP_REPLACE "find_dependency(wpilibj)") set(WPILIBNEWCOMMANDS_DEP_REPLACE "find_dependency(wpilibNewCommands)") set(WPIMATH_DEP_REPLACE "find_dependency(wpimath)") set(WPINET_DEP_REPLACE "find_dependency(wpinet)") +set(WPIUNITS_DEP_REPLACE "find_dependency(wpiunits)") set(WPIUTIL_DEP_REPLACE "find_dependency(wpiutil)") set(FILENAME_DEP_REPLACE "get_filename_component(SELF_DIR \"$\{CMAKE_CURRENT_LIST_FILE\}\" PATH)") diff --git a/apriltag/CMakeLists.txt b/apriltag/CMakeLists.txt index 0e9ed8e607..9ec2a698b2 100644 --- a/apriltag/CMakeLists.txt +++ b/apriltag/CMakeLists.txt @@ -64,10 +64,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS apriltag_jni_headers ) - get_property(APRILTAG_JAR_FILE TARGET apriltag_jar PROPERTY JAR_FILE) - install(FILES ${APRILTAG_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET apriltag_jar PROPERTY FOLDER "java") + install_jar(apriltag_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS apriltag_jar FILE apriltag_jar.cmake DESTINATION share/apriltag) add_library(apriltagjni ${apriltag_jni_src}) wpilib_target_warnings(apriltagjni) diff --git a/apriltag/apriltag-config.cmake.in b/apriltag/apriltag-config.cmake.in index 7477a0eff6..9cb609335a 100644 --- a/apriltag/apriltag-config.cmake.in +++ b/apriltag/apriltag-config.cmake.in @@ -5,3 +5,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/apriltag.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/apriltag_jar.cmake) +endif() diff --git a/cameraserver/CMakeLists.txt b/cameraserver/CMakeLists.txt index fc1a3acf31..6290049238 100644 --- a/cameraserver/CMakeLists.txt +++ b/cameraserver/CMakeLists.txt @@ -31,10 +31,12 @@ if(WITH_JAVA) OUTPUT_NAME cameraserver ) - get_property(CAMERASERVER_JAR_FILE TARGET cameraserver_jar PROPERTY JAR_FILE) - install(FILES ${CAMERASERVER_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET cameraserver_jar PROPERTY FOLDER "java") + install_jar(cameraserver_jar DESTINATION ${java_lib_dest}) + install_jar_exports( + TARGETS cameraserver_jar + FILE cameraserver_jar.cmake + DESTINATION share/cameraserver + ) endif() if(WITH_JAVA_SOURCE) diff --git a/cameraserver/cameraserver-config.cmake.in b/cameraserver/cameraserver-config.cmake.in index 94d681389c..46d522d121 100644 --- a/cameraserver/cameraserver-config.cmake.in +++ b/cameraserver/cameraserver-config.cmake.in @@ -7,3 +7,6 @@ find_dependency(OpenCV) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/cameraserver.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/cameraserver_jar.cmake) +endif() diff --git a/cscore/CMakeLists.txt b/cscore/CMakeLists.txt index e334564465..7891486f3f 100644 --- a/cscore/CMakeLists.txt +++ b/cscore/CMakeLists.txt @@ -129,8 +129,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS cscore_jni_headers ) - get_property(CSCORE_JAR_FILE TARGET cscore_jar PROPERTY JAR_FILE) - install(FILES ${CSCORE_JAR_FILE} DESTINATION "${java_lib_dest}") + install_jar(cscore_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS cscore_jar FILE cscore_jar.cmake DESTINATION share/cscore) install(FILES ${OPENCV_JAR_FILE} DESTINATION "${java_lib_dest}") if(MSVC) @@ -153,8 +153,6 @@ if(WITH_JAVA) endforeach() endif() - set_property(TARGET cscore_jar PROPERTY FOLDER "java") - add_library(cscorejni ${cscore_jni_src}) wpilib_target_warnings(cscorejni) target_link_libraries(cscorejni PUBLIC cscore wpiutil ${OpenCV_LIBS}) diff --git a/cscore/cscore-config.cmake.in b/cscore/cscore-config.cmake.in index 33e0af365e..da5a71f696 100644 --- a/cscore/cscore-config.cmake.in +++ b/cscore/cscore-config.cmake.in @@ -5,3 +5,6 @@ find_dependency(OpenCV) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/cscore.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/cscore_jar.cmake) +endif() diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index a7d59b6f7d..3333e9b4e5 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -74,10 +74,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS hal_jni_headers ) - get_property(HAL_JAR_FILE TARGET hal_jar PROPERTY JAR_FILE) - install(FILES ${HAL_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET hal_jar PROPERTY FOLDER "java") + install_jar(hal_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS hal_jar FILE hal_jar.cmake DESTINATION share/hal) add_library(haljni ${hal_shared_jni_src}) diff --git a/hal/hal-config.cmake.in b/hal/hal-config.cmake.in index 49eac3d40d..7429597b0e 100644 --- a/hal/hal-config.cmake.in +++ b/hal/hal-config.cmake.in @@ -4,3 +4,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/hal.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/hal_jar.cmake) +endif() diff --git a/ntcore/CMakeLists.txt b/ntcore/CMakeLists.txt index b56b3d8557..d87571f5a7 100644 --- a/ntcore/CMakeLists.txt +++ b/ntcore/CMakeLists.txt @@ -60,10 +60,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS ntcore_jni_headers ) - get_property(NTCORE_JAR_FILE TARGET ntcore_jar PROPERTY JAR_FILE) - install(FILES ${NTCORE_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET ntcore_jar PROPERTY FOLDER "java") + install_jar(ntcore_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS ntcore_jar FILE ntcore_jar.cmake DESTINATION share/ntcore) add_library(ntcorejni ${ntcore_jni_src}) wpilib_target_warnings(ntcorejni) diff --git a/ntcore/ntcore-config.cmake.in b/ntcore/ntcore-config.cmake.in index 0a85f8b09d..9642d635ae 100644 --- a/ntcore/ntcore-config.cmake.in +++ b/ntcore/ntcore-config.cmake.in @@ -5,3 +5,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/ntcore.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/ntcore_jar.cmake) +endif() diff --git a/romiVendordep/CMakeLists.txt b/romiVendordep/CMakeLists.txt index d7f5703ed4..7ef8bde337 100644 --- a/romiVendordep/CMakeLists.txt +++ b/romiVendordep/CMakeLists.txt @@ -25,10 +25,12 @@ if(WITH_JAVA) OUTPUT_NAME romiVendordep ) - get_property(ROMIVENDORDEP_JAR_FILE TARGET romiVendordep_jar PROPERTY JAR_FILE) - install(FILES ${ROMIVENDORDEP_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET romiVendordep_jar PROPERTY FOLDER "java") + install_jar(romiVendordep_jar DESTINATION ${java_lib_dest}) + install_jar_exports( + TARGETS romiVendordep_jar + FILE romiVendordep_jar.cmake + DESTINATION share/romiVendordep + ) endif() if(WITH_JAVA_SOURCE) diff --git a/romiVendordep/romiVendordep-config.cmake.in b/romiVendordep/romiVendordep-config.cmake.in index 3711d9cd6d..2843d3e728 100644 --- a/romiVendordep/romiVendordep-config.cmake.in +++ b/romiVendordep/romiVendordep-config.cmake.in @@ -9,3 +9,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/romiVendordep.cmake) + if(@WITH_JAVA@) + include(${SELF_DIR}/romiVendordep_jar.cmake) + endif() diff --git a/wpilib-config.cmake.in b/wpilib-config.cmake.in index 018c39ce93..c08e9d2001 100644 --- a/wpilib-config.cmake.in +++ b/wpilib-config.cmake.in @@ -15,3 +15,7 @@ find_dependency(Threads) @WPIMATH_DEP_REPLACE@ @WPINET_DEP_REPLACE@ @WPIUTIL_DEP_REPLACE@ +if(@WITH_JAVA@) + @WPILIBJ_DEP_REPLACE@ + @WPIUNITS_DEP_REPLACE@ +endif() diff --git a/wpilibNewCommands/CMakeLists.txt b/wpilibNewCommands/CMakeLists.txt index ef3ff496d5..0671e467dd 100644 --- a/wpilibNewCommands/CMakeLists.txt +++ b/wpilibNewCommands/CMakeLists.txt @@ -25,10 +25,12 @@ if(WITH_JAVA) 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") + install_jar(wpilibNewCommands_jar DESTINATION ${java_lib_dest}) + install_jar_exports( + TARGETS wpilibNewCommands_jar + FILE wpilibNewCommands_jar.cmake + DESTINATION share/wpilibNewCommands + ) endif() if(WITH_JAVA_SOURCE) diff --git a/wpilibNewCommands/wpilibNewCommands-config.cmake.in b/wpilibNewCommands/wpilibNewCommands-config.cmake.in index 8a8d8d8ecb..7f33a403d1 100644 --- a/wpilibNewCommands/wpilibNewCommands-config.cmake.in +++ b/wpilibNewCommands/wpilibNewCommands-config.cmake.in @@ -9,3 +9,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpilibNewCommands.cmake) + if(@WITH_JAVA@) + include(${SELF_DIR}/wpilibNewCommands_jar.cmake) + endif() diff --git a/wpilibj/CMakeLists.txt b/wpilibj/CMakeLists.txt index 9c8bd98895..624e87a39a 100644 --- a/wpilibj/CMakeLists.txt +++ b/wpilibj/CMakeLists.txt @@ -40,10 +40,8 @@ if(WITH_JAVA) OUTPUT_NAME wpilibj ) - get_property(WPILIBJ_JAR_FILE TARGET wpilibj_jar PROPERTY JAR_FILE) - install(FILES ${WPILIBJ_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET wpilibj_jar PROPERTY FOLDER "java") + install_jar(wpilibj_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS wpilibj_jar FILE wpilibj.cmake DESTINATION share/wpilibj) install(FILES wpilibj-config.cmake DESTINATION share/wpilibj) endif() diff --git a/wpimath/CMakeLists.txt b/wpimath/CMakeLists.txt index f938c4df7e..d8a9a29435 100644 --- a/wpimath/CMakeLists.txt +++ b/wpimath/CMakeLists.txt @@ -83,10 +83,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS wpimath_jni_headers ) - get_property(WPIMATH_JAR_FILE TARGET wpimath_jar PROPERTY JAR_FILE) - install(FILES ${WPIMATH_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET wpimath_jar PROPERTY FOLDER "java") + install_jar(wpimath_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS wpimath_jar FILE wpimath_jar.cmake DESTINATION share/wpimath) add_library(wpimathjni ${wpimath_jni_src}) wpilib_target_warnings(wpimathjni) diff --git a/wpimath/wpimath-config.cmake.in b/wpimath/wpimath-config.cmake.in index 8697dc1836..3618a1fe8c 100644 --- a/wpimath/wpimath-config.cmake.in +++ b/wpimath/wpimath-config.cmake.in @@ -1,7 +1,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ @WPIUTIL_DEP_REPLACE@ -@WPIUNITS_DEP_REPLACE@ if(@USE_SYSTEM_EIGEN@) find_dependency(Eigen3) @@ -9,3 +8,7 @@ endif() @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpimath.cmake) +if(@WITH_JAVA@) + @WPIUNITS_DEP_REPLACE@ + include(${SELF_DIR}/wpimath_jar.cmake) +endif() diff --git a/wpinet/CMakeLists.txt b/wpinet/CMakeLists.txt index 12763b16e1..b2c7e04bb7 100644 --- a/wpinet/CMakeLists.txt +++ b/wpinet/CMakeLists.txt @@ -26,10 +26,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS wpinet_jni_headers ) - get_property(WPINET_JAR_FILE TARGET wpinet_jar PROPERTY JAR_FILE) - install(FILES ${WPINET_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET wpinet_jar PROPERTY FOLDER "java") + install_jar(wpinet_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS wpinet_jar FILE wpinet_jar.cmake DESTINATION share/wpinet) add_library(wpinetjni ${wpinet_jni_src}) wpilib_target_warnings(wpinetjni) diff --git a/wpinet/wpinet-config.cmake.in b/wpinet/wpinet-config.cmake.in index f54fe455b7..e62719bc2a 100644 --- a/wpinet/wpinet-config.cmake.in +++ b/wpinet/wpinet-config.cmake.in @@ -5,3 +5,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpinet.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/wpinet_jar.cmake) +endif() diff --git a/wpiunits/CMakeLists.txt b/wpiunits/CMakeLists.txt index 40ce217480..bdbe42b8f5 100644 --- a/wpiunits/CMakeLists.txt +++ b/wpiunits/CMakeLists.txt @@ -10,10 +10,7 @@ if(WITH_JAVA) add_jar(wpiunits_jar ${JAVA_SOURCES} OUTPUT_NAME wpiunits) - get_property(WPIUNITS_JAR_FILE TARGET wpiunits_jar PROPERTY JAR_FILE) - install(FILES ${WPIUNITS_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET wpiunits_jar PROPERTY FOLDER "java") - + install_jar(wpiunits_jar DESTINATION ${java_lib_dest}) + install_jar_exports(TARGETS wpiunits_jar FILE wpiunits.cmake DESTINATION share/wpiunits) install(FILES wpiunits-config.cmake DESTINATION share/wpiunits) endif() diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index 22a93a3102..083829e124 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -70,10 +70,8 @@ if(WITH_JAVA) GENERATE_NATIVE_HEADERS wpiutil_jni_headers ) - get_property(WPIUTIL_JAR_FILE TARGET wpiutil_jar PROPERTY JAR_FILE) - install(FILES ${WPIUTIL_JAR_FILE} DESTINATION "${java_lib_dest}") - - 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) diff --git a/wpiutil/wpiutil-config.cmake.in b/wpiutil/wpiutil-config.cmake.in index a881a9bf0a..3926ecb910 100644 --- a/wpiutil/wpiutil-config.cmake.in +++ b/wpiutil/wpiutil-config.cmake.in @@ -11,3 +11,6 @@ endif() @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpiutil.cmake) +if(@WITH_JAVA@) + include(${SELF_DIR}/wpiutil_jar.cmake) +endif() diff --git a/xrpVendordep/CMakeLists.txt b/xrpVendordep/CMakeLists.txt index 291926039f..7a481947ce 100644 --- a/xrpVendordep/CMakeLists.txt +++ b/xrpVendordep/CMakeLists.txt @@ -25,10 +25,12 @@ if(WITH_JAVA) OUTPUT_NAME xrpVendordep ) - get_property(xrpVendordep_JAR_FILE TARGET xrpVendordep_jar PROPERTY JAR_FILE) - install(FILES ${xrpVendordep_JAR_FILE} DESTINATION "${java_lib_dest}") - - set_property(TARGET xrpVendordep_jar PROPERTY FOLDER "java") + install_jar(xrpVendordep_jar DESTINATION ${java_lib_dest}) + install_jar_exports( + TARGETS xrpVendordep_jar + FILE xrpVendordep_jar.cmake + DESTINATION share/xrpVendordep + ) endif() if(WITH_JAVA_SOURCE) diff --git a/xrpVendordep/xrpVendordep-config.cmake.in b/xrpVendordep/xrpVendordep-config.cmake.in index ad06e4ce2e..4287694002 100644 --- a/xrpVendordep/xrpVendordep-config.cmake.in +++ b/xrpVendordep/xrpVendordep-config.cmake.in @@ -9,3 +9,6 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/xrpVendordep.cmake) + if(@WITH_JAVA@) + include(${SELF_DIR}/xrpVendordep_jar.cmake) + endif()