Fixed build issue with MinGW (#64)

This commit is contained in:
Mariotaku
2021-09-16 15:30:47 +09:00
committed by GitHub
parent 5b2cf1b8f7
commit 5ed9a6508a
4 changed files with 30 additions and 3 deletions

View File

@@ -8,8 +8,13 @@ option(USE_MBEDTLS "Use MbedTLS instead of OpenSSL" OFF)
SET(CMAKE_C_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE_BACKUP ${CMAKE_POSITION_INDEPENDENT_CODE})
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
add_subdirectory(enet)
set(CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE_BACKUP})
unset(CMAKE_POSITION_INDEPENDENT_CODE_BACKUP)
aux_source_directory(src SRC_LIST)
aux_source_directory(enet SRC_LIST)
aux_source_directory(reedsolomon SRC_LIST)
# Build shared library by default, but allows user override
@@ -25,9 +30,13 @@ if (BUILD_SHARED_LIBS_OVERRIDE)
unset(BUILD_SHARED_LIBS_OVERRIDE)
endif()
target_link_libraries(moonlight-common-c PRIVATE enet)
if(MSVC)
target_compile_options(moonlight-common-c PRIVATE /W3 /wd4100 /wd4232 /wd5105 /WX)
target_link_libraries(moonlight-common-c PRIVATE ws2_32.lib winmm.lib)
elseif(MINGW)
target_link_libraries(moonlight-common-c PRIVATE -lws2_32 -lwinmm)
else()
target_compile_options(moonlight-common-c PRIVATE -Wall -Wextra -Wno-unused-parameter -Werror)
endif()
@@ -64,7 +73,6 @@ endif()
target_include_directories(moonlight-common-c SYSTEM PUBLIC src)
target_include_directories(moonlight-common-c PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/enet/include
${CMAKE_CURRENT_SOURCE_DIR}/reedsolomon
)

2
enet

Submodule enet updated: 8d69c5abe4...9868a2653f

View File

@@ -23,6 +23,10 @@ DWORD (WINAPI *pfnWlanEnumInterfaces)(HANDLE hClientHandle, PVOID pReserved, PWL
VOID (WINAPI *pfnWlanFreeMemory)(PVOID pMemory);
DWORD (WINAPI *pfnWlanSetInterface)(HANDLE hClientHandle, CONST GUID *pInterfaceGuid, WLAN_INTF_OPCODE OpCode, DWORD dwDataSize, CONST PVOID pData, PVOID pReserved);
#ifndef WLAN_API_MAKE_VERSION
#define WLAN_API_MAKE_VERSION(_major, _minor) (((DWORD)(_minor)) << 16 | (_major))
#endif
#endif
void addrToUrlSafeString(struct sockaddr_storage* addr, char* string)
@@ -302,7 +306,11 @@ int setSocketNonBlocking(SOCKET s, bool enabled) {
#elif defined(O_NONBLOCK)
return fcntl(s, F_SETFL, (enabled ? O_NONBLOCK : 0) | (fcntl(s, F_GETFL) & ~O_NONBLOCK));
#elif defined(FIONBIO)
#ifdef LC_WINDOWS
u_long val = enabled ? 1 : 0;
#else
int val = enabled ? 1 : 0;
#endif
return ioctlsocket(s, FIONBIO, &val);
#else
#error Please define your platform non-blocking sockets API!

View File

@@ -7,7 +7,11 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <wlanapi.h>
#ifndef __MINGW32__
#include <timeapi.h>
#else
#include <mmsystem.h>
#endif
#define SetLastSocketError(x) WSASetLastError(x)
#define LastSocketError() WSAGetLastError()
@@ -23,6 +27,13 @@
#endif
#define EINTR WSAEINTR
#ifdef __MINGW32__
#undef EWOULDBLOCK
#undef EINPROGRESS
#undef ETIMEDOUT
#undef ECONNREFUSED
#endif
#define EWOULDBLOCK WSAEWOULDBLOCK
#define EINPROGRESS WSAEINPROGRESS
#define ETIMEDOUT WSAETIMEDOUT