diff options
| -rw-r--r-- | ports/signalrclient/0001_cmake.patch | 75 | ||||
| -rw-r--r-- | ports/signalrclient/CONTROL | 4 | ||||
| -rw-r--r-- | ports/signalrclient/portfile.cmake | 34 |
3 files changed, 113 insertions, 0 deletions
diff --git a/ports/signalrclient/0001_cmake.patch b/ports/signalrclient/0001_cmake.patch new file mode 100644 index 000000000..809667960 --- /dev/null +++ b/ports/signalrclient/0001_cmake.patch @@ -0,0 +1,75 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8c73730..4cd9074 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,9 @@ + cmake_minimum_required (VERSION 2.8.11) + project (signalrclient) + ++if(NOT WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC -L -lcpprest") ++endif() + + set(CPPREST_INCLUDE_DIR "" CACHE FILEPATH "Path to casablanca include dir") + +@@ -16,4 +18,32 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) + + add_subdirectory(src/signalrclient) +-add_subdirectory(test) ++if(NOT DISABLE_TESTS) ++ add_subdirectory(test) ++endif() ++ ++if(BUILD_SHARED_LIBS) ++ install(FILES include/signalrclient/_exports.h DESTINATION include/signalrclient) ++else() ++ file(READ include/signalrclient/_exports.h EXPORTS_H) ++ string(REPLACE "#ifdef NO_SIGNALRCLIENT_EXPORTS" "#if 1" EXPORTS_H_2 ${EXPORTS_H}) ++ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/_exports.h ${EXPORTS_H_2}) ++ ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_exports.h DESTINATION include/signalrclient) ++endif() ++ ++set(HEADERS ++ include/signalrclient/connection.h ++ include/signalrclient/connection_state.h ++ include/signalrclient/hub_connection.h ++ include/signalrclient/hub_exception.h ++ include/signalrclient/hub_proxy.h ++ include/signalrclient/log_writer.h ++ include/signalrclient/trace_level.h ++ include/signalrclient/transport_type.h ++ include/signalrclient/web_exception.h) ++ ++install( ++ FILES ${HEADERS} ++ DESTINATION "include/signalrclient" ++) +diff --git a/src/signalrclient/CMakeLists.txt b/src/signalrclient/CMakeLists.txt +index 76a5e1b..db141eb 100644 +--- a/src/signalrclient/CMakeLists.txt ++++ b/src/signalrclient/CMakeLists.txt +@@ -22,6 +22,21 @@ set (SOURCES + websocket_transport.cpp + ) + +-add_library (signalrclient SHARED ${SOURCES}) ++if(BUILD_SHARED_LIBS) ++ add_definitions(-DSIGNALRCLIENT_EXPORTS) ++else() ++ add_definitions(-DNO_SIGNALRCLIENT_EXPORTS) ++endif() ++ ++add_definitions(-DUNICODE -D_UNICODE) ++ ++add_library (signalrclient ${SOURCES}) + + target_link_libraries(signalrclient ${CPPREST_SO}) ++ ++install( ++ TARGETS signalrclient ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin ++) diff --git a/ports/signalrclient/CONTROL b/ports/signalrclient/CONTROL new file mode 100644 index 000000000..a5673e964 --- /dev/null +++ b/ports/signalrclient/CONTROL @@ -0,0 +1,4 @@ +Source: signalrclient +Version: 1.0.0-beta1 +Build-Depends: cpprestsdk +Description: C++ client for SignalR.
\ No newline at end of file diff --git a/ports/signalrclient/portfile.cmake b/ports/signalrclient/portfile.cmake new file mode 100644 index 000000000..22e91acab --- /dev/null +++ b/ports/signalrclient/portfile.cmake @@ -0,0 +1,34 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SignalR-Client-Cpp-1.0.0-beta1) + +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/aspnet/SignalR-Client-Cpp/archive/1.0.0-beta1.tar.gz" + FILENAME "SignalR-Client-Cpp-1.0.0-beta1.tar.gz" + SHA512 e0090415aa724087dbe2a317a4642d6359b134e00e836ea70c71bc9186dc8d6bba097666711ab18d9b0a390e1e5f59be2f55279b6859ac20d558b901bf5fe2f2 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG + -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/debug/lib/cpprest_2_9.lib + OPTIONS_RELEASE + -DCPPREST_SO=${CURRENT_INSTALLED_DIR}/lib/cpprest_2_9.lib + OPTIONS + -DCPPREST_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include + -DDISABLE_TESTS=ON +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# copy license +file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/signalrclient) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/signalrclient/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/signalrclient/copyright)
\ No newline at end of file |
