From b3061cbef59895199c3b98aa4757dc3379a6af06 Mon Sep 17 00:00:00 2001 From: Arkady Shapkin Date: Wed, 8 Nov 2017 11:30:38 -0800 Subject: [PATCH] Fix static linking gflags and glog Summary: gflags and glog require some compile definitions when linking statically /cc Orvid Closes https://github.com/facebook/folly/pull/693 Reviewed By: yfeldblum Differential Revision: D6264382 Pulled By: Orvid fbshipit-source-id: 60c8af429f10e778d9c313f40227892238829f63 --- CMake/folly-deps.cmake | 20 +++++++++++++++++--- CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++------- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake index 211c6fbf..37cd56f5 100755 --- a/CMake/folly-deps.cmake +++ b/CMake/folly-deps.cmake @@ -10,9 +10,23 @@ find_package(Boost 1.55.0 MODULE thread REQUIRED ) + find_package(DoubleConversion MODULE REQUIRED) -find_package(GFlags MODULE REQUIRED) -find_package(GLog MODULE REQUIRED) -find_package(LibEvent MODULE REQUIRED) + +find_package(gflags CONFIG) +if(NOT TARGET gflags) + find_package(GFlags MODULE REQUIRED) +endif() + +find_package(glog CONFIG) +if(NOT TARGET glog::glog) + find_package(GLog MODULE REQUIRED) +endif() + +find_package(Libevent CONFIG) +if(NOT TARGET event) + find_package(LibEvent MODULE REQUIRED) +endif() + find_package(OpenSSL MODULE REQUIRED) find_package(PThread MODULE) diff --git a/CMakeLists.txt b/CMakeLists.txt index 37152974..d390f061 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,9 +149,36 @@ set(FOLLY_SHINY_DEPENDENCIES set(FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY} - ${LIBEVENT_LIB} - ${LIBGFLAGS_LIBRARY} - ${LIBGLOG_LIBRARY} +) + +set(FOLLY_INCLUDE_DIRECTORIES + ${DOUBLE_CONVERSION_INCLUDE_DIR} +) + +if(TARGET gflags) + set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} gflags) +else() + set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBGFLAGS_LIBRARY}) + set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBGFLAGS_INCLUDE_DIR}) +endif() + +if(TARGET glog::glog) + set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} glog::glog) +else() + set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBGLOG_LIBRARY}) + set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBGLOG_INCLUDE_DIR}) +endif() + +if(TARGET event) + set(FOLLY_SHINY_DEPENDENCIES ${FOLLY_SHINY_DEPENDENCIES} event) +else() + set(FOLLY_LINK_LIBRARIES ${FOLLY_LINK_LIBRARIES} ${LIBEVENT_LIB}) + set(FOLLY_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIRECTORIES} ${LIBEVENT_INCLUDE_DIR}) +endif() + + +set(FOLLY_LINK_LIBRARIES + ${FOLLY_LINK_LIBRARIES} Iphlpapi.lib Ws2_32.lib @@ -160,15 +187,13 @@ set(FOLLY_LINK_LIBRARIES target_include_directories(folly_base PUBLIC - ${DOUBLE_CONVERSION_INCLUDE_DIR} - ${LIBGFLAGS_INCLUDE_DIR} - ${LIBGLOG_INCLUDE_DIR} - ${LIBEVENT_INCLUDE_DIR} + ${FOLLY_INCLUDE_DIRECTORIES} $ ) foreach (LIB ${FOLLY_SHINY_DEPENDENCIES}) target_include_directories(folly_base PUBLIC $) + target_compile_definitions(folly_base PUBLIC $) endforeach() if (FOLLY_HAVE_PTHREAD) -- 2.34.1