You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by cm...@apache.org on 2024/03/01 15:25:41 UTC
(trafficserver) 13/17: Make linking libraries to plugins optional (#11039)
This is an automated email from the ASF dual-hosted git repository.
cmcfarlen pushed a commit to branch 10.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 04b59460faac4b48e10fbf13056df10b42d9acae
Author: Chris McFarlen <ch...@mcfarlen.us>
AuthorDate: Mon Feb 26 17:19:31 2024 -0600
Make linking libraries to plugins optional (#11039)
* Make linking libraries to plugins optional
* Also check for shared libs before linking libs to plugins
---------
Co-authored-by: Chris McFarlen <cm...@apple.com>
(cherry picked from commit 31c15927e66c30566edf5e0e83c6b1bf39e84288)
---
CMakeLists.txt | 1 +
cmake/add_atsplugin.cmake | 9 ++++++++-
plugins/experimental/maxmind_acl/CMakeLists.txt | 2 +-
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 947625d237..e2477f72dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -138,6 +138,7 @@ option(ENABLE_AUTEST "Setup autest (default OFF)")
option(ENABLE_BENCHMARKS "Build benchmarks (default OFF)")
option(EXTERNAL_YAML_CPP "Use external yaml-cpp (default OFF)")
option(EXTERNAL_LIBSWOC "Use external libswoc (default OFF)")
+option(LINK_PLUGINS "Link core libraries to plugins (default OFF)")
# Setup user
# NOTE: this is the user trafficserver runs as
diff --git a/cmake/add_atsplugin.cmake b/cmake/add_atsplugin.cmake
index 61b3c4a914..80de5bb965 100644
--- a/cmake/add_atsplugin.cmake
+++ b/cmake/add_atsplugin.cmake
@@ -19,7 +19,14 @@ set(CMAKE_SHARED_LIBRARY_PREFIX "")
function(add_atsplugin name)
add_library(${name} MODULE ${ARGN})
- target_link_libraries(${name} PRIVATE ts::tsapi ts::tsutil)
+ if(LINK_PLUGINS AND BUILD_SHARED_LIBS)
+ target_link_libraries(${name} PRIVATE ts::tsapi ts::tsutil)
+ else()
+ target_include_directories(
+ ${name} PRIVATE "$<TARGET_PROPERTY:libswoc::libswoc,INCLUDE_DIRECTORIES>"
+ "$<TARGET_PROPERTY:yaml-cpp::yaml-cpp,INCLUDE_DIRECTORIES>"
+ )
+ endif()
set_target_properties(${name} PROPERTIES PREFIX "")
set_target_properties(${name} PROPERTIES SUFFIX ".so")
remove_definitions(-DATS_BUILD) # remove the ATS_BUILD define for plugins to build without issue
diff --git a/plugins/experimental/maxmind_acl/CMakeLists.txt b/plugins/experimental/maxmind_acl/CMakeLists.txt
index 0ce160a7f6..0b736718ed 100644
--- a/plugins/experimental/maxmind_acl/CMakeLists.txt
+++ b/plugins/experimental/maxmind_acl/CMakeLists.txt
@@ -20,7 +20,7 @@ if(maxminddb_FOUND)
add_atsplugin(maxmind_acl maxmind_acl.cc mmdb.cc)
target_link_libraries(
- maxmind_acl PRIVATE libswoc::libswoc ts::tscore ts::tsutil yaml-cpp::yaml-cpp maxminddb::maxminddb PCRE::PCRE
+ maxmind_acl PRIVATE libswoc::libswoc ts::tsapi ts::tsutil yaml-cpp::yaml-cpp maxminddb::maxminddb PCRE::PCRE
)
else()