mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-27 02:01:42 +00:00
Add missing compiler flags and fix warnings (#4889)
This makes the build fail on warnings. It caught two out-of-bounds reads and a deprecation warning.
This commit is contained in:
@@ -8,5 +8,5 @@
|
||||
|
||||
int main() {
|
||||
fmt::print("Hello World\n");
|
||||
fmt::print("{}\n", HAL_GetRuntimeType());
|
||||
fmt::print("{}\n", static_cast<int32_t>(HAL_GetRuntimeType()));
|
||||
}
|
||||
|
||||
@@ -23,7 +23,8 @@ constexpr int32_t kNumDigitalChannels =
|
||||
kNumDigitalHeaders + kNumDigitalMXPChannels + kNumDigitalSPIPortChannels;
|
||||
constexpr int32_t kNumPWMChannels = tPWM::kNumMXPRegisters + kNumPWMHeaders;
|
||||
constexpr int32_t kNumDigitalPWMOutputs =
|
||||
tDIO::kNumPWMDutyCycleAElements + tDIO::kNumPWMDutyCycleBElements;
|
||||
static_cast<int32_t>(tDIO::kNumPWMDutyCycleAElements) +
|
||||
static_cast<int32_t>(tDIO::kNumPWMDutyCycleBElements);
|
||||
constexpr int32_t kNumEncoders = tEncoder::kNumSystems;
|
||||
constexpr int32_t kNumInterrupts = tInterrupt::kNumSystems;
|
||||
constexpr int32_t kNumRelayChannels = 8;
|
||||
|
||||
@@ -125,8 +125,8 @@ void HAL_InitializeSPI(HAL_SPIPort port, int32_t* status) {
|
||||
// CS0 is not a DIO port, so nothing to allocate
|
||||
handle = open("/dev/spidev0.0", O_RDWR);
|
||||
if (handle < 0) {
|
||||
fmt::print("Failed to open SPI port {}: {}\n", port,
|
||||
std::strerror(errno));
|
||||
fmt::print("Failed to open SPI port {}: {}\n",
|
||||
static_cast<int32_t>(port), std::strerror(errno));
|
||||
CommonSPIPortFree();
|
||||
return;
|
||||
}
|
||||
@@ -147,8 +147,8 @@ void HAL_InitializeSPI(HAL_SPIPort port, int32_t* status) {
|
||||
}
|
||||
handle = open("/dev/spidev0.1", O_RDWR);
|
||||
if (handle < 0) {
|
||||
fmt::print("Failed to open SPI port {}: {}\n", port,
|
||||
std::strerror(errno));
|
||||
fmt::print("Failed to open SPI port {}: {}\n",
|
||||
static_cast<int32_t>(port), std::strerror(errno));
|
||||
CommonSPIPortFree();
|
||||
HAL_FreeDIOPort(digitalHandles[0]);
|
||||
return;
|
||||
@@ -170,8 +170,8 @@ void HAL_InitializeSPI(HAL_SPIPort port, int32_t* status) {
|
||||
}
|
||||
handle = open("/dev/spidev0.2", O_RDWR);
|
||||
if (handle < 0) {
|
||||
fmt::print("Failed to open SPI port {}: {}\n", port,
|
||||
std::strerror(errno));
|
||||
fmt::print("Failed to open SPI port {}: {}\n",
|
||||
static_cast<int32_t>(port), std::strerror(errno));
|
||||
CommonSPIPortFree();
|
||||
HAL_FreeDIOPort(digitalHandles[1]);
|
||||
return;
|
||||
@@ -193,8 +193,8 @@ void HAL_InitializeSPI(HAL_SPIPort port, int32_t* status) {
|
||||
}
|
||||
handle = open("/dev/spidev0.3", O_RDWR);
|
||||
if (handle < 0) {
|
||||
fmt::print("Failed to open SPI port {}: {}\n", port,
|
||||
std::strerror(errno));
|
||||
fmt::print("Failed to open SPI port {}: {}\n",
|
||||
static_cast<int32_t>(port), std::strerror(errno));
|
||||
CommonSPIPortFree();
|
||||
HAL_FreeDIOPort(digitalHandles[2]);
|
||||
return;
|
||||
@@ -240,8 +240,8 @@ void HAL_InitializeSPI(HAL_SPIPort port, int32_t* status) {
|
||||
digitalSystem->readEnableMXPSpecialFunction(status) | 0x00F0, status);
|
||||
handle = open("/dev/spidev1.0", O_RDWR);
|
||||
if (handle < 0) {
|
||||
fmt::print("Failed to open SPI port {}: {}\n", port,
|
||||
std::strerror(errno));
|
||||
fmt::print("Failed to open SPI port {}: {}\n",
|
||||
static_cast<int32_t>(port), std::strerror(errno));
|
||||
HAL_FreeDIOPort(digitalHandles[5]); // free the first port allocated
|
||||
HAL_FreeDIOPort(digitalHandles[6]); // free the second port allocated
|
||||
HAL_FreeDIOPort(digitalHandles[7]); // free the third port allocated
|
||||
|
||||
@@ -41,14 +41,16 @@ nativeUtils.platformConfigs.each {
|
||||
}
|
||||
}
|
||||
|
||||
// Suppress OpenCV warning
|
||||
// NativeUtils adds the following OpenCV warning suppression for Linux, but not
|
||||
// for macOS
|
||||
// https://github.com/opencv/opencv/issues/20269
|
||||
nativeUtils.platformConfigs.each {
|
||||
if (it.name == nativeUtils.wpi.platforms.linuxx64) {
|
||||
it.cppCompiler.args.add("-Wno-deprecated-enum-enum-conversion")
|
||||
} else if (it.name.contains('osx')) {
|
||||
it.cppCompiler.args.add("-Wno-deprecated-anon-enum-enum-conversion")
|
||||
}
|
||||
nativeUtils.platformConfigs.osxuniversal.cppCompiler.args.add("-Wno-deprecated-anon-enum-enum-conversion")
|
||||
|
||||
// NativeUtils uses the wrong compiler arguments for roboRIO targets, but it's
|
||||
// too late to fix NativeUtils for the 2023 season. This temporarily overwrites
|
||||
// the flags.
|
||||
nativeUtils.platformConfigs.named(nativeUtils.wpi.platforms.roborio).configure {
|
||||
cppCompiler.args.remove('-Wno-error=deprecated-declarations')
|
||||
}
|
||||
|
||||
nativeUtils.platformConfigs.linuxathena.linker.args.add("-Wl,--fatal-warnings")
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
|
||||
int main() {
|
||||
fmt::print("Hello World\n");
|
||||
fmt::print("{}\n", HAL_GetRuntimeType());
|
||||
fmt::print("{}\n", static_cast<int32_t>(HAL_GetRuntimeType()));
|
||||
fmt::print("{}\n", GetWPILibVersion());
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ foreach(example ${EXAMPLES})
|
||||
file(GLOB_RECURSE sources src/main/cpp/examples/${example}/cpp/*.cpp
|
||||
src/main/cpp/examples/${example}/c/*.c)
|
||||
add_executable(${example} ${sources})
|
||||
wpilib_target_warnings(${example})
|
||||
target_include_directories(${example} PUBLIC src/main/cpp/examples/${example}/include)
|
||||
target_link_libraries(${example} wpilibc wpilibNewCommands)
|
||||
|
||||
@@ -28,6 +29,7 @@ foreach(template ${TEMPLATES})
|
||||
file(GLOB_RECURSE sources src/main/cpp/templates/${template}/cpp/*.cpp
|
||||
src/main/cpp/templates/${template}/c/*.c)
|
||||
add_executable(${template} ${sources})
|
||||
wpilib_target_warnings(${template})
|
||||
target_include_directories(${template} PUBLIC src/main/cpp/templates/${template}/include)
|
||||
target_link_libraries(${template} wpilibc wpilibNewCommands)
|
||||
endforeach()
|
||||
|
||||
@@ -19,6 +19,6 @@ class ExampleGlobalMeasurementSensor {
|
||||
return frc::Pose2d{estimatedRobotPose.X() + units::meter_t{randVec(0)},
|
||||
estimatedRobotPose.Y() + units::meter_t{randVec(1)},
|
||||
estimatedRobotPose.Rotation() +
|
||||
frc::Rotation2d{units::radian_t{randVec(3)}}};
|
||||
frc::Rotation2d{units::radian_t{randVec(2)}}};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -51,7 +51,7 @@ class RobotContainer {
|
||||
OnBoardIO::ChannelMode::INPUT};
|
||||
|
||||
// Example button
|
||||
frc2::Button m_onboardButtonA{
|
||||
frc2::Trigger m_onboardButtonA{
|
||||
[this] { return m_onboardIO.GetButtonAPressed(); }};
|
||||
|
||||
// Autonomous commands.
|
||||
|
||||
@@ -19,6 +19,6 @@ class ExampleGlobalMeasurementSensor {
|
||||
return frc::Pose2d{estimatedRobotPose.X() + units::meter_t{randVec(0)},
|
||||
estimatedRobotPose.Y() + units::meter_t{randVec(1)},
|
||||
estimatedRobotPose.Rotation() +
|
||||
frc::Rotation2d{units::radian_t{randVec(3)}}};
|
||||
frc::Rotation2d{units::radian_t{randVec(2)}}};
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user