2019-06-23 12:44:28 -07:00
|
|
|
macro(wpilib_target_warnings target)
|
|
|
|
|
if(NOT MSVC)
|
2023-12-22 12:38:38 -08:00
|
|
|
set(WARNING_FLAGS
|
|
|
|
|
-Wall
|
|
|
|
|
-pedantic
|
|
|
|
|
-Wextra
|
|
|
|
|
-Wno-unused-parameter
|
2024-07-13 00:51:55 -04:00
|
|
|
-Wformat=2
|
2023-12-22 12:38:38 -08:00
|
|
|
${WPILIB_TARGET_WARNINGS}
|
2023-11-30 19:52:21 -05:00
|
|
|
)
|
2023-12-22 12:38:38 -08:00
|
|
|
if(NOT NO_WERROR)
|
|
|
|
|
set(WARNING_FLAGS ${WARNING_FLAGS} -Werror)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
target_compile_options(${target} PRIVATE ${WARNING_FLAGS})
|
2019-06-23 12:44:28 -07:00
|
|
|
else()
|
2024-12-26 22:33:20 -05:00
|
|
|
set(WARNING_FLAGS
|
|
|
|
|
/wd4146
|
|
|
|
|
/wd4244
|
|
|
|
|
/wd4251
|
|
|
|
|
/wd4267
|
|
|
|
|
/wd4324
|
|
|
|
|
/D_CRT_SECURE_NO_WARNINGS
|
|
|
|
|
${WPILIB_TARGET_WARNINGS}
|
2023-11-30 19:52:21 -05:00
|
|
|
)
|
2024-12-26 22:33:20 -05:00
|
|
|
if(NOT NO_WERROR)
|
|
|
|
|
set(WARNING_FLAGS ${WARNING_FLAGS} /WX)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
target_compile_options(${target} PRIVATE ${WARNING_FLAGS})
|
2019-06-23 12:44:28 -07:00
|
|
|
endif()
|
2022-08-19 23:51:43 -07:00
|
|
|
|
|
|
|
|
# Suppress C++-specific OpenCV warning; C compiler rejects it with an error
|
|
|
|
|
# https://github.com/opencv/opencv/issues/20269
|
|
|
|
|
if(UNIX AND NOT APPLE)
|
2023-11-30 19:52:21 -05:00
|
|
|
target_compile_options(
|
|
|
|
|
${target}
|
|
|
|
|
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-enum-enum-conversion>
|
|
|
|
|
)
|
2022-08-19 23:51:43 -07:00
|
|
|
elseif(UNIX AND APPLE)
|
2023-11-30 19:52:21 -05:00
|
|
|
target_compile_options(
|
|
|
|
|
${target}
|
|
|
|
|
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-anon-enum-enum-conversion>
|
|
|
|
|
)
|
2022-08-19 23:51:43 -07:00
|
|
|
endif()
|
2023-09-14 20:46:44 -07:00
|
|
|
|
2023-09-20 21:03:55 -07:00
|
|
|
# Suppress warning "enumeration types with a fixed underlying type are a
|
|
|
|
|
# Clang extension"
|
2025-04-25 21:56:26 -07:00
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT EMSCRIPTEN)
|
2025-06-30 00:09:41 -07:00
|
|
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 20.0)
|
|
|
|
|
target_compile_options(
|
|
|
|
|
${target}
|
|
|
|
|
PRIVATE $<$<COMPILE_LANGUAGE:C>:-Wno-fixed-enum-extension>
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
target_compile_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:C>:-Wno-c23-extensions>)
|
|
|
|
|
endif()
|
2023-09-20 21:03:55 -07:00
|
|
|
endif()
|
|
|
|
|
|
2023-09-14 20:46:44 -07:00
|
|
|
# Compress debug info with GCC
|
2023-11-30 19:52:21 -05:00
|
|
|
if(
|
|
|
|
|
(${CMAKE_BUILD_TYPE} STREQUAL "Debug" OR ${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
|
|
|
|
|
AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU"
|
|
|
|
|
)
|
|
|
|
|
target_compile_options(${target} PRIVATE -gz=zlib)
|
2026-04-29 15:14:11 -04:00
|
|
|
target_link_options(${target} PRIVATE -gz=zlib)
|
2023-09-14 20:46:44 -07:00
|
|
|
endif()
|
2019-06-23 12:44:28 -07:00
|
|
|
endmacro()
|