mbed3 build support

Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
Andy Green 2015-11-02 08:21:08 +08:00
parent 618b7b75ac
commit 5f2a8155f1
3 changed files with 63 additions and 17 deletions

View file

@ -67,6 +67,32 @@ option(LWS_WITH_LATENCY "Build latency measuring code into the library" OFF)
option(LWS_WITHOUT_DAEMONIZE "Don't build the daemonization api" ON)
option(LWS_IPV6 "Compile with support for ipv6" OFF)
option(LWS_WITH_HTTP2 "Compile with support for http2" OFF)
option(LWS_MBED3 "Platform is MBED3" OFF)
if (DEFINED YOTTA_WEBSOCKETS_VERSION_STRING)
set(LWS_WITH_SHARED OFF)
set(LWS_WITH_SSL OFF)
set(LWS_WITH_ZLIB OFF)
set(LWS_WITHOUT_CLIENT ON)
set(LWS_WITHOUT_TESTAPPS ON)
set(LWS_WITHOUT_EXTENSIONS ON)
set(LWS_MBED3 ON)
endif()
if (DEFINED YOTTA_WEBSOCKETS_VERSION_STRING)
set(LWS_WITH_SHARED OFF)
set(LWS_WITH_SSL OFF)
set(LWS_WITH_ZLIB OFF)
set(LWS_WITHOUT_CLIENT ON)
set(LWS_WITHOUT_TESTAPPS ON)
set(LWS_WITHOUT_EXTENSIONS ON)
set(LWS_MBED3 ON)
endif()
# Allow the user to override installation directories.
set(LWS_INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
@ -213,6 +239,10 @@ if (LWS_WITH_HTTP2)
set(LWS_USE_HTTP2 1)
endif()
if (LWS_MBED3)
set(CMAKE_C_FLAGS "-D_DEBUG ${CMAKE_C_FLAGS}")
endif()
if (MINGW)
set(LWS_MINGW_SUPPORT 1)
set(CMAKE_C_FLAGS "-D__USE_MINGW_ANSI_STDIO ${CMAKE_C_FLAGS}")
@ -295,7 +325,10 @@ CHECK_INCLUDE_FILE(sys/stat.h LWS_HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sys/types.h LWS_HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILE(unistd.h LWS_HAVE_UNISTD_H)
CHECK_INCLUDE_FILE(vfork.h LWS_HAVE_VFORK_H)
CHECK_INCLUDE_FILE(zlib.h LWS_HAVE_ZLIB_H)
if (LWS_WITH_ZLIB AND NOT LWS_USE_BUNDLED_ZLIB)
CHECK_INCLUDE_FILE(zlib.h LWS_HAVE_ZLIB_H)
endif()
# TODO: These can also be tested to see whether they actually work...
set(LWS_HAVE_WORKING_FORK LWS_HAVE_FORK)
@ -303,9 +336,10 @@ set(LWS_HAVE_WORKING_VFORK LWS_HAVE_VFORK)
CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
CHECK_TYPE_SIZE(pid_t PID_T_SIZE)
CHECK_TYPE_SIZE(size_t SIZE_T_SIZE)
CHECK_TYPE_SIZE("void *" LWS_SIZEOFPTR LANGUAGE C)
# These don't work Cross...
#CHECK_TYPE_SIZE(pid_t PID_T_SIZE)
#CHECK_TYPE_SIZE(size_t SIZE_T_SIZE)
#CHECK_TYPE_SIZE("void *" LWS_SIZEOFPTR LANGUAGE C)
if (NOT PID_T_SIZE)
set(pid_t int)
@ -390,8 +424,14 @@ if (WIN32)
list(APPEND SOURCES
lib/lws-plat-win.c)
else()
list(APPEND SOURCES
lib/lws-plat-unix.c)
if (LWS_MBED3)
list(APPEND SOURCES
lib/lws-plat-mbed3.cpp
lib/lws-plat-mbed3.c)
else()
list(APPEND SOURCES
lib/lws-plat-unix.c)
endif()
endif()
if (NOT LWS_WITHOUT_SERVER)
@ -499,7 +539,6 @@ if (LWS_WITH_SHARED)
endif()
endif()
# Set the so version of the lib.
# Equivalent to LDFLAGS=-version-info x:x:x
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
@ -1021,6 +1060,7 @@ message(" LWS_WITHOUT_DAEMONIZE = ${LWS_WITHOUT_DAEMONIZE}")
message(" LWS_USE_LIBEV = ${LWS_USE_LIBEV}")
message(" LWS_IPV6 = ${LWS_IPV6}")
message(" LWS_WITH_HTTP2 = ${LWS_WITH_HTTP2}")
message(" LWS_MBED3 = ${LWS_MBED3}")
message("---------------------------------------------------------------------")
# These will be available to parent projects including libwebsockets using add_subdirectory()

View file

@ -64,10 +64,12 @@ extern "C" {
#endif
#else // NOT WIN32
#include <poll.h>
#include <unistd.h>
#ifndef MBED_OPERATORS
#include <poll.h>
#include <netdb.h>
#endif
#if defined(__GNUC__)
#define LWS_VISIBLE __attribute__((visibility("default")))

View file

@ -93,11 +93,12 @@
#else /* not windows --> */
#include <errno.h>
#include <fcntl.h>
#include <netdb.h>
#include <signal.h>
#include <strings.h>
#include <unistd.h>
#include <sys/types.h>
#ifndef MBED_OPERATORS
#include <netdb.h>
#include <signal.h>
#include <sys/socket.h>
#ifdef LWS_BUILTIN_GETIFADDRS
#include <getifaddrs.h>
@ -112,11 +113,6 @@
#include <sys/un.h>
#include <sys/socket.h>
#include <netdb.h>
#ifndef LWS_NO_FORK
#ifdef LWS_HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#endif
#endif
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
@ -124,8 +120,16 @@
#ifdef LWS_USE_LIBEV
#include <ev.h>
#endif /* LWS_USE_LIBEV */
#include <sys/mman.h>
#endif /* MBED */
#ifndef LWS_NO_FORK
#ifdef LWS_HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#endif
#endif
#include <sys/time.h>
#define LWS_ERRNO errno