summaryrefslogtreecommitdiffstats
path: root/src/rocksdb/thirdparty.inc
diff options
context:
space:
mode:
Diffstat (limited to 'src/rocksdb/thirdparty.inc')
-rw-r--r--src/rocksdb/thirdparty.inc268
1 files changed, 268 insertions, 0 deletions
diff --git a/src/rocksdb/thirdparty.inc b/src/rocksdb/thirdparty.inc
new file mode 100644
index 000000000..25ecdab88
--- /dev/null
+++ b/src/rocksdb/thirdparty.inc
@@ -0,0 +1,268 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+# Edit definitions below to specify paths to include files and libraries of all 3rd party libraries
+
+# TODO: Make this work with find_package and/or get rid of it
+#
+# This example assumes all the libraries locate in directories under THIRDPARTY_HOME environment variable
+# Set environment variable THIRDPARTY_HOME to point to your third party libraries home (Unix style dir separators)
+# or change the paths below to reflect where the libraries actually reside
+#
+set (THIRDPARTY_LIBS "") # Initialization, don't touch
+
+#
+# Defaults
+#
+set(GFLAGS_HOME $ENV{THIRDPARTY_HOME}/Gflags.Library)
+set(GFLAGS_INCLUDE ${GFLAGS_HOME}/build/native/include)
+set(GFLAGS_LIB_DEBUG ${GFLAGS_HOME}/lib/native/debug/amd64/gflags.lib)
+set(GFLAGS_LIB_RELEASE ${GFLAGS_HOME}/lib/native/retail/amd64/gflags.lib)
+
+# ================================================== GFLAGS ==================================================
+# For compatibility
+if (GFLAGS)
+ set(WITH_GFLAGS ON)
+endif ()
+
+if (WITH_GFLAGS)
+ message(STATUS "GFLAGS library is enabled")
+
+ if(DEFINED ENV{GFLAGS_INCLUDE})
+ set(GFLAGS_INCLUDE $ENV{GFLAGS_INCLUDE})
+ endif()
+
+ if(DEFINED ENV{GFLAGS_LIB_DEBUG})
+ set(GFLAGS_LIB_DEBUG $ENV{GFLAGS_LIB_DEBUG})
+ endif()
+
+ if(DEFINED ENV{GFLAGS_LIB_RELEASE})
+ set(GFLAGS_LIB_RELEASE $ENV{GFLAGS_LIB_RELEASE})
+ endif()
+
+ set(GFLAGS_CXX_FLAGS -DGFLAGS=gflags)
+ set(GFLAGS_LIBS debug ${GFLAGS_LIB_DEBUG} optimized ${GFLAGS_LIB_RELEASE})
+
+ add_definitions(${GFLAGS_CXX_FLAGS})
+ include_directories(${GFLAGS_INCLUDE})
+ set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${GFLAGS_LIBS})
+else ()
+ message(STATUS "GFLAGS library is disabled")
+endif ()
+
+# ================================================== SNAPPY ==================================================
+#
+# Edit these 4 lines to define paths to Snappy
+#
+set(SNAPPY_HOME $ENV{THIRDPARTY_HOME}/Snappy.Library)
+set(SNAPPY_INCLUDE ${SNAPPY_HOME}/build/native/inc/inc)
+set(SNAPPY_LIB_DEBUG ${SNAPPY_HOME}/lib/native/debug/amd64/snappy.lib)
+set(SNAPPY_LIB_RELEASE ${SNAPPY_HOME}/lib/native/retail/amd64/snappy.lib)
+
+# For compatibility
+if(SNAPPY)
+ set(WITH_SNAPPY ON)
+endif ()
+
+if (WITH_SNAPPY)
+ message(STATUS "SNAPPY library is enabled")
+
+ if(DEFINED ENV{SNAPPY_INCLUDE})
+ set(SNAPPY_INCLUDE $ENV{SNAPPY_INCLUDE})
+ endif()
+
+ if(DEFINED ENV{SNAPPY_LIB_DEBUG})
+ set(SNAPPY_LIB_DEBUG $ENV{SNAPPY_LIB_DEBUG})
+ endif()
+
+ if(DEFINED ENV{SNAPPY_LIB_RELEASE})
+ set(SNAPPY_LIB_RELEASE $ENV{SNAPPY_LIB_RELEASE})
+ endif()
+
+ set(SNAPPY_CXX_FLAGS -DSNAPPY)
+ set(SNAPPY_LIBS debug ${SNAPPY_LIB_DEBUG} optimized ${SNAPPY_LIB_RELEASE})
+
+ add_definitions(${SNAPPY_CXX_FLAGS})
+ include_directories(${SNAPPY_INCLUDE})
+ set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${SNAPPY_LIBS})
+else ()
+ message(STATUS "SNAPPY library is disabled")
+endif ()
+
+# ================================================== LZ4 ==================================================
+#
+# Edit these 4 lines to define paths to LZ4
+#
+set(LZ4_HOME $ENV{THIRDPARTY_HOME}/LZ4.Library)
+set(LZ4_INCLUDE ${LZ4_HOME}/build/native/inc/inc)
+set(LZ4_LIB_DEBUG ${LZ4_HOME}/lib/native/debug/amd64/lz4.lib)
+set(LZ4_LIB_RELEASE ${LZ4_HOME}/lib/native/retail/amd64/lz4.lib)
+
+
+# For compatibility
+if (LZ4)
+ set(WITH_LZ4 ON)
+endif ()
+
+if (WITH_LZ4)
+ message(STATUS "LZ4 library is enabled")
+
+ if(DEFINED ENV{LZ4_INCLUDE})
+ set(LZ4_INCLUDE $ENV{LZ4_INCLUDE})
+ endif()
+
+ if(DEFINED ENV{LZ4_LIB_DEBUG})
+ set(LZ4_LIB_DEBUG $ENV{LZ4_LIB_DEBUG})
+ endif()
+
+ if(DEFINED ENV{LZ4_LIB_RELEASE})
+ set(LZ4_LIB_RELEASE $ENV{LZ4_LIB_RELEASE})
+ endif()
+
+ set(LZ4_CXX_FLAGS -DLZ4)
+ set(LZ4_LIBS debug ${LZ4_LIB_DEBUG} optimized ${LZ4_LIB_RELEASE})
+
+ add_definitions(${LZ4_CXX_FLAGS})
+ include_directories(${LZ4_INCLUDE})
+ set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${LZ4_LIBS})
+else ()
+ message(STATUS "LZ4 library is disabled")
+endif ()
+
+# ================================================== ZLIB ==================================================
+#
+# Edit these 4 lines to define paths to ZLIB
+#
+set(ZLIB_HOME $ENV{THIRDPARTY_HOME}/ZLIB.Library)
+set(ZLIB_INCLUDE ${ZLIB_HOME}/build/native/inc/inc)
+set(ZLIB_LIB_DEBUG ${ZLIB_HOME}/lib/native/debug/amd64/zlib.lib)
+set(ZLIB_LIB_RELEASE ${ZLIB_HOME}/lib/native/retail/amd64/zlib.lib)
+
+# For compatibilty
+if (ZLIB)
+ set(WITH_ZLIB ON)
+endif ()
+
+if (WITH_ZLIB)
+ message(STATUS "ZLIB library is enabled")
+
+ if(DEFINED ENV{ZLIB_INCLUDE})
+ set(ZLIB_INCLUDE $ENV{ZLIB_INCLUDE})
+ endif()
+
+ if(DEFINED ENV{ZLIB_LIB_DEBUG})
+ set(ZLIB_LIB_DEBUG $ENV{ZLIB_LIB_DEBUG})
+ endif()
+
+ if(DEFINED ENV{ZLIB_LIB_RELEASE})
+ set(ZLIB_LIB_RELEASE $ENV{ZLIB_LIB_RELEASE})
+ endif()
+
+ set(ZLIB_CXX_FLAGS -DZLIB)
+ set(ZLIB_LIBS debug ${ZLIB_LIB_DEBUG} optimized ${ZLIB_LIB_RELEASE})
+
+ add_definitions(${ZLIB_CXX_FLAGS})
+ include_directories(${ZLIB_INCLUDE})
+ set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${ZLIB_LIBS})
+else ()
+ message(STATUS "ZLIB library is disabled")
+endif ()
+
+# ================================================== XPRESS ==================================================
+# This makes use of built-in Windows API, no additional includes, links to a system lib
+
+# For compatibilty
+if (XPRESS)
+ set(WITH_XPRESS ON)
+endif ()
+
+if (WITH_XPRESS)
+ message(STATUS "XPRESS is enabled")
+
+ add_definitions(-DXPRESS)
+
+ # We are using the implementation provided by the system
+ set (SYSTEM_LIBS ${SYSTEM_LIBS} Cabinet.lib)
+else ()
+ message(STATUS "XPRESS is disabled")
+endif ()
+
+
+# ================================================== ZSTD ==================================================
+#
+# Edit these 4 lines to define paths to ZSTD
+#
+set(ZSTD_HOME $ENV{THIRDPARTY_HOME}/ZSTD.Library)
+set(ZSTD_INCLUDE ${ZSTD_HOME}/build/native/inc)
+set(ZSTD_LIB_DEBUG ${ZSTD_HOME}/lib/native/debug/amd64/libzstd_static.lib)
+set(ZSTD_LIB_RELEASE ${ZSTD_HOME}/lib/native/retail/amd64/libzstd_static.lib)
+
+# For compatibility
+if (ZSTD)
+ set(WITH_ZSTD ON)
+endif ()
+
+if (WITH_ZSTD)
+ message(STATUS "ZSTD library is enabled")
+
+ if(DEFINED ENV{ZSTD_INCLUDE})
+ set(ZSTD_INCLUDE $ENV{ZSTD_INCLUDE})
+ endif()
+
+ if(DEFINED ENV{ZSTD_LIB_DEBUG})
+ set(ZSTD_LIB_DEBUG $ENV{ZSTD_LIB_DEBUG})
+ endif()
+
+ if(DEFINED ENV{ZSTD_LIB_RELEASE})
+ set(ZSTD_LIB_RELEASE $ENV{ZSTD_LIB_RELEASE})
+ endif()
+
+ # ZSTD_STATIC_LINKING_ONLY only allows us to create an allocation functions override
+ # When jemalloc is in use
+ set(ZSTD_LIBS debug ${ZSTD_LIB_DEBUG} optimized ${ZSTD_LIB_RELEASE})
+
+ add_definitions(-DZSTD -DZSTD_STATIC_LINKING_ONLY)
+ include_directories(${ZSTD_INCLUDE})
+ set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${ZSTD_LIBS})
+else ()
+ message(STATUS "ZSTD library is disabled")
+endif ()
+
+#
+# Edit these 4 lines to define paths to Jemalloc
+#
+set(JEMALLOC_HOME $ENV{THIRDPARTY_HOME}/Jemalloc.Library)
+set(JEMALLOC_INCLUDE ${JEMALLOC_HOME}/build/native/inc)
+set(JEMALLOC_LIB_DEBUG ${JEMALLOC_HOME}/lib/native/debug/amd64/jemalloc.lib)
+set(JEMALLOC_LIB_RELEASE ${JEMALLOC_HOME}/lib/native/retail/amd64/jemalloc.lib)
+
+# ================================================== JEMALLOC ==================================================
+if(JEMALLOC)
+ set(WITH_JEMALLOC ON)
+endif()
+
+if (WITH_JEMALLOC)
+ message(STATUS "JEMALLOC library is enabled")
+ set(JEMALLOC_CXX_FLAGS "-DROCKSDB_JEMALLOC -DJEMALLOC_EXPORT= -DJEMALLOC_NO_RENAME")
+
+ if(DEFINED ENV{JEMALLOC_INCLUDE})
+ set(JEMALLOC_INCLUDE $ENV{JEMALLOC_INCLUDE})
+ endif()
+
+ if(DEFINED ENV{JEMALLOC_LIB_DEBUG})
+ set(JEMALLOC_LIB_DEBUG $ENV{JEMALLOC_LIB_DEBUG})
+ endif()
+
+ if(DEFINED ENV{JEMALLOC_LIB_RELEASE})
+ set(JEMALLOC_LIB_RELEASE $ENV{JEMALLOC_LIB_RELEASE})
+ endif()
+
+ set(JEMALLOC_LIBS debug ${JEMALLOC_LIB_DEBUG} optimized ${JEMALLOC_LIB_RELEASE})
+
+ add_definitions(${JEMALLOC_CXX_FLAGS})
+ include_directories(${JEMALLOC_INCLUDE})
+ set (THIRDPARTY_LIBS ${THIRDPARTY_LIBS} ${JEMALLOC_LIBS})
+ set (ARTIFACT_SUFFIX "_je")
+
+else ()
+ set (ARTIFACT_SUFFIX "")
+ message(STATUS "JEMALLOC library is disabled")
+endif ()