aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libmemcached-awesome
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libmemcached-awesome')
-rw-r--r--vcpkg/ports/libmemcached-awesome/in_port_t.diff15
-rw-r--r--vcpkg/ports/libmemcached-awesome/no-static-exports.diff72
-rw-r--r--vcpkg/ports/libmemcached-awesome/p9y-targets.diff12
-rw-r--r--vcpkg/ports/libmemcached-awesome/portfile.cmake57
-rw-r--r--vcpkg/ports/libmemcached-awesome/vcpkg.json18
5 files changed, 174 insertions, 0 deletions
diff --git a/vcpkg/ports/libmemcached-awesome/in_port_t.diff b/vcpkg/ports/libmemcached-awesome/in_port_t.diff
new file mode 100644
index 0000000..e5e095f
--- /dev/null
+++ b/vcpkg/ports/libmemcached-awesome/in_port_t.diff
@@ -0,0 +1,15 @@
+diff --git a/include/libmemcached-1.0/struct/server.h b/include/libmemcached-1.0/struct/server.h
+index 9a27c9c9..69d9696d 100644
+--- a/include/libmemcached-1.0/struct/server.h
++++ b/include/libmemcached-1.0/struct/server.h
+@@ -21,6 +21,10 @@
+ # include <netdb.h>
+ #endif
+
++#ifdef HAVE_IN_PORT_T
++# include <netinet/in.h>
++#endif
++
+ #ifdef NI_MAXHOST
+ # define MEMCACHED_NI_MAXHOST NI_MAXHOST
+ #else
diff --git a/vcpkg/ports/libmemcached-awesome/no-static-exports.diff b/vcpkg/ports/libmemcached-awesome/no-static-exports.diff
new file mode 100644
index 0000000..3269e35
--- /dev/null
+++ b/vcpkg/ports/libmemcached-awesome/no-static-exports.diff
@@ -0,0 +1,72 @@
+diff --git a/include/libhashkit-1.0/visibility.h b/include/libhashkit-1.0/visibility.h
+index dce8c097..6eeb7314 100644
+--- a/include/libhashkit-1.0/visibility.h
++++ b/include/libhashkit-1.0/visibility.h
+@@ -23,7 +23,10 @@
+ * HASHKIT_LOCAL is used for non-api symbols.
+ */
+
+-#if defined(BUILDING_HASHKIT)
++#if defined(HASHKIT_STATIC)
++# define HASHKIT_API
++# define HASHKIT_LOCAL
++#elif defined(BUILDING_HASHKIT)
+ # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
+ # define HASHKIT_API __attribute__((visibility("default")))
+ # define HASHKIT_LOCAL __attribute__((visibility("hidden")))
+@@ -45,4 +48,4 @@
+ # define HASHKIT_API
+ # define HASHKIT_LOCAL
+ # endif /* defined(_MSC_VER) */
+-#endif /* defined(BUILDING_HASHKIT) */
++#endif /* defined(HASHKIT_STATIC) */
+diff --git a/include/libmemcached-1.0/visibility.h b/include/libmemcached-1.0/visibility.h
+index 62c4ea22..4495aa04 100644
+--- a/include/libmemcached-1.0/visibility.h
++++ b/include/libmemcached-1.0/visibility.h
+@@ -23,7 +23,10 @@
+ * LIBMEMCACHED_LOCAL is used for non-api symbols.
+ */
+
+-#if defined(BUILDING_LIBMEMCACHEDINTERNAL)
++#if defined(LIBMEMCACHED_STATIC)
++# define LIBMEMCACHED_API
++# define LIBMEMCACHED_LOCAL
++#elif defined(BUILDING_LIBMEMCACHEDINTERNAL)
+ # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
+ # define LIBMEMCACHED_API __attribute__((visibility("default")))
+ # define LIBMEMCACHED_LOCAL __attribute__((visibility("default")))
+@@ -61,4 +64,4 @@
+ # define LIBMEMCACHED_LOCAL
+ # endif /* defined(_MSC_VER) */
+ # endif /* defined(BUILDING_LIBMEMCACHED) */
+-#endif /* defined(BUILDING_LIBMEMCACHEDINTERNAL) */
++#endif /* defined(LIBMEMCACHED_STATIC) */
+diff --git a/src/libhashkit/CMakeLists.txt b/src/libhashkit/CMakeLists.txt
+index 455570af..c0d9d743 100644
+--- a/src/libhashkit/CMakeLists.txt
++++ b/src/libhashkit/CMakeLists.txt
+@@ -30,6 +30,9 @@ set_target_properties(libhashkit PROPERTIES
+ SOVERSION ${LIBHASHKIT_SO_SOVERSION}
+ VERSION ${LIBHASHKIT_SO_VERSION})
+ target_compile_options(libhashkit PRIVATE -DBUILDING_HASHKIT)
++if(NOT BUILD_SHARED_LIBS)
++ target_compile_options(libhashkit PUBLIC -DHASHKIT_STATIC)
++endif()
+ target_include_directories(libhashkit PRIVATE
+ ${CMAKE_SOURCE_DIR}/src
+ ${CMAKE_BINARY_DIR}/src
+diff --git a/src/libmemcached/CMakeLists.txt b/src/libmemcached/CMakeLists.txt
+index 05116ae8..a1a2ac00 100644
+--- a/src/libmemcached/CMakeLists.txt
++++ b/src/libmemcached/CMakeLists.txt
+@@ -94,6 +94,9 @@ set_target_properties(libmemcached PROPERTIES
+ SOVERSION ${LIBMEMCACHED_SO_SOVERSION}
+ VERSION ${LIBMEMCACHED_SO_VERSION})
+ target_compile_definitions(libmemcached PRIVATE -DBUILDING_LIBMEMCACHED)
++if(NOT BUILD_SHARED_LIBS)
++ target_compile_definitions(libmemcached PUBLIC -DLIBMEMCACHED_STATIC)
++endif()
+ target_link_libraries(libmemcached PUBLIC libhashkit Threads::Threads ${CMAKE_DL_LIBS})
+ target_link_libraries(libmemcached PRIVATE p9y)
+ if(MSVC)
diff --git a/vcpkg/ports/libmemcached-awesome/p9y-targets.diff b/vcpkg/ports/libmemcached-awesome/p9y-targets.diff
new file mode 100644
index 0000000..271e097
--- /dev/null
+++ b/vcpkg/ports/libmemcached-awesome/p9y-targets.diff
@@ -0,0 +1,12 @@
+diff --git a/support/libmemcached-config.cmake.in b/support/libmemcached-config.cmake.in
+index d6fd629b..31e8c8be 100644
+--- a/support/libmemcached-config.cmake.in
++++ b/support/libmemcached-config.cmake.in
+@@ -3,6 +3,7 @@
+ include(CMakeFindDependencyMacro)
+ find_dependency(Threads)
+
++include(${CMAKE_CURRENT_LIST_DIR}/p9y-targets.cmake)
+ include(${CMAKE_CURRENT_LIST_DIR}/libhashkit-targets.cmake)
+ include(${CMAKE_CURRENT_LIST_DIR}/libmemcached-targets.cmake)
+ include(${CMAKE_CURRENT_LIST_DIR}/libmemcachedprotocol-targets.cmake)
diff --git a/vcpkg/ports/libmemcached-awesome/portfile.cmake b/vcpkg/ports/libmemcached-awesome/portfile.cmake
new file mode 100644
index 0000000..2dcdca8
--- /dev/null
+++ b/vcpkg/ports/libmemcached-awesome/portfile.cmake
@@ -0,0 +1,57 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO awesomized/libmemcached
+ REF ${VERSION}
+ SHA512 0a10a2431142ec6e4547f82fdd35b55c018264e5f8c39910a65252c3f53d862fb5945e7a671951915aac076767cc995740b3e499eb584017a38eb2d1e82171fb
+ HEAD_REF v1.x
+ PATCHES
+ in_port_t.diff
+ no-static-exports.diff
+ p9y-targets.diff
+)
+
+vcpkg_find_acquire_program(BISON)
+vcpkg_find_acquire_program(FLEX)
+
+# Options are initialized from env variables. Control env.
+foreach(var IN ITEMS
+ BUILD_TESTING
+ BUILD_DOCSONLY BUILD_DOCS BUILD_DOCS_HTML BUILD_DOCS_MAN BUILD_DOCS_MANGZ
+ ENABLE_SASL
+ ENABLE_DTRACE
+ ENABLE_HASH_HSIEH
+ ENABLE_OPENSSL_CRYPTO
+ # Extra deps: pthreads, libevent
+ ENABLE_MEMASLAP
+)
+ set(ENV{${var}} OFF)
+endforeach()
+set(ENV{ENABLE_SANITIZERS} "")
+set(ENV{ENABLE_HASH_FNV64} ON)
+set(ENV{ENABLE_HASH_MURMUR} ON)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ "-DBISON_EXECUTABLE=${BISON}"
+ "-DFLEX_EXECUTABLE=${FLEX}"
+ "-DVCPKG_LOCK_FIND_PACKAGE_Backtrace=OFF"
+ "-DVCPKG_LOCK_FIND_PACKAGE_PkgConfig=OFF"
+)
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libmemcached-awesome")
+vcpkg_fixup_pkgconfig()
+vcpkg_copy_pdbs()
+
+vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES memcapable memcat memcp memdump memerror memexist memflush memparse memping memrm memslap memstat memtouch)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libmemcached-1.0/visibility.h" "#if defined(LIBMEMCACHED_STATIC)" "#if 1")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libhashkit-1.0/visibility.h" "#if defined(HASHKIT_STATIC)" "#if 1")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/libmemcached-awesome/vcpkg.json b/vcpkg/ports/libmemcached-awesome/vcpkg.json
new file mode 100644
index 0000000..11cc24a
--- /dev/null
+++ b/vcpkg/ports/libmemcached-awesome/vcpkg.json
@@ -0,0 +1,18 @@
+{
+ "name": "libmemcached-awesome",
+ "version": "1.1.4",
+ "description": "Open source C/C++ client library and tools for the memcached server",
+ "homepage": "https://awesomized.github.io/libmemcached/",
+ "license": "BSD-3-Clause",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}