aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/restbed
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/restbed')
-rw-r--r--vcpkg/ports/restbed/fix-cmake.patch86
-rw-r--r--vcpkg/ports/restbed/portfile.cmake33
-rw-r--r--vcpkg/ports/restbed/usage4
-rw-r--r--vcpkg/ports/restbed/vcpkg.json34
4 files changed, 157 insertions, 0 deletions
diff --git a/vcpkg/ports/restbed/fix-cmake.patch b/vcpkg/ports/restbed/fix-cmake.patch
new file mode 100644
index 0000000..4f0ace2
--- /dev/null
+++ b/vcpkg/ports/restbed/fix-cmake.patch
@@ -0,0 +1,86 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e6095da..6bf8d81 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,7 +57,11 @@ find_package( asio REQUIRED )
+
+ if ( BUILD_SSL )
+ add_definitions( "-DBUILD_SSL" )
+- find_package( openssl REQUIRED )
++ find_package( OpenSSL REQUIRED )
++ set( ssl_LIBRARY_SHARED OpenSSL::SSL )
++ set( crypto_LIBRARY_SHARED OpenSSL::Crypto )
++ set( ssl_LIBRARY_STATIC OpenSSL::SSL )
++ set( crypto_LIBRARY_STATIC OpenSSL::Crypto )
+ endif ( )
+
+ include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${ssl_INCLUDE} )
+@@ -76,12 +80,14 @@ endif ( )
+ #
+ file( GLOB_RECURSE MANIFEST "${SOURCE_DIR}/*.cpp" )
+
++if ( NOT BUILD_SHARED_LIBS )
+ set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" )
+ add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} )
+ set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
+ set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
+ set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
+-
++target_include_directories(${STATIC_LIBRARY_NAME} INTERFACE $<INSTALL_INTERFACE:include>)
++else ( )
+ set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" )
+ add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} )
+ set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 )
+@@ -93,14 +99,22 @@ else ( )
+ set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
+ endif ( )
+ set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
++target_include_directories(${SHARED_LIBRARY_NAME} INTERFACE $<INSTALL_INTERFACE:include>)
++endif ( )
+
+ if ( BUILD_SSL )
++if ( BUILD_SHARED_LIBS )
+ target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} )
++else ( )
+ target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} ${CMAKE_DL_LIBS} )
++endif ( )
+ else ( )
++if ( BUILD_SHARED_LIBS )
+ target_link_libraries( ${SHARED_LIBRARY_NAME} )
++else ( )
+ target_link_libraries( ${STATIC_LIBRARY_NAME} ${CMAKE_DL_LIBS} )
+ endif ( )
++endif ( )
+
+ if ( BUILD_TESTS )
+ find_package( catch REQUIRED )
+@@ -119,5 +133,26 @@ file( GLOB ARTIFACTS "${SOURCE_DIR}/*.hpp" )
+
+ install( FILES "${INCLUDE_DIR}/${PROJECT_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/include" )
+ install( FILES ${ARTIFACTS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/corvusoft/${PROJECT_NAME}" )
+-install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+-install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
++if ( NOT BUILD_SHARED_LIBS )
++install( TARGETS ${STATIC_LIBRARY_NAME} EXPORT unofficial-restbed-target RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
++else ( )
++install( TARGETS ${SHARED_LIBRARY_NAME} EXPORT unofficial-restbed-target RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
++endif ( )
++
++install( EXPORT unofficial-restbed-target FILE unofficial-restbed-target.cmake NAMESPACE unofficial::restbed:: DESTINATION share/unofficial-restbed)
++
++file( WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake.in"
++[[include(CMakeFindDependencyMacro)
++if (@BUILD_SSL@)
++ find_dependency(OpenSSL)
++endif()
++include("${CMAKE_CURRENT_LIST_DIR}/unofficial-restbed-target.cmake")
++if("@BUILD_SHARED_LIBS@")
++ add_library(unofficial::restbed::restbed ALIAS unofficial::restbed::restbed-shared)
++else()
++ add_library(unofficial::restbed::restbed ALIAS unofficial::restbed::restbed-static)
++endif()
++]])
++
++configure_file( "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake" @ONLY)
++install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake" DESTINATION share/unofficial-restbed)
+\ No newline at end of file
diff --git a/vcpkg/ports/restbed/portfile.cmake b/vcpkg/ports/restbed/portfile.cmake
new file mode 100644
index 0000000..bf2836e
--- /dev/null
+++ b/vcpkg/ports/restbed/portfile.cmake
@@ -0,0 +1,33 @@
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ openssl BUILD_SSL
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Corvusoft/restbed
+ REF "${VERSION}"
+ SHA512 989027c926b97a9dd02951c881dc41819014783da4848cc9ee50776545ba206830d35c2e775abd8c0f705f7b0611d5cd335dd1eb305cdcbf2c86100abaf1623c
+ HEAD_REF master
+ PATCHES
+ fix-cmake.patch
+)
+
+file(REMOVE "${SOURCE_PATH}/cmake/Findopenssl.cmake")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DBUILD_TESTS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-restbed)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/restbed/usage b/vcpkg/ports/restbed/usage
new file mode 100644
index 0000000..9e4f08c
--- /dev/null
+++ b/vcpkg/ports/restbed/usage
@@ -0,0 +1,4 @@
+restbed provides CMake targets:
+
+ find_package(unofficial-restbed CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE unofficial::restbed::restbed)
diff --git a/vcpkg/ports/restbed/vcpkg.json b/vcpkg/ports/restbed/vcpkg.json
new file mode 100644
index 0000000..4807d49
--- /dev/null
+++ b/vcpkg/ports/restbed/vcpkg.json
@@ -0,0 +1,34 @@
+{
+ "name": "restbed",
+ "version": "4.8",
+ "port-version": 3,
+ "description": "Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.",
+ "homepage": "https://github.com/corvusoft/restbed",
+ "license": "AGPL-3.0-or-later OR CPL-1.0",
+ "supports": "!xbox",
+ "dependencies": [
+ "asio",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "openssl": {
+ "description": "Secure over the wire communication allowing you to transmit private data online.",
+ "dependencies": [
+ {
+ "name": "asio",
+ "features": [
+ "openssl"
+ ]
+ },
+ "openssl"
+ ]
+ }
+ }
+}