2018-10-09 00:23:01 +02:00
|
|
|
#
|
|
|
|
# Author: Benjamin Sergeant
|
|
|
|
# Copyright (c) 2018 Machine Zone, Inc. All rights reserved.
|
|
|
|
#
|
|
|
|
|
|
|
|
cmake_minimum_required(VERSION 3.4.1)
|
|
|
|
project(ixwebsocket C CXX)
|
|
|
|
|
2019-01-12 06:25:06 +01:00
|
|
|
set (CMAKE_CXX_STANDARD 14)
|
2018-10-09 00:23:01 +02:00
|
|
|
set (CXX_STANDARD_REQUIRED ON)
|
|
|
|
set (CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
2019-02-23 06:27:49 +01:00
|
|
|
# -Wshorten-64-to-32 does not work with clang
|
2019-01-05 02:28:13 +01:00
|
|
|
if (NOT WIN32)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic")
|
|
|
|
endif()
|
2018-12-30 08:15:27 +01:00
|
|
|
|
2018-10-09 00:23:01 +02:00
|
|
|
set( IXWEBSOCKET_SOURCES
|
|
|
|
ixwebsocket/IXSocket.cpp
|
2019-01-06 21:01:33 +01:00
|
|
|
ixwebsocket/IXSocketServer.cpp
|
2018-12-09 23:07:40 +01:00
|
|
|
ixwebsocket/IXSocketConnect.cpp
|
2019-03-01 06:54:03 +01:00
|
|
|
ixwebsocket/IXSocketFactory.cpp
|
2018-12-15 01:28:11 +01:00
|
|
|
ixwebsocket/IXDNSLookup.cpp
|
2019-01-03 21:53:44 +01:00
|
|
|
ixwebsocket/IXCancellationRequest.cpp
|
2018-10-09 00:23:01 +02:00
|
|
|
ixwebsocket/IXWebSocket.cpp
|
2018-12-30 08:15:27 +01:00
|
|
|
ixwebsocket/IXWebSocketServer.cpp
|
2018-10-09 00:23:01 +02:00
|
|
|
ixwebsocket/IXWebSocketTransport.cpp
|
2019-01-03 05:07:54 +01:00
|
|
|
ixwebsocket/IXWebSocketHandshake.cpp
|
2018-11-07 21:26:32 +01:00
|
|
|
ixwebsocket/IXWebSocketPerMessageDeflate.cpp
|
2019-01-05 02:28:13 +01:00
|
|
|
ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp
|
2018-11-10 03:23:49 +01:00
|
|
|
ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp
|
2019-03-01 06:54:03 +01:00
|
|
|
ixwebsocket/IXWebSocketHttpHeaders.cpp
|
|
|
|
ixwebsocket/IXHttpClient.cpp
|
|
|
|
ixwebsocket/IXUrlParser.cpp
|
2019-03-15 02:37:38 +01:00
|
|
|
ixwebsocket/IXSelectInterrupt.cpp
|
2019-03-16 01:46:40 +01:00
|
|
|
ixwebsocket/IXSelectInterruptPipe.cpp
|
2019-03-15 02:37:38 +01:00
|
|
|
ixwebsocket/IXSelectInterruptFactory.cpp
|
2018-10-09 00:23:01 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
set( IXWEBSOCKET_HEADERS
|
|
|
|
ixwebsocket/IXSocket.h
|
2019-01-06 21:01:33 +01:00
|
|
|
ixwebsocket/IXSocketServer.h
|
2018-12-09 23:07:40 +01:00
|
|
|
ixwebsocket/IXSocketConnect.h
|
2019-03-01 06:54:03 +01:00
|
|
|
ixwebsocket/IXSocketFactory.h
|
2018-12-23 23:14:38 +01:00
|
|
|
ixwebsocket/IXSetThreadName.h
|
2018-12-15 01:28:11 +01:00
|
|
|
ixwebsocket/IXDNSLookup.h
|
2018-12-30 03:33:15 +01:00
|
|
|
ixwebsocket/IXCancellationRequest.h
|
2019-02-21 03:59:07 +01:00
|
|
|
ixwebsocket/IXProgressCallback.h
|
2018-10-09 00:23:01 +02:00
|
|
|
ixwebsocket/IXWebSocket.h
|
2018-12-30 08:15:27 +01:00
|
|
|
ixwebsocket/IXWebSocketServer.h
|
2018-10-09 00:23:01 +02:00
|
|
|
ixwebsocket/IXWebSocketTransport.h
|
2019-01-03 05:07:54 +01:00
|
|
|
ixwebsocket/IXWebSocketHandshake.h
|
2018-11-13 02:56:59 +01:00
|
|
|
ixwebsocket/IXWebSocketSendInfo.h
|
2018-12-30 03:33:15 +01:00
|
|
|
ixwebsocket/IXWebSocketErrorInfo.h
|
2018-11-07 21:26:32 +01:00
|
|
|
ixwebsocket/IXWebSocketPerMessageDeflate.h
|
2019-01-05 02:28:13 +01:00
|
|
|
ixwebsocket/IXWebSocketPerMessageDeflateCodec.h
|
2018-11-10 03:23:49 +01:00
|
|
|
ixwebsocket/IXWebSocketPerMessageDeflateOptions.h
|
|
|
|
ixwebsocket/IXWebSocketHttpHeaders.h
|
2019-01-06 23:21:49 +01:00
|
|
|
ixwebsocket/libwshandshake.hpp
|
2019-03-01 06:54:03 +01:00
|
|
|
ixwebsocket/IXHttpClient.h
|
|
|
|
ixwebsocket/IXUrlParser.h
|
2019-03-15 02:37:38 +01:00
|
|
|
ixwebsocket/IXSelectInterrupt.h
|
2019-03-16 01:46:40 +01:00
|
|
|
ixwebsocket/IXSelectInterruptPipe.h
|
2019-03-15 02:37:38 +01:00
|
|
|
ixwebsocket/IXSelectInterruptFactory.h
|
2018-10-09 00:23:01 +02:00
|
|
|
)
|
|
|
|
|
2018-12-30 03:33:15 +01:00
|
|
|
# Platform specific code
|
|
|
|
if (APPLE)
|
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/apple/IXSetThreadName_apple.cpp)
|
2019-01-05 02:28:13 +01:00
|
|
|
elseif (WIN32)
|
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/windows/IXSetThreadName_windows.cpp)
|
2018-12-30 03:33:15 +01:00
|
|
|
else()
|
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/linux/IXSetThreadName_linux.cpp)
|
2019-03-15 02:37:38 +01:00
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/IXSelectInterruptEventFd.cpp)
|
|
|
|
list( APPEND IXWEBSOCKET_HEADERS ixwebsocket/IXSelectInterruptEventFd.h)
|
2018-12-30 03:33:15 +01:00
|
|
|
endif()
|
|
|
|
|
2018-10-09 00:23:01 +02:00
|
|
|
if (USE_TLS)
|
|
|
|
add_definitions(-DIXWEBSOCKET_USE_TLS)
|
|
|
|
|
|
|
|
if (APPLE)
|
|
|
|
list( APPEND IXWEBSOCKET_HEADERS ixwebsocket/IXSocketAppleSSL.h)
|
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/IXSocketAppleSSL.cpp)
|
2018-12-30 03:33:15 +01:00
|
|
|
elseif (WIN32)
|
|
|
|
list( APPEND IXWEBSOCKET_HEADERS ixwebsocket/IXSocketSChannel.h)
|
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/IXSocketSChannel.cpp)
|
2018-10-09 00:23:01 +02:00
|
|
|
else()
|
|
|
|
list( APPEND IXWEBSOCKET_HEADERS ixwebsocket/IXSocketOpenSSL.h)
|
|
|
|
list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/IXSocketOpenSSL.cpp)
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_library( ixwebsocket STATIC
|
|
|
|
${IXWEBSOCKET_SOURCES}
|
|
|
|
${IXWEBSOCKET_HEADERS}
|
|
|
|
)
|
|
|
|
|
2019-01-05 02:28:13 +01:00
|
|
|
# gcc/Linux needs -pthread
|
|
|
|
find_package(Threads)
|
|
|
|
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
|
|
find_package(OpenSSL REQUIRED)
|
|
|
|
add_definitions(${OPENSSL_DEFINITIONS})
|
|
|
|
message(STATUS "OpenSSL: " ${OPENSSL_VERSION})
|
|
|
|
include_directories(${OPENSSL_INCLUDE_DIR})
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
get_filename_component(libz_path
|
|
|
|
${PROJECT_SOURCE_DIR}/third_party/ZLIB-Windows/zlib-1.2.11_deploy_v140/release_dynamic/x64/lib/zlib.lib
|
|
|
|
ABSOLUTE)
|
|
|
|
add_library(libz STATIC IMPORTED)
|
|
|
|
set_target_properties(libz PROPERTIES IMPORTED_LOCATION
|
|
|
|
${libz_path})
|
|
|
|
|
|
|
|
include_directories(${PROJECT_SOURCE_DIR}/third_party/ZLIB-Windows/zlib-1.2.11_deploy_v140/include)
|
|
|
|
|
|
|
|
target_link_libraries(ixwebsocket libz wsock32 ws2_32)
|
|
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
|
|
|
|
|
|
else()
|
|
|
|
target_link_libraries(ixwebsocket
|
|
|
|
z ${OPENSSL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
|
|
|
endif()
|
2018-11-07 21:26:32 +01:00
|
|
|
|
2018-10-09 00:23:01 +02:00
|
|
|
set( IXWEBSOCKET_INCLUDE_DIRS
|
|
|
|
.
|
|
|
|
../../shared/OpenSSL/include)
|
|
|
|
target_include_directories( ixwebsocket PUBLIC ${IXWEBSOCKET_INCLUDE_DIRS} )
|
2019-02-22 07:21:29 +01:00
|
|
|
|
|
|
|
add_subdirectory(ws)
|