mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[build] Add error message when downloading files in CMake (#5593)
CMake's file(DOWNLOAD) function fails silently, leading to an error occurring due to a missing file later in the build. This fails quickly and produces a better error message.
This commit is contained in:
11
cmake/modules/DownloadAndCheck.cmake
Normal file
11
cmake/modules/DownloadAndCheck.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
macro(download_and_check source destination)
|
||||
file(DOWNLOAD ${source} ${destination} STATUS download_status)
|
||||
list(GET download_status 0 status_code)
|
||||
list(GET download_status 1 status_message)
|
||||
|
||||
if(${status_code} EQUAL 0)
|
||||
message(VERBOSE "Download of \"${source}\" successful.")
|
||||
else()
|
||||
message(FATAL_ERROR "Download of \"${source}\" failed: ${status_message}")
|
||||
endif()
|
||||
endmacro()
|
||||
@@ -3,6 +3,7 @@ project(wpimath)
|
||||
include(SubDirList)
|
||||
include(CompileWarnings)
|
||||
include(AddTest)
|
||||
include(DownloadAndCheck)
|
||||
|
||||
file(GLOB wpimath_jni_src src/main/native/cpp/jni/WPIMathJNI_DARE.cpp
|
||||
src/main/native/cpp/jni/WPIMathJNI_Eigen.cpp
|
||||
@@ -24,19 +25,19 @@ if (WITH_JAVA)
|
||||
|
||||
message(STATUS "Downloading EJML jarfiles...")
|
||||
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-cdense/0.42/ejml-cdense-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-cdense/0.42/ejml-cdense-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-cdense-0.42.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-core/0.42/ejml-core-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-core/0.42/ejml-core-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-core-0.42.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-ddense/0.42/ejml-ddense-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-ddense/0.42/ejml-ddense-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-ddense-0.42.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-dsparse/0.42/ejml-dsparse-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-dsparse/0.42/ejml-dsparse-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-dsparse-0.42.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-fdense/0.42/ejml-fdense-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-fdense/0.42/ejml-fdense-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-fdense-0.42.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-simple/0.42/ejml-simple-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-simple/0.42/ejml-simple-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-simple-0.42.jar")
|
||||
file(DOWNLOAD "${BASE_URL}org/ejml/ejml-zdense/0.42/ejml-zdense-0.42.jar"
|
||||
download_and_check("${BASE_URL}org/ejml/ejml-zdense/0.42/ejml-zdense-0.42.jar"
|
||||
"${JAR_ROOT}/ejml-zdense-0.42.jar")
|
||||
|
||||
message(STATUS "All files downloaded.")
|
||||
|
||||
@@ -4,6 +4,7 @@ include(SubDirList)
|
||||
include(GenResources)
|
||||
include(CompileWarnings)
|
||||
include(AddTest)
|
||||
include(DownloadAndCheck)
|
||||
|
||||
file(GLOB wpiutil_jni_src src/main/native/cpp/jni/WPIUtilJNI.cpp src/main/native/cpp/jni/DataLogJNI.cpp)
|
||||
|
||||
@@ -20,11 +21,11 @@ if (WITH_JAVA)
|
||||
|
||||
message(STATUS "Downloading Jackson jarfiles...")
|
||||
|
||||
file(DOWNLOAD "${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")
|
||||
file(DOWNLOAD "${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")
|
||||
file(DOWNLOAD "${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")
|
||||
|
||||
message(STATUS "All files downloaded.")
|
||||
|
||||
Reference in New Issue
Block a user