diff options
| author | nicole mazzuca <mazzucan@outlook.com> | 2020-03-04 10:38:47 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-04 10:38:47 -0800 |
| commit | 9eb82bf53b3d98ec6e7f2e01547976647cabf64b (patch) | |
| tree | cdee836b890b2e033d6f5344ffc81d4aca74be69 | |
| parent | 39d22e2c999ff9ae0154a4681bb0ffbb344a3ac6 (diff) | |
| download | vcpkg-9eb82bf53b3d98ec6e7f2e01547976647cabf64b.tar.gz vcpkg-9eb82bf53b3d98ec6e7f2e01547976647cabf64b.zip | |
[usockets] Add features (#10303)
| -rw-r--r-- | ports/usockets/CMakeLists.txt | 25 | ||||
| -rw-r--r-- | ports/usockets/CONTROL | 15 | ||||
| -rw-r--r-- | ports/usockets/portfile.cmake | 13 |
3 files changed, 46 insertions, 7 deletions
diff --git a/ports/usockets/CMakeLists.txt b/ports/usockets/CMakeLists.txt index 21f6294e8..0a5fd0dae 100644 --- a/ports/usockets/CMakeLists.txt +++ b/ports/usockets/CMakeLists.txt @@ -20,6 +20,27 @@ include_directories(APPEND "${CMAKE_CURRENT_LIST_DIR}/src") file(GLOB SOURCES src/*.c src/eventing/*.c) +set(USOCKETS_EXT_INCLUDE_DIR ) +set(USOCKETS_EXT_LIBS ) + +if (CMAKE_USE_OPENSSL) + find_package(OpenSSL REQUIRED) + file(GLOB SSL_SOURCES src/crypto/*.c) + list(APPEND SOURCES ${SSL_SOURCES}) + list(APPEND USOCKETS_EXT_LIBS OpenSSL::SSL OpenSSL::Crypto) +endif() + +if (CMAKE_USE_EVENT) + file(GLOB SSL_SOURCES src/eventing/*.c) + list(APPEND SOURCES ${SSL_SOURCES}) + list(APPEND USOCKETS_EXT_INCLUDE_DIR src/internal/eventing) +endif() + +if (CMAKE_USE_NETWORK) + list(APPEND USOCKETS_EXT_INCLUDE_DIR src/internal/networking) + list(APPEND USOCKETS_EXT_LIBS Ws2_32) +endif() + add_library(uSockets ${SOURCES}) if (${LIBUS_USE_LIBUV}) @@ -27,8 +48,8 @@ if (${LIBUS_USE_LIBUV}) endif() target_compile_definitions(uSockets PRIVATE ${NOT_USE_OPENSSL} ${USE_OPENSSL}) -target_include_directories(uSockets PUBLIC ${OPENSSL_INCLUDE_DIR} ${LIBUV_INCLUDE_DIR} ) -target_link_libraries(uSockets PUBLIC ${OPENSSL_LIBRARIES} ${LIBUV_LIBRARY}) +target_include_directories(uSockets PUBLIC ${OPENSSL_INCLUDE_DIR} ${LIBUV_INCLUDE_DIR} ${USOCKETS_EXT_INCLUDE_DIR}) +target_link_libraries(uSockets PUBLIC ${OPENSSL_LIBRARIES} ${LIBUV_LIBRARY} ${USOCKETS_EXT_LIBS}) install(TARGETS uSockets RUNTIME DESTINATION bin diff --git a/ports/usockets/CONTROL b/ports/usockets/CONTROL index 6078aa0ec..9c8143f40 100644 --- a/ports/usockets/CONTROL +++ b/ports/usockets/CONTROL @@ -1,4 +1,15 @@ Source: usockets -Version: 0.3.5 +Version: 0.3.5-1 Build-Depends:libuv -Description: Miniscule cross-platform eventing, networking & crypto for async applications
\ No newline at end of file +Description: Miniscule cross-platform eventing, networking & crypto for async applications + +Feature: ssl +Build-Depends: openssl +Description: Build usockets with openssl support + +Feature: event +Description: Build usockets with epoll support + +Feature: network +Build-Depends: winsock2 +Description: Build usockets with winsock support
\ No newline at end of file diff --git a/ports/usockets/portfile.cmake b/ports/usockets/portfile.cmake index b9b4a62ab..9fdd15b49 100644 --- a/ports/usockets/portfile.cmake +++ b/ports/usockets/portfile.cmake @@ -12,13 +12,20 @@ vcpkg_from_github( file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -set(USE_OPENSSL OFF) +if ("network" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS) + message(FATAL_ERROR "Feature network only support Windows") +endif() + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + ssl CMAKE_USE_OPENSSL + event CMAKE_USE_EVENT + network CMAKE_USE_NETWORK +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS - -DCMAKE_USE_OPENSSL=${USE_OPENSSL} + OPTIONS ${FEATURE_OPTIONS} -DLIBUS_USE_LIBUV=${USE_LIBUV} OPTIONS_DEBUG -DINSTALL_HEADERS=OFF |
