summaryrefslogtreecommitdiff
path: root/extra/snappy
diff options
context:
space:
mode:
Diffstat (limited to 'extra/snappy')
-rw-r--r--extra/snappy/cmakelists.patch96
-rw-r--r--extra/snappy/fix-inline.patch13
-rw-r--r--extra/snappy/rtti.patch1
3 files changed, 110 insertions, 0 deletions
diff --git a/extra/snappy/cmakelists.patch b/extra/snappy/cmakelists.patch
new file mode 100644
index 0000000..9c16853
--- /dev/null
+++ b/extra/snappy/cmakelists.patch
@@ -0,0 +1,96 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -86,6 +86,8 @@
+ # it prominent in the GUI.
+ option(BUILD_SHARED_LIBS "Build shared libraries(DLLs)." OFF)
+
++option(BUILD_STATIC_LIBS "Build static libraries." ON)
++
+ option(SNAPPY_BUILD_TESTS "Build Snappy's own tests." ON)
+
+ option(SNAPPY_BUILD_BENCHMARKS "Build Snappy's benchmarks" ON)
+@@ -98,6 +100,10 @@
+
+ option(SNAPPY_INSTALL "Install Snappy's header and library" ON)
+
++if(NOT BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
++ set(BUILD_STATIC_LIBS OFF)
++endif ()
++
+ include(TestBigEndian)
+ test_big_endian(SNAPPY_IS_BIG_ENDIAN)
+
+@@ -213,19 +219,28 @@
+ "snappy-stubs-public.h.in"
+ "${PROJECT_BINARY_DIR}/snappy-stubs-public.h")
+
++# When BUILD_SHARED_LIBS is:
++# ON it will generate a SHARED library
++# OFF it will generate a STATIC library
+ add_library(snappy "")
+-target_sources(snappy
+- PRIVATE
++
++# Used to generate both lib types
++if (BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
++ add_library(snappy_static STATIC "")
++ set_target_properties(snappy_static PROPERTIES OUTPUT_NAME snappy)
++ install(TARGETS snappy_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
++endif ()
++
++set(SNAPPY_SOURCE_PRIVATE
+ "snappy-internal.h"
+ "snappy-stubs-internal.h"
+ "snappy-c.cc"
+ "snappy-sinksource.cc"
+ "snappy-stubs-internal.cc"
+ "snappy.cc"
+- "${PROJECT_BINARY_DIR}/config.h"
++ "${PROJECT_BINARY_DIR}/config.h")
+
+- # Only CMake 3.3+ supports PUBLIC sources in targets exported by "install".
+- $<$<VERSION_GREATER:CMAKE_VERSION,3.2>:PUBLIC>
++set(SNAPPY_SOURCE_PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/snappy-c.h>
+ $<INSTALL_INTERFACE:include/snappy-c.h>
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/snappy-sinksource.h>
+@@ -233,18 +248,32 @@
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/snappy.h>
+ $<INSTALL_INTERFACE:include/snappy.h>
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/snappy-stubs-public.h>
+- $<INSTALL_INTERFACE:include/snappy-stubs-public.h>
+-)
+-target_include_directories(snappy
+- PUBLIC
++ $<INSTALL_INTERFACE:include/snappy-stubs-public.h>)
++
++set(SNAPPY_INCLUDE_DIRS
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
+- $<INSTALL_INTERFACE:include>
+-)
++ $<INSTALL_INTERFACE:include>)
++
++# Only CMake 3.3+ supports PUBLIC sources in targets exported by "install".
++target_sources(snappy PRIVATE ${SNAPPY_SOURCE_PRIVATE}
++ $<$<VERSION_GREATER:CMAKE_VERSION,3.2>:PUBLIC> ${SNAPPY_SOURCE_PUBLIC})
++
++target_include_directories(snappy PUBLIC ${SNAPPY_INCLUDE_DIRS})
++
++target_compile_definitions(snappy PRIVATE -DHAVE_CONFIG_H)
++
++# Only CMake 3.3+ supports PUBLIC sources in targets exported by "install".
++target_sources(snappy_static PRIVATE ${SNAPPY_SOURCE_PRIVATE}
++ $<$<VERSION_GREATER:CMAKE_VERSION,3.2>:PUBLIC> ${SNAPPY_SOURCE_PUBLIC})
++
++target_include_directories(snappy_static PUBLIC ${SNAPPY_INCLUDE_DIRS})
++
++target_compile_definitions(snappy_static PRIVATE -DHAVE_CONFIG_H)
++
+ set_target_properties(snappy
+ PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
+
+-target_compile_definitions(snappy PRIVATE -DHAVE_CONFIG_H)
+ if(BUILD_SHARED_LIBS)
+ set_target_properties(snappy PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ endif(BUILD_SHARED_LIBS)
diff --git a/extra/snappy/fix-inline.patch b/extra/snappy/fix-inline.patch
new file mode 100644
index 0000000..96484e0
--- /dev/null
+++ b/extra/snappy/fix-inline.patch
@@ -0,0 +1,13 @@
+Patch-Source: https://github.com/google/snappy/pull/128
+
+--- a/snappy.cc
++++ b/snappy.cc
+@@ -1014,7 +1014,7 @@
+ }
+
+ SNAPPY_ATTRIBUTE_ALWAYS_INLINE
+-size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
++inline size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
+ const uint8_t*& ip = *ip_p;
+ // This section is crucial for the throughput of the decompression loop.
+ // The latency of an iteration is fundamentally constrained by the
diff --git a/extra/snappy/rtti.patch b/extra/snappy/rtti.patch
new file mode 100644
index 0000000..77b8178
--- /dev/null
+++ b/extra/snappy/rtti.patch
@@ -0,0 +1 @@
+Too Many Requests \ No newline at end of file