aboutsummaryrefslogtreecommitdiff
path: root/ports/oatpp-curl
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-curl
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-curl')
-rw-r--r--ports/oatpp-curl/CONTROL4
-rw-r--r--ports/oatpp-curl/curl-submodule-no-pkg-config-in-vcpkg.patch33
-rw-r--r--ports/oatpp-curl/portfile.cmake33
3 files changed, 70 insertions, 0 deletions
diff --git a/ports/oatpp-curl/CONTROL b/ports/oatpp-curl/CONTROL
new file mode 100644
index 000000000..1b80b3883
--- /dev/null
+++ b/ports/oatpp-curl/CONTROL
@@ -0,0 +1,4 @@
+Source: oatpp-curl
+Version: 1.0.0
+Description: Oat++ Modern web framework curl module to use libcurl as a RequestExecutor on the oatpp's ApiClient
+Build-Depends: curl,oatpp
diff --git a/ports/oatpp-curl/curl-submodule-no-pkg-config-in-vcpkg.patch b/ports/oatpp-curl/curl-submodule-no-pkg-config-in-vcpkg.patch
new file mode 100644
index 000000000..75fe7af36
--- /dev/null
+++ b/ports/oatpp-curl/curl-submodule-no-pkg-config-in-vcpkg.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 477064a..5da99e9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -95,8 +95,26 @@ message("## ${OATPP_THIS_MODULE_NAME} module. Resolving dependencies...\n")
+ ##############################
+ ## Find libcurl dependency
+
+-include(FindPkgConfig)
+-pkg_check_modules(PKG_CURL REQUIRED libcurl)
++if (VCPKG_TOOLCHAIN)
++ find_package(CURL REQUIRED)
++ if (CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$")
++ get_filename_component(PKG_CURL_LIBRARIES ${CURL_LIBRARY_DEBUG} NAME)
++ get_filename_component(PKG_CURL_LIBRARY_DIR ${CURL_LIBRARY_DEBUG} DIRECTORY)
++ else()
++ get_filename_component(PKG_CURL_LIBRARIES ${CURL_LIBRARY_RELEASE} NAME)
++ get_filename_component(PKG_CURL_LIBRARY_DIR ${CURL_LIBRARY_RELEASE} DIRECTORY)
++ endif()
++ if (PKG_CURL_LIBRARIES MATCHES [[^.*\.a$]])
++ string(LENGTH ${PKG_CURL_LIBRARIES} _LEN)
++ math(EXPR _LEN "${_LEN} - 5")
++ string(SUBSTRING ${PKG_CURL_LIBRARIES} 3 ${_LEN} PKG_CURL_LIBRARIES)
++ endif()
++ set(PKG_CURL_VERSION ${CURL_VERSION})
++ set(PKG_CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIRS})
++else()
++ include(FindPkgConfig)
++ pkg_check_modules(PKG_CURL REQUIRED libcurl)
++endif()
+
+ message("[libcurl] libcurl found:")
+ message("[libcurl] LIBRARIES=${PKG_CURL_LIBRARIES}")
diff --git a/ports/oatpp-curl/portfile.cmake b/ports/oatpp-curl/portfile.cmake
new file mode 100644
index 000000000..0e2388fa2
--- /dev/null
+++ b/ports/oatpp-curl/portfile.cmake
@@ -0,0 +1,33 @@
+set(OATPP_VERSION "1.0.0")
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO oatpp/oatpp-curl
+ REF 03a3f336be70c71d0547489aa0ed50206f46dcf8 # 1.0.0
+ SHA512 799cbddeb6e9d90eb43911845dd33ee272c4e86c86a07bb710ceb8c0e1722cda15412fdca10c4228a77f38e3b9e3d5d5248c8cd4366cbb9c369db4a830e29496
+ HEAD_REF master
+ PATCHES "curl-submodule-no-pkg-config-in-vcpkg.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"
+ "-DBUILD_SHARED_LIBS:BOOL=${OATPP_BUILD_SHARED_LIBRARIES_OPTION}"
+)
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/oatpp-curl-${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)