1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-09 00:00:04 +01:00

mingw: update cross toolchain and add 32 and 64 default builds to sai

This commit is contained in:
Andy Green 2020-06-03 09:29:28 +01:00
parent c0294c3e10
commit 16cbbe2b40
5 changed files with 36 additions and 7 deletions

View file

@ -44,6 +44,14 @@
"build": "mkdir build && cd build && set SAI_CPACK=\"-G ZIP\" && cmake .. -DLWS_OPENSSL_LIBRARIES=\"C:\\Program Files\\OpenSSL\\lib\\libssl.lib;C:\\Program Files\\OpenSSL\\lib\\libcrypto.lib\" -DLWS_OPENSSL_INCLUDE_DIRS=\"C:\\Program Files\\OpenSSL\\include\" -DLWS_EXT_PTHREAD_INCLUDE_DIR=\"C:\\Program Files (x86)\\pthreads\\include\" -DLWS_EXT_PTHREAD_LIBRARIES=\"C:\\Program Files (x86)\\pthreads\\lib\\x64\\libpthreadGC2.a\" ${cmake} && cmake --build . --config DEBUG && set CTEST_OUTPUT_ON_FAILURE=1 && ctest . -C DEBUG -j4 --output-on-failure",
"default": false
},
"mingw32": {
"build": "mkdir build && cd build && cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w32.cmake -DLWS_UNIX_SOCK=0 ${cmake} && cmake --build . --config DEBUG",
"default": false
},
"mingw64": {
"build": "mkdir build && cd build && cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w64.cmake -DLWS_UNIX_SOCK=0 ${cmake} && cmake --build . --config DEBUG",
"default": false
},
"freertos-esp32": {
# official way to get sdkconfig.h is idf.py menuconfig, but
# no obvious way to do that in CI
@ -60,7 +68,7 @@
"configurations": {
"default": {
"cmake": "",
"platforms": "windows-10, linkit-cross, ubuntu-focal-aarch64, freertos-esp32, linux-fedora-32-riscv"
"platforms": "windows-10, linkit-cross, ubuntu-focal-aarch64, freertos-esp32, linux-fedora-32-riscv, mingw32, mingw64"
},
"default-examples-openssl-v3": {
"cmake": "-DLWS_OPENSSL_LIBRARIES=\"/usr/local/src/openssl/v3/usr/local/lib64/libssl.a;/usr/local/src/openssl/v3/usr/local/lib64/libcrypto.a\" -DLWS_OPENSSL_INCLUDE_DIRS=\"/usr/local/src/openssl/v3/usr/local/include/\" -DLWS_WITH_MINIMAL_EXAMPLES=1",

View file

@ -525,6 +525,16 @@ CHECK_INCLUDE_FILE(malloc.h LWS_HAVE_MALLOC_H)
CHECK_INCLUDE_FILE(pthread.h LWS_HAVE_PTHREAD_H)
CHECK_INCLUDE_FILE(inttypes.h LWS_HAVE_INTTYPES_H)
if (WIN32 OR MSVC)
CHECK_C_SOURCE_COMPILES("#include <winsock2.h>
#include <afunix.h>
int main() { return 0; }" LWS_HAVE_WIN32_AFUNIX_H)
if (LWS_UNIX_SOCK AND NOT LWS_HAVE_WIN32_AFUNIX_H)
message(FATAL_ERROR "No afunix.h in toolchain for LWS_UNIX_SOCK")
endif()
endif()
CHECK_LIBRARY_EXISTS(cap cap_set_flag "" LWS_HAVE_LIBCAP)

View file

@ -6,7 +6,11 @@
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w32.cmake -DLWS_WITH_SSL=0
#
set(CROSS_PATH /opt/mingw32)
# the outermost path to your cross toolchain
#set(CROSS_PATH /opt/mingw32)
set(CROSS_PATH /usr)
# your cross root
set(CROSS_ROOT ${CROSS_PATH}/i686-w64-mingw32/sys-root/)
# Target operating system name.
set(CMAKE_SYSTEM_NAME Windows)
@ -15,7 +19,6 @@ set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_C_COMPILER "${CROSS_PATH}/bin/i686-w64-mingw32-gcc")
set(CMAKE_CXX_COMPILER "${CROSS_PATH}/bin/i686-w64-mingw32-g++")
set(CMAKE_RC_COMPILER "${CROSS_PATH}/bin/i686-w64-mingw32-windres")
set(CMAKE_C_FLAGS "-Wno-error")
#
# Different build system distros set release optimization level to different
@ -34,7 +37,8 @@ if (CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES Release OR CMAK
endif()
# Where to look for the target environment. (More paths can be added here)
set(CMAKE_FIND_ROOT_PATH "${CROSS_PATH}")
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOT}/mingw")
set(CMAKE_SYSROOT ${CROSS_ROOT})
# Adjust the default behavior of the FIND_XXX() commands:
# search programs in the host environment only.

View file

@ -3,13 +3,18 @@
#
# This can be used when running cmake in the following way:
# cd build/
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w64.cmake -DLWS_WITH_SSL=0
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w64.cmake
#
set(CROSS_PATH /opt/mingw64)
# the outermost path to your cross toolchain
#set(CROSS_PATH /opt/mingw64)
set(CROSS_PATH /usr)
# your cross root
set(CROSS_ROOT ${CROSS_PATH}/x86_64-w64-mingw32/sys-root/)
# Target operating system name.
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSROOT ${CROSS_ROOT})
# Name of C compiler.
set(CMAKE_C_COMPILER "${CROSS_PATH}/bin/x86_64-w64-mingw32-gcc")
@ -34,7 +39,7 @@ if (CMAKE_BUILD_TYPE MATCHES RELEASE OR CMAKE_BUILD_TYPE MATCHES Release OR CMAK
endif()
# Where to look for the target environment. (More paths can be added here)
set(CMAKE_FIND_ROOT_PATH "${CROSS_PATH}")
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOT}/mingw")
# Adjust the default behavior of the FIND_XXX() commands:
# search programs in the host environment only.

View file

@ -404,8 +404,10 @@ lws_client_connect_3_connect(struct lws *wsi, const char *ads,
if (lwsi_state(wsi) == LRS_WAITING_CONNECT &&
lws_socket_is_valid(wsi->desc.sockfd)) {
#if !defined(WIN32)
socklen_t sl = sizeof(int);
int e = 0;
#endif
if (!result && /* no dns results... */
!wsi->sul_connect_timeout.list.owner /* no ongoing connect timeout */)