diff --git a/.gersemirc b/.gersemirc index 19ed2c239f..d102ccb5a4 100644 --- a/.gersemirc +++ b/.gersemirc @@ -1,5 +1,5 @@ color: false -definitions: [] +definitions: [cmake/modules] line_length: 100 list_expansion: favour-inlining quiet: false diff --git a/CMakeLists.txt b/CMakeLists.txt index fd08d1254c..b806698633 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -198,6 +198,9 @@ endif() set(include_dest include) set(java_lib_dest java) set(jni_lib_dest jni) +if(WITH_JAVA) + set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") +endif() if(USE_SYSTEM_LIBUV) set(LIBUV_SYSTEM_REPLACE @@ -284,7 +287,7 @@ set(CMAKE_EXE_LINKER_FLAGS_ASAN set(CMAKE_SHARED_LINKER_FLAGS_ASAN "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fsanitize=address" CACHE STRING - "Linker lags to be used to create shared libraries for Asan build type." + "Linker flags to be used to create shared libraries for Asan build type." FORCE ) @@ -312,7 +315,7 @@ set(CMAKE_EXE_LINKER_FLAGS_TSAN set(CMAKE_SHARED_LINKER_FLAGS_TSAN "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fsanitize=thread" CACHE STRING - "Linker lags to be used to create shared libraries for Tsan build type." + "Linker flags to be used to create shared libraries for Tsan build type." FORCE ) @@ -340,7 +343,7 @@ set(CMAKE_EXE_LINKER_FLAGS_UBSAN set(CMAKE_SHARED_LINKER_FLAGS_UBSAN "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fsanitize=undefined" CACHE STRING - "Linker lags to be used to create shared libraries for Ubsan build type." + "Linker flags to be used to create shared libraries for Ubsan build type." FORCE ) diff --git a/apriltag/CMakeLists.txt b/apriltag/CMakeLists.txt index 7c0e0000e4..ee3eafe141 100644 --- a/apriltag/CMakeLists.txt +++ b/apriltag/CMakeLists.txt @@ -30,7 +30,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") set(CMAKE_JNI_TARGET true) @@ -63,6 +62,7 @@ if(WITH_JAVA) OUTPUT_NAME apriltag GENERATE_NATIVE_HEADERS apriltag_jni_headers ) + 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) @@ -100,7 +100,13 @@ if(WITH_JAVA_SOURCE) set_property(TARGET apriltag_src_jar PROPERTY FOLDER "java") endif() -generate_resources(src/main/native/resources/edu/wpi/first/apriltag generated/main/cpp APRILTAG frc apriltag_resources_src) +generate_resources( + src/main/native/resources/edu/wpi/first/apriltag + generated/main/cpp + APRILTAG + frc + apriltag_resources_src +) file(GLOB apriltag_native_src src/main/native/cpp/*.cpp) diff --git a/cameraserver/CMakeLists.txt b/cameraserver/CMakeLists.txt index 41d132793b..5e6d92f649 100644 --- a/cameraserver/CMakeLists.txt +++ b/cameraserver/CMakeLists.txt @@ -9,7 +9,6 @@ find_package(OpenCV REQUIRED) if(WITH_JAVA) find_package(Java REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") #find java files, copy them locally @@ -30,6 +29,7 @@ if(WITH_JAVA) INCLUDE_JARS wpiutil_jar cscore_jar ntcore_jar ${OPENCV_JAR_FILE} OUTPUT_NAME cameraserver ) + set_property(TARGET cameraserver_jar PROPERTY FOLDER "java") install_jar(cameraserver_jar DESTINATION ${java_lib_dest}) install_jar_exports( diff --git a/cmake/modules/AddTest.cmake b/cmake/modules/AddTest.cmake index 4896c4a222..224cffa3b2 100644 --- a/cmake/modules/AddTest.cmake +++ b/cmake/modules/AddTest.cmake @@ -3,6 +3,7 @@ include(CompileWarnings) macro(wpilib_add_test name srcdir) file(GLOB_RECURSE test_src ${srcdir}/*.cpp) add_executable(${name}_test ${test_src}) + set_property(TARGET ${name}_test PROPERTY FOLDER "tests") wpilib_target_warnings(${name}_test) if(BUILD_SHARED_LIBS) target_compile_definitions(${name}_test PRIVATE -DGTEST_LINKED_AS_SHARED_LIBRARY) diff --git a/cscore/CMakeLists.txt b/cscore/CMakeLists.txt index 94338ea44b..1fd1e0b6a0 100644 --- a/cscore/CMakeLists.txt +++ b/cscore/CMakeLists.txt @@ -84,7 +84,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") #find java files, copy them locally @@ -129,6 +128,7 @@ if(WITH_JAVA) OUTPUT_NAME cscore GENERATE_NATIVE_HEADERS cscore_jni_headers ) + set_property(TARGET cscore_jar PROPERTY FOLDER "java") install_jar(cscore_jar DESTINATION ${java_lib_dest}) install_jar_exports(TARGETS cscore_jar FILE cscore_jar.cmake DESTINATION share/cscore) diff --git a/fieldImages/CMakeLists.txt b/fieldImages/CMakeLists.txt index 9f634ec32e..d5607c99e1 100644 --- a/fieldImages/CMakeLists.txt +++ b/fieldImages/CMakeLists.txt @@ -32,7 +32,13 @@ if(WITH_JAVA) set_property(TARGET field_images_jar PROPERTY FOLDER "java") endif() -generate_resources(src/main/native/resources/edu/wpi/first/fields generated/main/cpp FIELDS fields field_images_resources_src) +generate_resources( + src/main/native/resources/edu/wpi/first/fields + generated/main/cpp + FIELDS + fields + field_images_resources_src +) add_library(fieldImages src/main/native/cpp/fields.cpp ${field_images_resources_src}) set_target_properties(fieldImages PROPERTIES DEBUG_POSTFIX "d") diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index bfa54f37f1..1a735a6854 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -58,9 +58,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") - - configure_file(src/generate/FRCNetComm.java.in FRCNetComm.java) file(GLOB_RECURSE hal_shared_jni_src src/main/native/cpp/jni/*.cpp) @@ -74,6 +71,7 @@ if(WITH_JAVA) OUTPUT_NAME wpiHal GENERATE_NATIVE_HEADERS hal_jni_headers ) + 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) diff --git a/ntcore/CMakeLists.txt b/ntcore/CMakeLists.txt index 5270eda40c..bbf3790a7b 100644 --- a/ntcore/CMakeLists.txt +++ b/ntcore/CMakeLists.txt @@ -42,7 +42,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") file(GLOB QUICKBUF_JAR ${WPILIB_BINARY_DIR}/wpiutil/thirdparty/quickbuf/*.jar) @@ -60,6 +59,7 @@ if(WITH_JAVA) OUTPUT_NAME ntcore GENERATE_NATIVE_HEADERS ntcore_jni_headers ) + 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) diff --git a/romiVendordep/CMakeLists.txt b/romiVendordep/CMakeLists.txt index 4cc6a075e4..960e7d112e 100644 --- a/romiVendordep/CMakeLists.txt +++ b/romiVendordep/CMakeLists.txt @@ -7,7 +7,6 @@ include(AddTest) if(WITH_JAVA) find_package(Java REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) add_jar( @@ -24,6 +23,7 @@ if(WITH_JAVA) wpilibj_jar OUTPUT_NAME romiVendordep ) + set_property(TARGET romiVendordep_jar PROPERTY FOLDER "java") install_jar(romiVendordep_jar DESTINATION ${java_lib_dest}) install_jar_exports( diff --git a/wpilibNewCommands/CMakeLists.txt b/wpilibNewCommands/CMakeLists.txt index e878e35abc..cf17bd1427 100644 --- a/wpilibNewCommands/CMakeLists.txt +++ b/wpilibNewCommands/CMakeLists.txt @@ -7,7 +7,6 @@ include(AddTest) if(WITH_JAVA) find_package(Java REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) add_jar( @@ -24,6 +23,7 @@ if(WITH_JAVA) wpilibj_jar OUTPUT_NAME wpilibNewCommands ) + set_property(TARGET wpilibNewCommands_jar PROPERTY FOLDER "java") install_jar(wpilibNewCommands_jar DESTINATION ${java_lib_dest}) install_jar_exports( diff --git a/wpilibcExamples/CMakeLists.txt b/wpilibcExamples/CMakeLists.txt index 4554b94dcf..8c64f8e97c 100644 --- a/wpilibcExamples/CMakeLists.txt +++ b/wpilibcExamples/CMakeLists.txt @@ -4,7 +4,7 @@ include(AddTest) include(SubDirList) subdir_list(TEMPLATES ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/main/cpp/templates) -subdir_list(EXAMPLES ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/main/cpp/examples) +subdir_list(EXAMPLES ${CMAKE_SOURCE_DIR}/wpilibcExamples/src/main/cpp/examples) foreach(example ${EXAMPLES}) file( diff --git a/wpilibj/CMakeLists.txt b/wpilibj/CMakeLists.txt index 624e87a39a..684c26062b 100644 --- a/wpilibj/CMakeLists.txt +++ b/wpilibj/CMakeLists.txt @@ -5,7 +5,6 @@ if(WITH_JAVA) find_package(OpenCV REQUIRED) find_package(Java REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") set(OPENCV_JAVA_INSTALL_DIR ${OpenCV_INSTALL_PATH}/share/OpenCV/java/) @@ -39,6 +38,7 @@ if(WITH_JAVA) wpiutil_jar OUTPUT_NAME wpilibj ) + 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) diff --git a/wpimath/CMakeLists.txt b/wpimath/CMakeLists.txt index ca49610175..45badc6fc3 100644 --- a/wpimath/CMakeLists.txt +++ b/wpimath/CMakeLists.txt @@ -33,7 +33,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") if(NOT EXISTS "${WPILIB_BINARY_DIR}/wpimath/thirdparty/ejml/ejml-simple-0.43.1.jar") set(BASE_URL "https://search.maven.org/remotecontent?filepath=") @@ -41,25 +40,32 @@ if(WITH_JAVA) message(STATUS "Downloading EJML jarfiles...") - download_and_check("${BASE_URL}org/ejml/ejml-cdense/0.43.1/ejml-cdense-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-cdense/0.43.1/ejml-cdense-0.43.1.jar" "${JAR_ROOT}/ejml-cdense-0.43.1.jar" ) - download_and_check("${BASE_URL}org/ejml/ejml-core/0.43.1/ejml-core-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-core/0.43.1/ejml-core-0.43.1.jar" "${JAR_ROOT}/ejml-core-0.43.1.jar" ) - download_and_check("${BASE_URL}org/ejml/ejml-ddense/0.43.1/ejml-ddense-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-ddense/0.43.1/ejml-ddense-0.43.1.jar" "${JAR_ROOT}/ejml-ddense-0.43.1.jar" ) - download_and_check("${BASE_URL}org/ejml/ejml-dsparse/0.43.1/ejml-dsparse-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-dsparse/0.43.1/ejml-dsparse-0.43.1.jar" "${JAR_ROOT}/ejml-dsparse-0.43.1.jar" ) - download_and_check("${BASE_URL}org/ejml/ejml-fdense/0.43.1/ejml-fdense-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-fdense/0.43.1/ejml-fdense-0.43.1.jar" "${JAR_ROOT}/ejml-fdense-0.43.1.jar" ) - download_and_check("${BASE_URL}org/ejml/ejml-simple/0.43.1/ejml-simple-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-simple/0.43.1/ejml-simple-0.43.1.jar" "${JAR_ROOT}/ejml-simple-0.43.1.jar" ) - download_and_check("${BASE_URL}org/ejml/ejml-zdense/0.43.1/ejml-zdense-0.43.1.jar" + download_and_check( + "${BASE_URL}org/ejml/ejml-zdense/0.43.1/ejml-zdense-0.43.1.jar" "${JAR_ROOT}/ejml-zdense-0.43.1.jar" ) @@ -83,6 +89,7 @@ if(WITH_JAVA) OUTPUT_NAME wpimath GENERATE_NATIVE_HEADERS wpimath_jni_headers ) + 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) diff --git a/wpinet/CMakeLists.txt b/wpinet/CMakeLists.txt index 6cd5051ffe..7e189a87ab 100644 --- a/wpinet/CMakeLists.txt +++ b/wpinet/CMakeLists.txt @@ -12,7 +12,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") set(CMAKE_JNI_TARGET true) @@ -25,6 +24,7 @@ if(WITH_JAVA) OUTPUT_NAME wpinet GENERATE_NATIVE_HEADERS wpinet_jni_headers ) + 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) diff --git a/wpiunits/CMakeLists.txt b/wpiunits/CMakeLists.txt index bdbe42b8f5..4f71da1b15 100644 --- a/wpiunits/CMakeLists.txt +++ b/wpiunits/CMakeLists.txt @@ -4,11 +4,11 @@ project(wpiunits) if(WITH_JAVA) find_package(Java REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) add_jar(wpiunits_jar ${JAVA_SOURCES} OUTPUT_NAME wpiunits) + 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) diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index 32ce9fa537..113de0a4bc 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -17,7 +17,6 @@ if(WITH_JAVA) find_package(Java REQUIRED) find_package(JNI REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") if(NOT EXISTS "${WPILIB_BINARY_DIR}/wpiutil/thirdparty/jackson/jackson-core-2.15.2.jar") set(BASE_URL "https://search.maven.org/remotecontent?filepath=") @@ -25,13 +24,16 @@ if(WITH_JAVA) message(STATUS "Downloading Jackson jarfiles...") - download_and_check("${BASE_URL}com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar" + download_and_check( + "${BASE_URL}com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar" "${JAR_ROOT}/jackson-core-2.15.2.jar" ) - download_and_check("${BASE_URL}com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar" + download_and_check( + "${BASE_URL}com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar" "${JAR_ROOT}/jackson-databind-2.15.2.jar" ) - download_and_check("${BASE_URL}com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar" + download_and_check( + "${BASE_URL}com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar" "${JAR_ROOT}/jackson-annotations-2.15.2.jar" ) @@ -69,6 +71,7 @@ if(WITH_JAVA) OUTPUT_NAME wpiutil 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) diff --git a/xrpVendordep/CMakeLists.txt b/xrpVendordep/CMakeLists.txt index 650160f3eb..5099beb760 100644 --- a/xrpVendordep/CMakeLists.txt +++ b/xrpVendordep/CMakeLists.txt @@ -7,7 +7,6 @@ include(AddTest) if(WITH_JAVA) find_package(Java REQUIRED) include(UseJava) - set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked") file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) add_jar( @@ -24,6 +23,7 @@ if(WITH_JAVA) wpilibj_jar OUTPUT_NAME xrpVendordep ) + set_property(TARGET xrpVendordep_jar PROPERTY FOLDER "java") install_jar(xrpVendordep_jar DESTINATION ${java_lib_dest}) install_jar_exports(