diff --git a/CMakeLists.txt b/CMakeLists.txt index 88b41903..f1390049 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -134,10 +134,11 @@ if (USE_TLS) elseif (USE_SECURE_TRANSPORT) list( APPEND IXWEBSOCKET_HEADERS ixwebsocket/IXSocketAppleSSL.h) list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/IXSocketAppleSSL.cpp) - else() - set(USE_OPEN_SSL ON) + else (USE_OPEN_SSL) list( APPEND IXWEBSOCKET_HEADERS ixwebsocket/IXSocketOpenSSL.h) list( APPEND IXWEBSOCKET_SOURCES ixwebsocket/IXSocketOpenSSL.cpp) + else() + message(STATUS "TLS Configuration error: unknown backend") endif() endif() @@ -154,11 +155,53 @@ if (USE_TLS) target_compile_definitions(ixwebsocket PUBLIC IXWEBSOCKET_USE_OPEN_SSL) elseif (USE_SECURE_TRANSPORT) target_compile_definitions(ixwebsocket PUBLIC IXWEBSOCKET_USE_SECURE_TRANSPORT) + else() + message(STATUS "TLS Configuration error: unknown backend") endif() endif() -if (APPLE AND USE_TLS AND NOT USE_MBED_TLS AND NOT USE_OPEN_SSL) - target_link_libraries(ixwebsocket "-framework foundation" "-framework security") +if (USE_TLS) + if (USE_OPEN_SSL) + message(STATUS "TLS configured to use openssl") + + # Help finding Homebrew's OpenSSL on macOS + if (APPLE) + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/local/opt/openssl/lib) + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /usr/local/opt/openssl/include) + endif() + + # This OPENSSL_FOUND check is to help find a cmake manually configured OpenSSL + if (NOT OPENSSL_FOUND) + find_package(OpenSSL REQUIRED) + endif() + message(STATUS "OpenSSL: " ${OPENSSL_VERSION}) + + target_compile_definitions(ixwebsocket PUBLIC ${OPENSSL_DEFINITIONS}) + target_include_directories(${OPENSSL_INCLUDE_DIR}) + target_link_libraries(ixwebsocket ${OPENSSL_LIBRARIES}) + elseif (USE_MBED_TLS) + message(STATUS "TLS configured to use mbedtls") + + find_package(MbedTLS REQUIRED) + target_include_directories(ixwebsocket PUBLIC ${MBEDTLS_INCLUDE_DIRS}) + target_link_libraries(ixwebsocket ${MBEDTLS_LIBRARIES}) + elseif (USE_SECURE_TRANSPORT) + message(STATUS "TLS configured to use secure transport") + target_link_libraries(ixwebsocket "-framework foundation" "-framework security") + endif() +endif() + +# This ZLIB_FOUND check is to help find a cmake manually configured zlib +if (NOT ZLIB_FOUND) + find_package(ZLIB) +endif() +if (ZLIB_FOUND) + include_directories(${ZLIB_INCLUDE_DIRS}) + target_link_libraries(ixwebsocket ${ZLIB_LIBRARIES}) +else() + include_directories(third_party/zlib ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib) + add_subdirectory(third_party/zlib) + target_link_libraries(ixwebsocket zlibstatic) endif() if (WIN32) @@ -175,40 +218,6 @@ if (UNIX) target_link_libraries(ixwebsocket ${CMAKE_THREAD_LIBS_INIT}) endif() -if (USE_TLS AND USE_OPEN_SSL) - - # Help finding Homebrew's OpenSSL on macOS - if (APPLE) - set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/local/opt/openssl/lib) - set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /usr/local/opt/openssl/include) - endif() - - if(NOT OPENSSL_FOUND) - find_package(OpenSSL REQUIRED) - endif() - add_definitions(${OPENSSL_DEFINITIONS}) - message(STATUS "OpenSSL: " ${OPENSSL_VERSION}) - include_directories(${OPENSSL_INCLUDE_DIR}) - target_link_libraries(ixwebsocket ${OPENSSL_LIBRARIES}) -endif() - -if (USE_TLS AND USE_MBED_TLS) - find_package(MbedTLS REQUIRED) - target_include_directories(ixwebsocket PUBLIC ${MBEDTLS_INCLUDE_DIRS}) - target_link_libraries(ixwebsocket ${MBEDTLS_LIBRARIES}) -endif() - -if (NOT ZLIB_FOUND) - find_package(ZLIB) -endif() -if (ZLIB_FOUND) - include_directories(${ZLIB_INCLUDE_DIRS}) - target_link_libraries(ixwebsocket ${ZLIB_LIBRARIES}) -else() - include_directories(third_party/zlib ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib) - add_subdirectory(third_party/zlib) - target_link_libraries(ixwebsocket zlibstatic) -endif() set( IXWEBSOCKET_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}