Skip to content

Commit

Permalink
Use GFlags/Snappy config in CMake, with fallback for legacy approach. (
Browse files Browse the repository at this point in the history
…facebook#6771)

Summary:
Related to some discussion in facebook#6179
Pull Request resolved: facebook#6771

Reviewed By: zhichao-cao

Differential Revision: D21340117

fbshipit-source-id: a1af0ba4865bb13c8c817851d6f6c4056191b3fe
  • Loading branch information
xkszltl authored and facebook-github-bot committed May 11, 2020
1 parent 3a1c29d commit f0e8731
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 37 deletions.
26 changes: 20 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,18 +107,32 @@ else()
endif()
endif()

# No config file for this
if(WITH_GFLAGS)
find_package(gflags REQUIRED)
# Config with namespace available since gflags 2.2.2
option(GFLAGS_USE_TARGET_NAMESPACE "Use gflags import target with namespace." ON)
find_package(gflags CONFIG)
if(gflags_FOUND)
if(TARGET ${GFLAGS_TARGET})
# Config with GFLAGS_TARGET available since gflags 2.2.0
list(APPEND THIRDPARTY_LIBS ${GFLAGS_TARGET})
else()
# Config with GFLAGS_LIBRARIES available since gflags 2.1.0
list(APPEND THIRDPARTY_LIBS ${GFLAGS_LIBRARIES})
endif()
else()
find_package(gflags REQUIRED)
list(APPEND THIRDPARTY_LIBS gflags::gflags)
endif()
add_definitions(-DGFLAGS=1)
include_directories(${gflags_INCLUDE_DIR})
list(APPEND THIRDPARTY_LIBS gflags::gflags)
endif()

if(WITH_SNAPPY)
find_package(snappy REQUIRED)
find_package(Snappy CONFIG)
if(NOT Snappy_FOUND)
find_package(Snappy REQUIRED)
endif()
add_definitions(-DSNAPPY)
list(APPEND THIRDPARTY_LIBS snappy::snappy)
list(APPEND THIRDPARTY_LIBS Snappy::snappy)
endif()

if(WITH_ZLIB)
Expand Down
29 changes: 29 additions & 0 deletions cmake/modules/FindSnappy.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# - Find Snappy
# Find the snappy compression library and includes
#
# Snappy_INCLUDE_DIRS - where to find snappy.h, etc.
# Snappy_LIBRARIES - List of libraries when using snappy.
# Snappy_FOUND - True if snappy found.

find_path(Snappy_INCLUDE_DIRS
NAMES snappy.h
HINTS ${snappy_ROOT_DIR}/include)

find_library(Snappy_LIBRARIES
NAMES snappy
HINTS ${snappy_ROOT_DIR}/lib)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Snappy DEFAULT_MSG Snappy_LIBRARIES Snappy_INCLUDE_DIRS)

mark_as_advanced(
Snappy_LIBRARIES
Snappy_INCLUDE_DIRS)

if(Snappy_FOUND AND NOT (TARGET Snappy::snappy))
add_library (Snappy::snappy UNKNOWN IMPORTED)
set_target_properties(Snappy::snappy
PROPERTIES
IMPORTED_LOCATION ${Snappy_LIBRARIES}
INTERFACE_INCLUDE_DIRECTORIES ${Snappy_INCLUDE_DIRS})
endif()
4 changes: 2 additions & 2 deletions cmake/modules/Findgflags.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# - Find gflags library
# Find the gflags includes and library
#
# gflags_INCLUDE_DIR - where to find gflags.h.
# gflags_LIBRARIES - List of libraries when using gflags.
# GFLAGS_INCLUDE_DIR - where to find gflags.h.
# GFLAGS_LIBRARIES - List of libraries when using gflags.
# gflags_FOUND - True if gflags found.

find_path(GFLAGS_INCLUDE_DIR
Expand Down
29 changes: 0 additions & 29 deletions cmake/modules/Findsnappy.cmake

This file was deleted.

0 comments on commit f0e8731

Please sign in to comment.