aboutsummaryrefslogtreecommitdiff
path: root/ports/oatpp-libressl
diff options
context:
space:
mode:
authorMichael Heyman <mheyman@gmail.com>2020-05-15 16:34:08 -0400
committerGitHub <noreply@github.com>2020-05-15 13:34:08 -0700
commitd1729dcaf5e87188743b8d50e04743f37790c0e7 (patch)
tree8cca34682ef0008b5da9599d10169e82745063c4 /ports/oatpp-libressl
parent99a832a16110a75baa699f7c57de522174ce86bf (diff)
downloadvcpkg-d1729dcaf5e87188743b8d50e04743f37790c0e7.tar.gz
vcpkg-d1729dcaf5e87188743b8d50e04743f37790c0e7.zip
[oatpp] Add new port (#9402)
* improvement: has oatpp package * [oatpp] includes _CRT_SECURE_NO_WARNINGS compile-time flag * [oatpp] no curl submodule (until it catches up with core) * [oatpp] now version 0.19.11. Still no libretls module because of libretls3.0 dependency. * no accidentally added debug messages in vcpkg_execute_build_process.cmake * [oatpp] no empty depends line in CONTROL file * [oatpp] no dump_variables() function in portfile.cmake * [oatpp] no wwrning that only static libraries are supported * [oatpp] uses vcpkg_check_linkage(ONLY_STATIC_LIBRARY) call * [oatpp] curl submodule does not rely on pkg-config * [oatpp] curl-submodule-no-pkg-config-in-vcpkg works on linux and windows * [oatpp] portfile cleaned up * [oatpp] no carriage returns in patch * [oatpp]: split modules into their own ports * [oatpp-libressl]: remove variable dump * [libressl]: has check for UWP and ARM restored * [libressl]: has check for UWP and ARM restored * [libressl]: has check for UWP and ARM restored * [oatpp-libressl]: builds if libressl works * [oatpp]: version 1.0.0 * [oatpp]: no "Building ..." message Co-authored-by: heymamd1 <Michael.Heyman@jhuapl.edu>
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)