diff --git a/contrib/websocketpp/.gitattributes b/contrib/websocketpp/.gitattributes new file mode 100644 index 000000000..a9e4fc784 --- /dev/null +++ b/contrib/websocketpp/.gitattributes @@ -0,0 +1,18 @@ +# Lineendings +*.sln eol=crlf +*.vcproj eol=crlf +*.vcxproj* eol=crlf + +# Whitespace rules +# strict (no trailing, no tabs) +*.cpp whitespace=trailing-space,space-before-tab,tab-in-indent,cr-at-eol +*.hpp whitespace=trailing-space,space-before-tab,tab-in-indent,cr-at-eol +*.c whitespace=trailing-space,space-before-tab,tab-in-indent,cr-at-eol +*.h whitespace=trailing-space,space-before-tab,tab-in-indent,cr-at-eol + +# normal (no trailing) +*.sql whitespace=trailing-space,space-before-tab,cr-at-eol +*.txt whitespace=trailing-space,space-before-tab,cr-at-eol + +# special files which must ignore whitespace +*.patch whitespace=-trailing-space diff --git a/contrib/websocketpp/.gitignore b/contrib/websocketpp/.gitignore new file mode 100644 index 000000000..163832df8 --- /dev/null +++ b/contrib/websocketpp/.gitignore @@ -0,0 +1,80 @@ +# make .git* files visible to git +!.gitignore +!.gitattributes + +.DS_Store + +#vim stuff +*~ +*.swp + +*.o +*.so +*.so.? +*.so.?.?.? +*.a +*.dylib +lib/* + +# CMake +*.cmake +*.dir +CMakeFiles +INSTALL.* +ZERO_CHECK.* +CMakeCache.txt +install_manifest.txt + +# Windows/Visual Studio +*.vcproj* +*.sln +*.suo +*.ncb +*/Debug/* +*/*/Debug/* +*/Release/* +*/*/Release/* +*/RelWithDebInfo/* +*/*/RelWithDebInfo/* + +objs_shared/ +objs_static/ + +examples/chat_server/chat_server +examples/echo_server/echo_server +examples/chat_client/chat_client +examples/echo_client/echo_client +test/basic/tests +libwebsocketpp.dylib.0.1.0 + +websocketpp.xcodeproj/xcuserdata/* +websocketpp.xcodeproj/project.xcworkspace/xcuserdata/* +policy_based_notes.hpp + +examples/echo_server_tls/echo_server_tls + +examples/fuzzing_client/fuzzing_client + +examples/stress_client/stress_client + +examples/broadcast_server_tls/broadcast_server + +test/basic/perf + +examples/echo_server_tls/echo_server_tls + +examples/concurrent_server/concurrent_server + +examples/fuzzing_server_tls/fuzzing_server + +examples/wsperf/wsperf + +.sconsign.dblite + +build/ +doxygen/ +examples/wsperf/wsperf_client + +*.out + +*.log diff --git a/contrib/websocketpp/.travis.yml b/contrib/websocketpp/.travis.yml new file mode 100644 index 000000000..bf60651cb --- /dev/null +++ b/contrib/websocketpp/.travis.yml @@ -0,0 +1,22 @@ +language: cpp +compiler: + - gcc +before_install: + - sudo apt-get install libboost-regex1.48-dev libboost-system1.48-dev libboost-thread1.48-dev libboost-test1.48-dev libboost-random1.48-dev -y +env: + global: + - BOOST_INCLUDES=/usr/include + - BOOST_LIBS=/usr/lib +script: scons -j 2 && scons test +branches: + only: + - master + - permessage-deflate + - experimental + - 0.3.x-cmake +notifications: + recipients: + - travis@zaphoyd.com + email: + on_success: change + on_failure: always diff --git a/contrib/websocketpp/CMakeLists.txt b/contrib/websocketpp/CMakeLists.txt new file mode 100644 index 000000000..9ed929f77 --- /dev/null +++ b/contrib/websocketpp/CMakeLists.txt @@ -0,0 +1,237 @@ + +############ Setup project and cmake + +# Project name +project (websocketpp) + +# Minimum cmake requirement. We should require a quite recent +# cmake for the dependency find macros etc. to be up to date. +cmake_minimum_required (VERSION 2.6) + +set (WEBSOCKETPP_MAJOR_VERSION 0) +set (WEBSOCKETPP_MINOR_VERSION 4) +set (WEBSOCKETPP_PATCH_VERSION 0) +set (WEBSOCKETPP_VERSION ${WEBSOCKETPP_MAJOR_VERSION}.${WEBSOCKETPP_MINOR_VERSION}.${WEBSOCKETPP_PATCH_VERSION}) + +set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files") +if (WIN32 AND NOT CYGWIN) + set (DEF_INSTALL_CMAKE_DIR cmake) +else () + set (DEF_INSTALL_CMAKE_DIR lib/cmake/websocketpp) +endif () +set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") + +# Make relative paths absolute (needed later on) +foreach (p INCLUDE CMAKE) + set (var INSTALL_${p}_DIR) + if (NOT IS_ABSOLUTE "${${var}}") + set (${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif () +endforeach () + +# Set CMake library search policy +if (COMMAND cmake_policy) + cmake_policy (SET CMP0003 NEW) + cmake_policy (SET CMP0005 NEW) +endif () + +# Disable unnecessary build types +set (CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug" CACHE STRING "Configurations" FORCE) + +# Include our cmake macros +set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +include (CMakeHelpers) + +############ Paths + +set (WEBSOCKETPP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) +set (WEBSOCKETPP_INCLUDE ${WEBSOCKETPP_ROOT}/websocketpp) +set (WEBSOCKETPP_BUILD_ROOT ${CMAKE_CURRENT_BINARY_DIR}) +set (WEBSOCKETPP_BIN ${WEBSOCKETPP_BUILD_ROOT}/bin) +set (WEBSOCKETPP_LIB ${WEBSOCKETPP_BUILD_ROOT}/lib) + +# CMake install step prefix. I assume linux users want the prefix to +# be the default /usr or /usr/local so this is only adjusted on Windows. +# - Windows: Build the INSTALL project in your solution file. +# - Linux/OSX: make install. +if (MSVC) + set (CMAKE_INSTALL_PREFIX "${WEBSOCKETPP_ROOT}/install") +endif () + +############ Build customization + +# Override from command line "CMake -D