set(PACKAGE_URL "http://libwebsockets.org")
set(VERSION "{PACKAGE_VERSION}")
-option(WITH_SSL "Include SSL support", ON)
+option(WITH_SSL "Include SSL support (default OpenSSL, CyaSSL if USE_CYASSL is set)" ON)
option(USE_INCLUDED_WIN32_ZLIB "Use the internal version of ZLib instead of searching the system" ON)
option(USE_CYASSL "Use CyaSSL replacement for OpenSSL" OFF)
option(WITH_BUILTIN_GETIFADDRS "Use BSD getifaddrs implementation from libwebsockets... default is your libc provides it" OFF)
+option(WITHOUT_TESTAPPS "Don't build the libwebsocket-test-apps" OFF)
+option(WITHOUT_CLIENT "Don't build the client part of the library" OFF)
+option(WITHOUT_SERVER "Don't build the server part of the library" OFF)
+option(WITH_LIBCRYPTO "Use libcrypto MD5 and SHA1 implementations" ON)
+option(WITHOUT_PING "Don't build the ping test application" OFF)
+option(WITHOUT_DEBUG "Don't compile debug related code" OFF)
+
set(CYASSL_LIB ON CACHE STRING "")
set(CYASSL_INCLUDE_DIRS ON CACHE STRING "")
+if (USE_CYASSL)
+ if (NOT CYASSL_LIB OR NOT CYASSL_INCLUDE_DIRS)
+ error("You must set CYASSL_LIB and CYASSL_INCLUDE_DIRS when USE_CYASSL is turned on")
+ endif()
+endif()
+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
include_directories(${PROJECT_BINARY_DIR})
add_definitions(-D_WIN32_WINNT=0x0501)
endif(WIN32)
-
+# Group headers and sources.
+# Some IDEs use this for nicer file structure.
set(HDR_PRIVATE
- lib/private-libwebsockets.h)
-
-set(HDR_PUBLIC
+ lib/private-libwebsockets.h
lib/extension-deflate-frame.h
- lib/lib/extension-deflate-stream.h
+ lib/lib/extension-deflate-stream.h)
+
+set(HDR_PUBLIC
lib/libwebsockets.h
)
lib/client-parser.c
lib/daemonize.c
lib/extension.c
- lib/extension-defalte-frame.c
+ lib/extension-deflate-frame.c
lib/extension-deflate-stream.c
lib/handshake.c
lib/libwebsockets.c
lib/sha-1.c
)
-source_group("Headers Private" FILES ${HDR_PRIVATE})
-source_group("Headers Public" FILES ${HDR_PUBLIC})
-source_group("Sources" FILES ${SOURCES})
+# Add helper files for Windows.
+if (WIN32)
+ set(WIN32_HELPERS_PATH ${PROJECT_SOURCE_DIR}/win32port/win32helpers)
+
+ list(APPEND HDR_PRIVATE
+ ${WIN32_HELPERS_PATH}/websock-w32.h
+ ${WIN32_HELPERS_PATH}/gettimeofday.h
+ )
+
+ list(APPEND SOURCES
+ ${WIN32_HELPERS_PATH}/websock-w32.c
+ ${WIN32_HELPERS_PATH}/gettimeofday.c
+ )
+endif()
if (UNIX)
if (!WITH_BUILTIN_GETIFADDRS)
- list(APPEND HDR_PUBLIC lib/getifaddrs.h)
+ list(APPEND HDR_PRIVATE lib/getifaddrs.h)
list(APPEND SOURCES lib/getifaddrs.c)
endif()
endif()
+source_group("Headers Private" FILES ${HDR_PRIVATE})
+source_group("Headers Public" FILES ${HDR_PUBLIC})
+source_group("Sources" FILES ${SOURCES})
+
+#
+# Create the lib.
+#
+add_library(websocket STATIC
+ ${HDR_PRIVATE}
+ ${HDR_PUBLIC}
+ ${SOURCES})
+
+#
+# Find libraries.
+#
+
#
# ZLIB.
#
endif()
include_directories(${ZLIB_INCLUDE_DIRS})
-target_link_libraries(websockets ${ZLIB_LIBRARIES})
+target_link_libraries(websocket ${ZLIB_LIBRARIES})
#
# OpenSSL
# TODO: Add support for STATIC also.
find_package(OpenSSL REQUIRED)
endif()
+
+ include_directories(${OPENSSL_INCLUDE_DIR})
+ target_link_libraries(websocket ${OPENSSL_LIBRARIES})
endif()
-include_directories(${OPENSSL_INCLUDE_DIR})
-target_link_libraries(websockets ${OPENSSL_LIBRARIES})
--- /dev/null
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+#cmakedefine USE_CYASSL
+
+/* Define to 1 if you have the `bzero' function. */
+#cmakedefine HAVE_BZERO
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#cmakedefine HAVE_DLFCN_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#cmakedefine HAVE_FCNTL_H
+
+/* Define to 1 if you have the `fork' function. */
+#cmakedefine HAVE_FORK
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `ssl' library (-lssl). */
+//#cmakedefine HAVE_LIBSSL
+
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+ to 0 otherwise. */
+#cmakedefine HAVE_MALLOC
+
+/* Define to 1 if you have the <memory.h> header file. */
+#cmakedefine HAVE_MEMORY_H
+
+/* Define to 1 if you have the `memset' function. */
+#cmakedefine HAVE_MEMSET
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#cmakedefine HAVE_NETINET_IN_H
+
+/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+ and to 0 otherwise. */
+#cmakedefine HAVE_REALLOC
+
+/* Define to 1 if you have the `socket' function. */
+#cmakedefine HAVE_SOCKET
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#cmakedefine HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strerror' function. */
+#cmakedefine HAVE_STRERROR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#cmakedefine HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#cmakedefine HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/prctl.h> header file. */
+#cmakedefine HAVE_SYS_PRCTL_H
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#cmakedefine HAVE_SYS_SOCKET_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#cmakedefine HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H
+
+/* Define to 1 if you have the `vfork' function. */
+#cmakedefine HAVE_VFORK
+
+/* Define to 1 if you have the <vfork.h> header file. */
+#cmakedefine HAVE_VFORK_H
+
+/* Define to 1 if `fork' works. */
+#cmakedefine HAVE_WORKING_FORK
+
+/* Define to 1 if `vfork' works. */
+#cmakedefine HAVE_WORKING_VFORK
+
+/* Define to 1 if you have the <zlib.h> header file. */
+#cmakedefine HAVE_ZLIB_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR // We're not using libtool
+
+/* Name of package */
+#cmakedefine PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#cmakedefine PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#cmakedefine PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#cmakedefine PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#cmakedefine PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#cmakedefine PACKAGE_URL
+
+/* Define to the version of this package. */
+#cmakedefine PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#cmakedefine STDC_HEADERS
+
+/* Version number of package */
+#cmakedefine VERSION
+
+/* Define to rpl_malloc if the replacement function should be used. */
+#cmakedefine malloc
+
+/* Define to `int' if <sys/types.h> does not define. */
+#cmakedefine pid_t
+
+/* Define to rpl_realloc if the replacement function should be used. */
+#cmakedefine realloc
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#cmakedefine size_t
+
+/* Define to 1 if we have getifaddrs */
+#cmakedefine HAVE_GETIFADDRS
+
+/* Define as `fork' if `vfork' does not work. */
+//#cmakedefine vfork