forked from facebookincubator/katran
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
110 changed files
with
7,744 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Subproject commit 13325d9e2bb8e984ce21a282601ed95e7bdf7e8c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Subproject commit 7a58ca9f14253bacd10089347d42e9e90e12afb7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Facebook-internal CI builds don't have write permission outside of the | ||
# source tree, so we install all projects into this directory. | ||
/facebook_ci | ||
__pycache__/ | ||
*.pyc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# Copyright (c) Facebook, Inc. and its affiliates. | ||
# Find libgmock | ||
# | ||
# LIBGMOCK_DEFINES - List of defines when using libgmock. | ||
# LIBGMOCK_INCLUDE_DIR - where to find gmock/gmock.h, etc. | ||
# LIBGMOCK_LIBRARIES - List of libraries when using libgmock. | ||
# LIBGMOCK_FOUND - True if libgmock found. | ||
|
||
IF (LIBGMOCK_INCLUDE_DIR) | ||
# Already in cache, be silent | ||
SET(LIBGMOCK_FIND_QUIETLY TRUE) | ||
ENDIF () | ||
|
||
find_package(GTest CONFIG QUIET) | ||
if (TARGET GTest::gmock) | ||
get_target_property(LIBGMOCK_DEFINES GTest::gtest INTERFACE_COMPILE_DEFINITIONS) | ||
if (NOT ${LIBGMOCK_DEFINES}) | ||
# Explicitly set to empty string if not found to avoid it being | ||
# set to NOTFOUND and breaking compilation | ||
set(LIBGMOCK_DEFINES "") | ||
endif() | ||
get_target_property(LIBGMOCK_INCLUDE_DIR GTest::gtest INTERFACE_INCLUDE_DIRECTORIES) | ||
set(LIBGMOCK_LIBRARIES GTest::gmock_main GTest::gmock GTest::gtest) | ||
set(LIBGMOCK_FOUND ON) | ||
message(STATUS "Found gmock via config, defines=${LIBGMOCK_DEFINES}, include=${LIBGMOCK_INCLUDE_DIR}, libs=${LIBGMOCK_LIBRARIES}") | ||
else() | ||
|
||
FIND_PATH(LIBGMOCK_INCLUDE_DIR gmock/gmock.h) | ||
|
||
FIND_LIBRARY(LIBGMOCK_MAIN_LIBRARY_DEBUG NAMES gmock_maind) | ||
FIND_LIBRARY(LIBGMOCK_MAIN_LIBRARY_RELEASE NAMES gmock_main) | ||
FIND_LIBRARY(LIBGMOCK_LIBRARY_DEBUG NAMES gmockd) | ||
FIND_LIBRARY(LIBGMOCK_LIBRARY_RELEASE NAMES gmock) | ||
FIND_LIBRARY(LIBGTEST_LIBRARY_DEBUG NAMES gtestd) | ||
FIND_LIBRARY(LIBGTEST_LIBRARY_RELEASE NAMES gtest) | ||
|
||
find_package(Threads REQUIRED) | ||
INCLUDE(SelectLibraryConfigurations) | ||
SELECT_LIBRARY_CONFIGURATIONS(LIBGMOCK_MAIN) | ||
SELECT_LIBRARY_CONFIGURATIONS(LIBGMOCK) | ||
SELECT_LIBRARY_CONFIGURATIONS(LIBGTEST) | ||
|
||
set(LIBGMOCK_LIBRARIES | ||
${LIBGMOCK_MAIN_LIBRARY} | ||
${LIBGMOCK_LIBRARY} | ||
${LIBGTEST_LIBRARY} | ||
Threads::Threads | ||
) | ||
|
||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows") | ||
# The GTEST_LINKED_AS_SHARED_LIBRARY macro must be set properly on Windows. | ||
# | ||
# There isn't currently an easy way to determine if a library was compiled as | ||
# a shared library on Windows, so just assume we've been built against a | ||
# shared build of gmock for now. | ||
SET(LIBGMOCK_DEFINES "GTEST_LINKED_AS_SHARED_LIBRARY=1" CACHE STRING "") | ||
endif() | ||
|
||
# handle the QUIETLY and REQUIRED arguments and set LIBGMOCK_FOUND to TRUE if | ||
# all listed variables are TRUE | ||
INCLUDE(FindPackageHandleStandardArgs) | ||
FIND_PACKAGE_HANDLE_STANDARD_ARGS( | ||
GMock | ||
DEFAULT_MSG | ||
LIBGMOCK_MAIN_LIBRARY | ||
LIBGMOCK_LIBRARY | ||
LIBGTEST_LIBRARY | ||
LIBGMOCK_LIBRARIES | ||
LIBGMOCK_INCLUDE_DIR | ||
) | ||
|
||
MARK_AS_ADVANCED( | ||
LIBGMOCK_DEFINES | ||
LIBGMOCK_MAIN_LIBRARY | ||
LIBGMOCK_LIBRARY | ||
LIBGTEST_LIBRARY | ||
LIBGMOCK_LIBRARIES | ||
LIBGMOCK_INCLUDE_DIR | ||
) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# Copyright (c) Facebook, Inc. and its affiliates. | ||
# Find libgflags. | ||
# There's a lot of compatibility cruft going on in here, both | ||
# to deal with changes across the FB consumers of this and also | ||
# to deal with variances in behavior of cmake itself. | ||
# | ||
# Since this file is named FindGflags.cmake the cmake convention | ||
# is for the module to export both GFLAGS_FOUND and Gflags_FOUND. | ||
# The convention expected by consumers is that we export the | ||
# following variables, even though these do not match the cmake | ||
# conventions: | ||
# | ||
# LIBGFLAGS_INCLUDE_DIR - where to find gflags/gflags.h, etc. | ||
# LIBGFLAGS_LIBRARY - List of libraries when using libgflags. | ||
# LIBGFLAGS_FOUND - True if libgflags found. | ||
# | ||
# We need to be able to locate gflags both from an installed | ||
# cmake config file and just from the raw headers and libs, so | ||
# test for the former and then the latter, and then stick | ||
# the results together and export them into the variables | ||
# listed above. | ||
# | ||
# For forwards compatibility, we export the following variables: | ||
# | ||
# gflags_INCLUDE_DIR - where to find gflags/gflags.h, etc. | ||
# gflags_TARGET / GFLAGS_TARGET / gflags_LIBRARIES | ||
# - List of libraries when using libgflags. | ||
# gflags_FOUND - True if libgflags found. | ||
# | ||
|
||
IF (LIBGFLAGS_INCLUDE_DIR) | ||
# Already in cache, be silent | ||
SET(Gflags_FIND_QUIETLY TRUE) | ||
ENDIF () | ||
|
||
find_package(gflags CONFIG QUIET) | ||
if (gflags_FOUND) | ||
if (NOT Gflags_FIND_QUIETLY) | ||
message(STATUS "Found gflags from package config ${gflags_CONFIG}") | ||
endif() | ||
# Re-export the config-specified libs with our local names | ||
set(LIBGFLAGS_LIBRARY ${gflags_LIBRARIES}) | ||
set(LIBGFLAGS_INCLUDE_DIR ${gflags_INCLUDE_DIR}) | ||
set(LIBGFLAGS_FOUND ${gflags_FOUND}) | ||
# cmake module compat | ||
set(GFLAGS_FOUND ${gflags_FOUND}) | ||
set(Gflags_FOUND ${gflags_FOUND}) | ||
else() | ||
FIND_PATH(LIBGFLAGS_INCLUDE_DIR gflags/gflags.h) | ||
|
||
FIND_LIBRARY(LIBGFLAGS_LIBRARY_DEBUG NAMES gflagsd gflags_staticd) | ||
FIND_LIBRARY(LIBGFLAGS_LIBRARY_RELEASE NAMES gflags gflags_static) | ||
|
||
INCLUDE(SelectLibraryConfigurations) | ||
SELECT_LIBRARY_CONFIGURATIONS(LIBGFLAGS) | ||
|
||
# handle the QUIETLY and REQUIRED arguments and set LIBGFLAGS_FOUND to TRUE if | ||
# all listed variables are TRUE | ||
INCLUDE(FindPackageHandleStandardArgs) | ||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(gflags DEFAULT_MSG LIBGFLAGS_LIBRARY LIBGFLAGS_INCLUDE_DIR) | ||
# cmake module compat | ||
set(Gflags_FOUND ${GFLAGS_FOUND}) | ||
# compat with some existing FindGflags consumers | ||
set(LIBGFLAGS_FOUND ${GFLAGS_FOUND}) | ||
|
||
# Compat with the gflags CONFIG based detection | ||
set(gflags_FOUND ${GFLAGS_FOUND}) | ||
set(gflags_INCLUDE_DIR ${LIBGFLAGS_INCLUDE_DIR}) | ||
set(gflags_LIBRARIES ${LIBGFLAGS_LIBRARY}) | ||
set(GFLAGS_TARGET ${LIBGFLAGS_LIBRARY}) | ||
set(gflags_TARGET ${LIBGFLAGS_LIBRARY}) | ||
|
||
MARK_AS_ADVANCED(LIBGFLAGS_LIBRARY LIBGFLAGS_INCLUDE_DIR) | ||
endif() | ||
|
||
# Compat with the gflags CONFIG based detection | ||
if (LIBGFLAGS_FOUND AND NOT TARGET gflags) | ||
add_library(gflags UNKNOWN IMPORTED) | ||
set_target_properties(gflags PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBGFLAGS_INCLUDE_DIR}") | ||
set_target_properties(gflags PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${LIBGFLAGS_LIBRARY}") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Copyright (c) Facebook, Inc. and its affiliates. | ||
# - Try to find Glog | ||
# Once done, this will define | ||
# | ||
# GLOG_FOUND - system has Glog | ||
# GLOG_INCLUDE_DIRS - the Glog include directories | ||
# GLOG_LIBRARIES - link these to use Glog | ||
|
||
include(FindPackageHandleStandardArgs) | ||
|
||
find_library(GLOG_LIBRARY glog | ||
PATHS ${GLOG_LIBRARYDIR}) | ||
|
||
find_path(GLOG_INCLUDE_DIR glog/logging.h | ||
PATHS ${GLOG_INCLUDEDIR}) | ||
|
||
find_package_handle_standard_args(glog DEFAULT_MSG | ||
GLOG_LIBRARY | ||
GLOG_INCLUDE_DIR) | ||
|
||
mark_as_advanced( | ||
GLOG_LIBRARY | ||
GLOG_INCLUDE_DIR) | ||
|
||
set(GLOG_LIBRARIES ${GLOG_LIBRARY}) | ||
set(GLOG_INCLUDE_DIRS ${GLOG_INCLUDE_DIR}) | ||
|
||
if (NOT TARGET glog::glog) | ||
add_library(glog::glog UNKNOWN IMPORTED) | ||
set_target_properties(glog::glog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLOG_INCLUDE_DIRS}") | ||
set_target_properties(glog::glog PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${GLOG_LIBRARIES}") | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Copyright (c) Facebook, Inc. and its affiliates. | ||
# - Find LibEvent (a cross event library) | ||
# This module defines | ||
# LIBEVENT_INCLUDE_DIR, where to find LibEvent headers | ||
# LIBEVENT_LIB, LibEvent libraries | ||
# LibEvent_FOUND, If false, do not try to use libevent | ||
|
||
set(LibEvent_EXTRA_PREFIXES /usr/local /opt/local "$ENV{HOME}") | ||
foreach(prefix ${LibEvent_EXTRA_PREFIXES}) | ||
list(APPEND LibEvent_INCLUDE_PATHS "${prefix}/include") | ||
list(APPEND LibEvent_LIB_PATHS "${prefix}/lib") | ||
endforeach() | ||
|
||
find_package(Libevent CONFIG QUIET) | ||
if (TARGET event) | ||
# Re-export the config under our own names | ||
|
||
# Somewhat gross, but some vcpkg installed libevents have a relative | ||
# `include` path exported into LIBEVENT_INCLUDE_DIRS, which triggers | ||
# a cmake error because it resolves to the `include` dir within the | ||
# folly repo, which is not something cmake allows to be in the | ||
# INTERFACE_INCLUDE_DIRECTORIES. Thankfully on such a system the | ||
# actual include directory is already part of the global include | ||
# directories, so we can just skip it. | ||
if (NOT "${LIBEVENT_INCLUDE_DIRS}" STREQUAL "include") | ||
set(LIBEVENT_INCLUDE_DIR ${LIBEVENT_INCLUDE_DIRS}) | ||
else() | ||
set(LIBEVENT_INCLUDE_DIR) | ||
endif() | ||
|
||
# Unfortunately, with a bare target name `event`, downstream consumers | ||
# of the package that depends on `Libevent` located via CONFIG end | ||
# up exporting just a bare `event` in their libraries. This is problematic | ||
# because this in interpreted as just `-levent` with no library path. | ||
# When libevent is not installed in the default installation prefix | ||
# this results in linker errors. | ||
# To resolve this, we ask cmake to lookup the full path to the library | ||
# and use that instead. | ||
cmake_policy(PUSH) | ||
if(POLICY CMP0026) | ||
# Allow reading the LOCATION property | ||
cmake_policy(SET CMP0026 OLD) | ||
endif() | ||
get_target_property(LIBEVENT_LIB event LOCATION) | ||
cmake_policy(POP) | ||
|
||
set(LibEvent_FOUND ${Libevent_FOUND}) | ||
if (NOT LibEvent_FIND_QUIETLY) | ||
message(STATUS "Found libevent from package config include=${LIBEVENT_INCLUDE_DIRS} lib=${LIBEVENT_LIB}") | ||
endif() | ||
else() | ||
find_path(LIBEVENT_INCLUDE_DIR event.h PATHS ${LibEvent_INCLUDE_PATHS}) | ||
find_library(LIBEVENT_LIB NAMES event PATHS ${LibEvent_LIB_PATHS}) | ||
|
||
if (LIBEVENT_LIB AND LIBEVENT_INCLUDE_DIR) | ||
set(LibEvent_FOUND TRUE) | ||
set(LIBEVENT_LIB ${LIBEVENT_LIB}) | ||
else () | ||
set(LibEvent_FOUND FALSE) | ||
endif () | ||
|
||
if (LibEvent_FOUND) | ||
if (NOT LibEvent_FIND_QUIETLY) | ||
message(STATUS "Found libevent: ${LIBEVENT_LIB}") | ||
endif () | ||
else () | ||
if (LibEvent_FIND_REQUIRED) | ||
message(FATAL_ERROR "Could NOT find libevent.") | ||
endif () | ||
message(STATUS "libevent NOT found.") | ||
endif () | ||
|
||
mark_as_advanced( | ||
LIBEVENT_LIB | ||
LIBEVENT_INCLUDE_DIR | ||
) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Copyright (c) Facebook, Inc. and its affiliates. | ||
include(FindPackageHandleStandardArgs) | ||
find_path(PCRE_INCLUDE_DIR NAMES pcre.h) | ||
find_library(PCRE_LIBRARY NAMES pcre) | ||
find_package_handle_standard_args( | ||
PCRE | ||
DEFAULT_MSG | ||
PCRE_LIBRARY | ||
PCRE_INCLUDE_DIR | ||
) | ||
mark_as_advanced(PCRE_INCLUDE_DIR PCRE_LIBRARY) |
Oops, something went wrong.