aboutsummaryrefslogtreecommitdiff
path: root/ports/oatpp-libressl
diff options
context:
space:
mode:
Diffstat (limited to 'ports/oatpp-libressl')
-rw-r--r--ports/oatpp-libressl/CONTROL4
-rw-r--r--ports/oatpp-libressl/libress-submodule-downgrade-required-libressl-version.patch63
-rw-r--r--ports/oatpp-libressl/portfile.cmake36
3 files changed, 103 insertions, 0 deletions
diff --git a/ports/oatpp-libressl/CONTROL b/ports/oatpp-libressl/CONTROL
new file mode 100644
index 000000000..dd867ff36
--- /dev/null
+++ b/ports/oatpp-libressl/CONTROL
@@ -0,0 +1,4 @@
+Source: oatpp-libressl
+Version: 1.0.0
+Build-Depends: libressl, oatpp
+Description: Oat++ libressl module providing secure server and client connection providers
diff --git a/ports/oatpp-libressl/libress-submodule-downgrade-required-libressl-version.patch b/ports/oatpp-libressl/libress-submodule-downgrade-required-libressl-version.patch
new file mode 100644
index 000000000..62644beda
--- /dev/null
+++ b/ports/oatpp-libressl/libress-submodule-downgrade-required-libressl-version.patch
@@ -0,0 +1,63 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4663a65..b91077a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -95,19 +95,25 @@ message("## ${OATPP_THIS_MODULE_NAME} module. Resolving dependencies...\n")
+ ##############################
+ ## Find Libressl dependency
+
+-include(FindPkgConfig)
+-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/module")
+-
+-find_package(LibreSSL 3.0.0 REQUIRED)
+-
+-message("LIBRESSL_INCLUDE_DIR=${LIBRESSL_INCLUDE_DIR}")
+-message("LIBRESSL_TLS_LIBRARY=${LIBRESSL_TLS_LIBRARY}")
+-message("LIBRESSL_SSL_LIBRARY=${LIBRESSL_SSL_LIBRARY}")
+-message("LIBRESSL_CRYPTO_LIBRARY=${LIBRESSL_CRYPTO_LIBRARY}")
+-message("LIBRESSL_LIBRARIES=${LIBRESSL_LIBRARIES}")
+-message("LIBRESSL_VERSION=${LIBRESSL_VERSION}")
+-
+-message("\n############################################################################\n")
++find_file(LIBRESSL_INCLUDE_DIR tls.h)
++if (NOT LIBRESSL_INCLUDE_DIR)
++ find_file(_OPENSSL_SSL_INCLUDE_FILE openssl/ssl.h)
++ if (NOT _OPENSSL_SSL_INCLUDE_FILE)
++ message(FATAL_ERROR "LibreSSL and OpenSSL not found. LibreSSL must be installed.")
++ else()
++ message(FATAL_ERROR "OpenSSL installed instead of LibreSSL. oatpp-libressl requires LibreSSL.")
++ endif()
++endif()
++get_filename_component(LIBRESSL_INCLUDE_DIR ${LIBRESSL_INCLUDE_DIR} DIRECTORY)
++find_library(LIBRESSL_TLS_LIBRARY NAMES tls tls-21 tls-20 tls-19)
++find_library(LIBRESSL_SSL_LIBRARY NAMES ssl ssl-49 ssl-48 ssl-47)
++find_library(LIBRESSL_CRYPTO_LIBRARY NAMES crypto crypto-47 crypto-46 crypto-45)
++find_library(LIBRESSL_LIBRARIES "${LIBRESSL_CRYPTO_LIBRARY};${LIBRESSL_SSL_LIBRARY};${LIBRESSL_TLS_LIBRARY}")
++message(STATUS "LIBRESSL_INCLUDE_DIR=${LIBRESSL_INCLUDE_DIR}")
++message(STATUS "LIBRESSL_TLS_LIBRARY=${LIBRESSL_TLS_LIBRARY}")
++message(STATUS "LIBRESSL_SSL_LIBRARY=${LIBRESSL_SSL_LIBRARY}")
++message(STATUS "LIBRESSL_CRYPTO_LIBRARY=${LIBRESSL_CRYPTO_LIBRARY}")
++message(STATUS "LIBRESSL_LIBRARIES=${LIBRESSL_LIBRARIES}")
+
+ ###################################################################################################
+ ## define targets
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ace3b13..489fbb1 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -30,10 +30,12 @@ target_include_directories(${OATPP_THIS_MODULE_NAME}
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ )
+
++target_include_directories(${OATPP_THIS_MODULE_NAME}
++ SYSTEM PRIVATE "${LIBRESSL_INCLUDE_DIR}"
++)
++
+ target_link_libraries(${OATPP_THIS_MODULE_NAME}
+- PUBLIC LibreSSL::TLS
+- PUBLIC LibreSSL::SSL
+- PUBLIC LibreSSL::Crypto
++ PUBLIC "${LIBRESSL_TLS_LIBRARY}" "${LIBRESSL_SSL_LIBRARY}" "${LIBRESSL_CRYPTO_LIBRARY}"
+ )
+
+ #######################################################################################################
diff --git a/ports/oatpp-libressl/portfile.cmake b/ports/oatpp-libressl/portfile.cmake
new file mode 100644
index 000000000..14bb9f5e2
--- /dev/null
+++ b/ports/oatpp-libressl/portfile.cmake
@@ -0,0 +1,36 @@
+set(OATPP_VERSION "1.0.0")
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+# get the source
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO oatpp/oatpp-libressl
+ REF 2cf02b6fd08bb9be29bdbe5188f35f2155c0c843 # 1.0.0
+ SHA512 053d017690d318edeeda63f782ee4845280b0f405e02249b18c30ac3d88cbfb1d3090bb6b60c0c8742f73357d60fa1695c369bef56a5ab7985d9773ea1fd52a2
+ HEAD_REF master
+ PATCHES "libress-submodule-downgrade-required-libressl-version.patch"
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(OATPP_BUILD_SHARED_LIBRARIES_OPTION "ON")
+else()
+ set(OATPP_BUILD_SHARED_LIBRARIES_OPTION "OFF")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PREFER_NINJA
+ OPTIONS
+ "-DOATPP_BUILD_TESTS:BOOL=OFF"
+ "-DCMAKE_CXX_FLAGS=-D_CRT_SECURE_NO_WARNINGS"
+ "-DLIBRESSL_ROOT_DIR=${CURRENT_INSTALLED_DIR}"
+ "-DBUILD_SHARED_LIBS:BOOL=${OATPP_BUILD_SHARED_LIBRARIES_OPTION}"
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/oatpp-libressl-${OATPP_VERSION})
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)