aboutsummaryrefslogtreecommitdiff
path: root/ports/cpp-redis
diff options
context:
space:
mode:
authorAlexander Saprykin <xelfium@gmail.com>2018-05-26 13:27:14 +0200
committerGitHub <noreply@github.com>2018-05-26 13:27:14 +0200
commit4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5 (patch)
treed95c9490352eb73f078d34a33bc4bb44ac9fa48b /ports/cpp-redis
parentfb689bd13dd6ba563a885d71fff1dd2b32a615db (diff)
parent2ac7527b40b1dbeb7856b9f763362c1e139e2ca9 (diff)
downloadvcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.tar.gz
vcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.zip
Merge pull request #1 from Microsoft/master
Update vcpkg from upstream
Diffstat (limited to 'ports/cpp-redis')
-rw-r--r--ports/cpp-redis/CONTROL4
-rw-r--r--ports/cpp-redis/portfile.cmake59
-rw-r--r--ports/cpp-redis/tacopie/CMakeLists.txt8
3 files changed, 71 insertions, 0 deletions
diff --git a/ports/cpp-redis/CONTROL b/ports/cpp-redis/CONTROL
new file mode 100644
index 000000000..5f001f04d
--- /dev/null
+++ b/ports/cpp-redis/CONTROL
@@ -0,0 +1,4 @@
+Source: cpp-redis
+Version: 4.3.1
+Build-Depends: tacopie
+Description: cpp-redis is a C++11 Asynchronous Multi-Platform Lightweight Redis Client, with support for synchronous operations and pipelining.
diff --git a/ports/cpp-redis/portfile.cmake b/ports/cpp-redis/portfile.cmake
new file mode 100644
index 000000000..9187e344f
--- /dev/null
+++ b/ports/cpp-redis/portfile.cmake
@@ -0,0 +1,59 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Cylix/cpp_redis
+ REF 4.3.1
+ SHA512 abf372542c53f37f504b3211b840b100d07a8f4b2e7f5584cc7550ab16ed617838e2df79064374c7a409458d8567f4834686318ea3a40249c767e36c744c7a47
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/tacopie/CMakeLists.txt DESTINATION ${SOURCE_PATH}/tacopie)
+
+if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ set(MSVC_RUNTIME_LIBRARY_CONFIG "/MD")
+else()
+ set(MSVC_RUNTIME_LIBRARY_CONFIG "/MT")
+endif()
+
+# cpp-redis forcibly removes "/RTC1" in its cmake file. Because this is an ABI-sensitive flag, we need to re-add it in a form that won't be detected.
+set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -RTC1")
+set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG} -RTC1")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DMSVC_RUNTIME_LIBRARY_CONFIG=${MSVC_RUNTIME_LIBRARY_CONFIG}
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE
+)
+
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(GLOB_RECURSE FILES "${CURRENT_PACKAGES_DIR}/include/*")
+foreach(file ${FILES})
+ file(READ ${file} _contents)
+ string(REPLACE "ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT" "if 1" _contents "${_contents}")
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE
+ "extern std::unique_ptr<logger_iface> active_logger;"
+ "extern __declspec(dllimport) std::unique_ptr<logger_iface> active_logger;"
+ _contents "${_contents}")
+ endif()
+ file(WRITE ${file} "${_contents}")
+endforeach()
+
+file(GLOB FILES_TO_REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/cpp_redis.ilk" "${CURRENT_PACKAGES_DIR}/bin/cpp_redis.dll.manifest")
+if(FILES_TO_REMOVE)
+ file(REMOVE_RECURSE ${FILES_TO_REMOVE})
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cpp-redis RENAME copyright)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+vcpkg_copy_pdbs()
diff --git a/ports/cpp-redis/tacopie/CMakeLists.txt b/ports/cpp-redis/tacopie/CMakeLists.txt
new file mode 100644
index 000000000..74959e2e1
--- /dev/null
+++ b/ports/cpp-redis/tacopie/CMakeLists.txt
@@ -0,0 +1,8 @@
+find_library(TACOPIE tacopie)
+find_path(TACOPIE_H tacopie/tacopie)
+
+message(STATUS "TACOPIE_H: ${TACOPIE_H}")
+
+add_library(tacopie INTERFACE)
+target_link_libraries(tacopie INTERFACE "${TACOPIE}")
+target_include_directories(tacopie INTERFACE "${TACOPIE_H}") \ No newline at end of file