浏览代码

Added USE_SYSTEM_PLOG cmake option

tytan652 2 年之前
父节点
当前提交
a74a02144a
共有 2 个文件被更改,包括 54 次插入2 次删除
  1. 7 2
      CMakeLists.txt
  2. 47 0
      cmake/Modules/Findplog.cmake

+ 7 - 2
CMakeLists.txt

@@ -9,6 +9,7 @@ option(USE_GNUTLS "Use GnuTLS instead of OpenSSL" OFF)
 option(USE_NICE "Use libnice instead of libjuice" OFF)
 option(USE_SYSTEM_SRTP "Use system libSRTP" OFF)
 option(USE_SYSTEM_JUICE "Use system libjuice" OFF)
+option(USE_SYSTEM_PLOG "Use system Plog" OFF)
 option(USE_SYSTEM_JSON "Use system Nlohmann JSON" OFF)
 option(NO_WEBSOCKET "Disable WebSocket support" OFF)
 option(NO_MEDIA "Disable media transport support" OFF)
@@ -203,8 +204,12 @@ set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
 set(THREADS_PREFER_PTHREAD_FLAG TRUE)
 find_package(Threads REQUIRED)
 
-set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
-add_subdirectory(deps/plog EXCLUDE_FROM_ALL)
+if(USE_SYSTEM_PLOG)
+	find_package(plog REQUIRED)
+else()
+	set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
+	add_subdirectory(deps/plog EXCLUDE_FROM_ALL)
+endif()
 
 if(SCTP_DEBUG)
 	add_definitions(-DSCTP_DEBUG)

+ 47 - 0
cmake/Modules/Findplog.cmake

@@ -0,0 +1,47 @@
+#[=======================================================================[.rst
+Findplog
+----------
+
+FindModule for Plog library
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the :prop_tgt:`IMPORTED` target ``plog::plog``.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module sets the following variables:
+
+``plog_FOUND``
+  True, if the library was found.
+
+Cache variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``plog_INCLUDE_DIR``
+  Directory containing ``plog/Log.h``.
+
+#]=======================================================================]
+
+include(FindPackageHandleStandardArgs)
+
+find_path(
+  plog_INCLUDE_DIR
+  NAMES plog/Log.h
+  PATHS /usr/include /usr/local/include)
+
+find_package_handle_standard_args(
+  plog
+  REQUIRED_VARS plog_INCLUDE_DIR)
+mark_as_advanced(plog_INCLUDE_DIR)
+
+if(plog_FOUND)
+  if(NOT TARGET plog::plog)
+    add_library(plog::plog INTERFACE IMPORTED)
+    set_target_properties(plog::plog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${plog_INCLUDE_DIR}")
+  endif()
+endif()