aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAn Tao <antao2002@gmail.com>2020-06-24 04:03:23 +0800
committerGitHub <noreply@github.com>2020-06-23 13:03:23 -0700
commit7a28379b4c22e5467646bcffc2a9f89a076ab006 (patch)
tree3453d8c5cf9d93bb22fcab209aa83b9751d549ab
parentd2b92bff55253c72e8e679214404483b7288f1ee (diff)
downloadvcpkg-7a28379b4c22e5467646bcffc2a9f89a076ab006.tar.gz
vcpkg-7a28379b4c22e5467646bcffc2a9f89a076ab006.zip
[Drogon] Add new port (#12024)
* [Drogon] Add new port * Update version * Use cmake options instead of patching
-rw-r--r--ports/drogon/CONTROL5
-rw-r--r--ports/drogon/drogon_ctl_install.patch20
-rw-r--r--ports/drogon/portfile.cmake33
-rw-r--r--ports/drogon/vcpkg.patch16
4 files changed, 74 insertions, 0 deletions
diff --git a/ports/drogon/CONTROL b/ports/drogon/CONTROL
new file mode 100644
index 000000000..7b859565b
--- /dev/null
+++ b/ports/drogon/CONTROL
@@ -0,0 +1,5 @@
+Source: drogon
+Version: v1.0.0-beta18
+Homepage: https://github.com/an-tao/drogon
+Description:Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows
+Build-Depends: trantor, zlib, jsoncpp, libmariadb, libpq, sqlite3, brotli \ No newline at end of file
diff --git a/ports/drogon/drogon_ctl_install.patch b/ports/drogon/drogon_ctl_install.patch
new file mode 100644
index 000000000..71643248e
--- /dev/null
+++ b/ports/drogon/drogon_ctl_install.patch
@@ -0,0 +1,20 @@
+diff --git a/drogon_ctl/CMakeLists.txt b/drogon_ctl/CMakeLists.txt
+index bbc01fe..99500f0 100755
+--- a/drogon_ctl/CMakeLists.txt
++++ b/drogon_ctl/CMakeLists.txt
+@@ -40,13 +40,13 @@ if(WIN32)
+ target_link_libraries(drogon_ctl PRIVATE ws2_32 Rpcrt4)
+ endif(WIN32)
+ message(STATUS "bin:" ${INSTALL_BIN_DIR})
+-install(TARGETS drogon_ctl RUNTIME DESTINATION ${INSTALL_BIN_DIR})
++install(TARGETS drogon_ctl RUNTIME DESTINATION tools/drogon)
+ if(WIN32)
+ set(CTL_FILE $<TARGET_FILE:drogon_ctl>)
+ add_custom_command(TARGET drogon_ctl POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ -DCTL_FILE=${CTL_FILE}
+- -DINSTALL_BIN_DIR=${INSTALL_BIN_DIR}
++ -DINSTALL_BIN_DIR=tools/drogon
+ -P
+ ${CMAKE_CURRENT_SOURCE_DIR}/CopyDlls.cmake)
+ else(WIN32)
diff --git a/ports/drogon/portfile.cmake b/ports/drogon/portfile.cmake
new file mode 100644
index 000000000..31d8e662a
--- /dev/null
+++ b/ports/drogon/portfile.cmake
@@ -0,0 +1,33 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO an-tao/drogon
+ REF v1.0.0-beta18
+ SHA512 38d57e6b5cc43bd1ac07c980453dda1f4c23a8c78eca942dd531d20661d7f088fc0a3d0f4e7cedddf98bac5a32be0330911cbf839d4956e05ee0265a68c7faa6
+ HEAD_REF master
+ PATCHES
+ vcpkg.patch
+ drogon_ctl_install.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_EXAMPLES=OFF
+)
+
+vcpkg_install_cmake()
+
+# Fix CMake files
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/drogon)
+
+# # Remove includes in debug
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
+# Copy pdb files
+vcpkg_copy_pdbs()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/drogon) \ No newline at end of file
diff --git a/ports/drogon/vcpkg.patch b/ports/drogon/vcpkg.patch
new file mode 100644
index 000000000..92b9aea86
--- /dev/null
+++ b/ports/drogon/vcpkg.patch
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aab915d..4daeb87 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -64,9 +64,9 @@ if(WIN32)
+ PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/third_party/mman-win32>)
+ endif(WIN32)
+
+-add_subdirectory(trantor)
++find_package(Trantor CONFIG REQUIRED)
+
+-target_link_libraries(${PROJECT_NAME} PUBLIC trantor)
++target_link_libraries(${PROJECT_NAME} PUBLIC Trantor::Trantor)
+
+ if(NOT WIN32)
+ target_link_libraries(${PROJECT_NAME} PRIVATE dl)