[uwebsockets] Internalize CMake in preparation for 0.14

This commit is contained in:
Robert Schumacher 2017-03-23 22:34:22 -07:00
parent 90019d39df
commit 299776b539
4 changed files with 30 additions and 52 deletions

View File

@ -1,41 +0,0 @@
commit 2b244f92ddf5e58bf81ccb40a8f23a3f94d9941b
Author: Alexander Karatarakis <alkarata@microsoft.com>
Date: Tue Mar 7 17:13:52 2017 -0800
Fixes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 33a8ae0..0b9c006 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,7 +12,7 @@ if(NOT LIBUV_INCLUDE_DIR)
find_path(LIBUV_INCLUDE_DIR uv.h)
endif()
if(NOT LIBUV_LIBRARY)
- find_library(LIBUV_LIBRARY NAMES uv uv1)
+ find_library(LIBUV_LIBRARY NAMES libuv uv uv1)
endif()
add_library(uWS src/Extensions.cpp src/Group.cpp src/WebSocketImpl.cpp src/Networking.cpp src/Hub.cpp src/Node.cpp src/WebSocket.cpp src/HTTPSocket.cpp src/Socket.cpp src/uUV.cpp)
@@ -38,4 +38,20 @@ install (TARGETS uWS DESTINATION /usr/lib64)
install (FILES src/Extensions.h src/WebSocketProtocol.h src/Networking.h src/WebSocket.h src/Hub.h src/Group.h src/Node.h src/Socket.h src/HTTPSocket.h src/uWS.h src/uUV.h DESTINATION /usr/include/uWS)
endif (UNIX)
-add_subdirectory(examples)
+#add_subdirectory(examples)
+
+if(WIN32)
+ target_link_libraries (uWS PUBLIC psapi.lib iphlpapi.lib userenv.lib)
+ install (FILES src/Extensions.h src/WebSocketProtocol.h src/Networking.h src/WebSocket.h src/Hub.h src/Group.h src/Node.h src/Socket.h src/HTTPSocket.h src/uWS.h DESTINATION include/uWS)
+
+ if(BUILD_SHARED_LIBS)
+ target_link_libraries (uWS PUBLIC ws2_32.lib)
+ endif()
+endif()
+
+install(
+ TARGETS uWS
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)

View File

@ -0,0 +1,24 @@
project(uwebsockets CXX)
option(INSTALL_HEADERS "Install header files" ON)
find_package(ZLIB REQUIRED)
find_package(OpenSSL REQUIRED)
find_path(LIBUV_INCLUDE_DIR uv.h)
find_library(LIBUV_LIBRARY NAMES libuv)
file(GLOB SOURCES src/*.cpp)
add_library(uWS ${SOURCES})
target_include_directories(uWS PUBLIC ${OPENSSL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
target_link_libraries(uWS PUBLIC ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${LIBUV_LIBRARY})
install(TARGETS uWS
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
if(INSTALL_HEADERS)
file(GLOB HEADERS src/*.h)
install(FILES ${HEADERS} DESTINATION include/uWS)
endif()

View File

@ -1,4 +1,4 @@
Source: uwebsockets
Version: 0.13.0-1
Version: 0.13.0-2
Build-Depends: libuv, openssl, zlib
Description: Highly scalable cross-platform WebSocket & HTTP library for C++11 and Node.js

View File

@ -8,23 +8,18 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS_DEBUG
-DINSTALL_HEADERS=OFF
)
vcpkg_install_cmake()
file(GLOB HEADERS ${SOURCE_PATH}/src/*.h)
file(COPY ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/uWS)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/uwebsockets)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/uwebsockets/LICENSE ${CURRENT_PACKAGES_DIR}/share/uwebsockets/copyright)
vcpkg_copy_pdbs()