early-access version 2853
This commit is contained in:
66
externals/vcpkg/ports/usockets/CMakeLists.txt
vendored
Executable file
66
externals/vcpkg/ports/usockets/CMakeLists.txt
vendored
Executable file
@@ -0,0 +1,66 @@
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(uSockets C CXX)
|
||||
|
||||
option(INSTALL_HEADERS "Install header files" ON)
|
||||
|
||||
if (CMAKE_USE_OPENSSL)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
set(USE_OPENSSL "-DUSE_OPENSSL -DLIBUS_USE_OPENSSL")
|
||||
#set(OPENSSL_LIB "OpenSSL::SSL OpenSSL::Crypto")
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
|
||||
else()
|
||||
set(NOT_USE_OPENSSL "-DLIBUS_NO_SSL")
|
||||
endif()
|
||||
|
||||
find_package(unofficial-libuv CONFIG REQUIRED)
|
||||
find_path(LIBUV_INCLUDE_DIR uv.h)
|
||||
find_library(LIBUV_LIBRARY NAMES libuv)
|
||||
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)
|
||||
# It requires C++17 or later, see https://github.com/uNetworking/uSockets/blob/0ebdde0601cc82349fc11a7c4bbb6dc5c9f28f42/Makefile#L55
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
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})
|
||||
target_compile_definitions(uSockets PRIVATE -DLIBUS_USE_LIBUV)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(uSockets PRIVATE ${NOT_USE_OPENSSL} ${USE_OPENSSL})
|
||||
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
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib
|
||||
)
|
||||
|
||||
if(INSTALL_HEADERS)
|
||||
file(GLOB HEADERS src/*.h)
|
||||
install(FILES ${HEADERS} DESTINATION include)
|
||||
file(GLOB HEADERS src/interfaces/*.h)
|
||||
install(FILES ${HEADERS} DESTINATION include/interfaces)
|
||||
endif()
|
||||
39
externals/vcpkg/ports/usockets/portfile.cmake
vendored
Executable file
39
externals/vcpkg/ports/usockets/portfile.cmake
vendored
Executable file
@@ -0,0 +1,39 @@
|
||||
if(NOT VCPKG_TARGET_IS_LINUX)
|
||||
set(USE_LIBUV ON)
|
||||
endif()
|
||||
|
||||
if ("network" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS)
|
||||
message(FATAL_ERROR "Feature 'network' is only supported on Windows")
|
||||
endif()
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO uNetworking/uSockets
|
||||
REF v0.8.1
|
||||
SHA512 B3AD6387E20731831A3A6086D7DE320CCD8F720FAD3237B65EE165236E3F30CBEC3E3B1384BF53BF0F274D7E57665DE79E3244F841455D2ADAFBF954B453437F
|
||||
HEAD_REF master
|
||||
)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
ssl CMAKE_USE_OPENSSL
|
||||
event CMAKE_USE_EVENT
|
||||
network CMAKE_USE_NETWORK
|
||||
)
|
||||
|
||||
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
${FEATURE_OPTIONS}
|
||||
"-DLIBUS_USE_LIBUV=${USE_LIBUV}"
|
||||
OPTIONS_DEBUG
|
||||
-DINSTALL_HEADERS=OFF
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
|
||||
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
34
externals/vcpkg/ports/usockets/vcpkg.json
vendored
Executable file
34
externals/vcpkg/ports/usockets/vcpkg.json
vendored
Executable file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "usockets",
|
||||
"version": "0.8.1",
|
||||
"description": "Miniscule cross-platform eventing, networking & crypto for async applications",
|
||||
"homepage": "https://github.com/uNetworking/uSockets",
|
||||
"dependencies": [
|
||||
"libuv",
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-config",
|
||||
"host": true
|
||||
}
|
||||
],
|
||||
"features": {
|
||||
"event": {
|
||||
"description": "Build usockets with epoll support"
|
||||
},
|
||||
"network": {
|
||||
"description": "Build usockets with winsock support",
|
||||
"dependencies": [
|
||||
"winsock2"
|
||||
]
|
||||
},
|
||||
"ssl": {
|
||||
"description": "Build usockets with openssl support",
|
||||
"dependencies": [
|
||||
"openssl"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user