mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
I ran the CMake configure with:
```bash
emcmake cmake -B build-wasm -S . \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DWITH_SIMULATION_MODULES=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_GUI=OFF \
-DWITH_CSCORE=OFF
```
* Turned off simulation modules because they require shared libraries
* Turned off GUI because glfw requires libssh
* Turned off cscore because it requires OpenCV
I still get the following compiler errors:
```
/home/tav/frc/wpilib/allwpilib/wpinet/src/main/native/thirdparty/libuv/src/unix/linux.cpp:43:10: fatal error: 'sys/epoll.h' file not found
43 | #include <sys/epoll.h>
| ^~~~~~~~~~~~~
```
```
/home/tav/frc/wpilib/allwpilib/wpinet/src/main/native/thirdparty/libuv/src/unix/stream.cpp:991:56: error: comparison of integers of different signs: 'unsigned long' and 'long' [-Werror,-Wsign-compare]
991 | for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg)) {
| ^~~~~~~~~~~~~~~~~~~~~~
/home/tav/.cache/emscripten/sysroot/include/sys/socket.h:358:44: note: expanded from macro 'CMSG_NXTHDR'
358 | __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
```
/home/tav/frc/wpilib/allwpilib/wpinet/src/main/native/thirdparty/libuv/src/unix/core.cpp:748:56: error: comparison of integers of different signs: 'unsigned long' and 'long' [-Werror,-Wsign-compare]
748 | for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg))
| ^~~~~~~~~~~~~~~~~~~~~~
/home/tav/.cache/emscripten/sysroot/include/sys/socket.h:358:44: note: expanded from macro 'CMSG_NXTHDR'
358 | __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
61 lines
1.8 KiB
CMake
61 lines
1.8 KiB
CMake
macro(wpilib_target_warnings target)
|
|
if(NOT MSVC)
|
|
set(WARNING_FLAGS
|
|
-Wall
|
|
-pedantic
|
|
-Wextra
|
|
-Wno-unused-parameter
|
|
-Wformat=2
|
|
${WPILIB_TARGET_WARNINGS}
|
|
)
|
|
if(NOT NO_WERROR)
|
|
set(WARNING_FLAGS ${WARNING_FLAGS} -Werror)
|
|
endif()
|
|
|
|
target_compile_options(${target} PRIVATE ${WARNING_FLAGS})
|
|
else()
|
|
set(WARNING_FLAGS
|
|
/wd4146
|
|
/wd4244
|
|
/wd4251
|
|
/wd4267
|
|
/wd4324
|
|
/D_CRT_SECURE_NO_WARNINGS
|
|
${WPILIB_TARGET_WARNINGS}
|
|
)
|
|
if(NOT NO_WERROR)
|
|
set(WARNING_FLAGS ${WARNING_FLAGS} /WX)
|
|
endif()
|
|
|
|
target_compile_options(${target} PRIVATE ${WARNING_FLAGS})
|
|
endif()
|
|
|
|
# Suppress C++-specific OpenCV warning; C compiler rejects it with an error
|
|
# https://github.com/opencv/opencv/issues/20269
|
|
if(UNIX AND NOT APPLE)
|
|
target_compile_options(
|
|
${target}
|
|
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-enum-enum-conversion>
|
|
)
|
|
elseif(UNIX AND APPLE)
|
|
target_compile_options(
|
|
${target}
|
|
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-anon-enum-enum-conversion>
|
|
)
|
|
endif()
|
|
|
|
# Suppress warning "enumeration types with a fixed underlying type are a
|
|
# Clang extension"
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT EMSCRIPTEN)
|
|
target_compile_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:C>:-Wno-fixed-enum-extension>)
|
|
endif()
|
|
|
|
# Compress debug info with GCC
|
|
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)
|
|
endif()
|
|
endmacro()
|