Skip to content

Commit 4dbc503

Browse files
authored
Merge pull request #80 from bbockelm/glob_filter
Module for filtering exports
2 parents e3e5683 + 7871975 commit 4dbc503

File tree

7 files changed

+1386
-5
lines changed

7 files changed

+1386
-5
lines changed

CMakeLists.txt

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ endif()
7373
#
7474
add_definitions( -D_FILE_OFFSET_BITS=64 )
7575

76+
######################
77+
## libXrdOssS3 ##
78+
######################
7679
# On Linux, we hide all the symbols for the final libraries, exposing only what's needed for the XRootD
7780
# runtime loader. So here we create the object library and will create a separate one for testing with
7881
# the symbols exposed.
@@ -84,6 +87,9 @@ target_link_libraries( XrdS3Obj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER_LIBRAR
8487
add_library(XrdS3 MODULE "$<TARGET_OBJECTS:XrdS3Obj>")
8588
target_link_libraries(XrdS3 XrdS3Obj)
8689

90+
######################
91+
## libXrdOssHTTP ##
92+
######################
8793
add_library(XrdHTTPServerObj OBJECT src/CurlUtil.cc src/HTTPFile.cc src/HTTPFileSystem.cc src/HTTPCommands.cc src/TokenFile.cc src/stl_string_utils.cc src/shortfile.cc src/logging.cc)
8894
set_target_properties(XrdHTTPServerObj PROPERTIES POSITION_INDEPENDENT_CODE ON)
8995
target_include_directories(XrdHTTPServerObj PRIVATE ${XRootD_INCLUDE_DIRS})
@@ -92,12 +98,26 @@ target_link_libraries(XrdHTTPServerObj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER
9298
add_library(XrdHTTPServer MODULE "$<TARGET_OBJECTS:XrdHTTPServerObj>")
9399
target_link_libraries(XrdHTTPServer XrdHTTPServerObj)
94100

95-
if(NOT APPLE)
96-
set_target_properties(XrdS3 PROPERTIES OUTPUT_NAME "XrdS3-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/configs/export-lib-symbols")
97-
set_target_properties(XrdHTTPServer PROPERTIES OUTPUT_NAME "XrdHTTPServer-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/configs/export-lib-symbols")
101+
######################
102+
## libXrdOssFilter ##
103+
######################
104+
add_library( XrdOssFilterObj OBJECT src/Filter.cc src/logging.cc )
105+
set_target_properties( XrdOssFilterObj PROPERTIES POSITION_INDEPENDENT_CODE ON )
106+
target_include_directories( XrdOssFilterObj PRIVATE ${XRootD_INCLUDE_DIRS} )
107+
target_link_libraries( XrdOssFilterObj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER_LIBRARIES} )
108+
109+
add_library( XrdOssFilter MODULE "$<TARGET_OBJECTS:XrdOssFilterObj>" )
110+
target_link_libraries( XrdOssFilter XrdOssFilterObj )
111+
112+
# Customize module's suffix and, on Linux, hide unnecessary symbols
113+
if( APPLE )
114+
set_target_properties( XrdS3 PROPERTIES OUTPUT_NAME "XrdS3-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" )
115+
set_target_properties( XrdHTTPServer PROPERTIES OUTPUT_NAME "XrdHTTPServer-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" )
116+
set_target_properties( XrdOssFilter PROPERTIES OUTPUT_NAME "XrdOssFilter-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" )
98117
else()
99-
set_target_properties(XrdS3 PROPERTIES OUTPUT_NAME "XrdS3-${XRootD_PLUGIN_VERSION}" SUFFIX ".so")
100-
set_target_properties(XrdHTTPServer PROPERTIES OUTPUT_NAME "XrdHTTPServer-${XRootD_PLUGIN_VERSION}" SUFFIX ".so")
118+
set_target_properties( XrdS3 PROPERTIES OUTPUT_NAME "XrdS3-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/configs/export-lib-symbols" )
119+
set_target_properties( XrdHTTPServer PROPERTIES OUTPUT_NAME "XrdHTTPServer-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/configs/export-lib-symbols" )
120+
set_target_properties( XrdOssFilter PROPERTIES OUTPUT_NAME "XrdOssFilter-${XRootD_PLUGIN_VERSION}" SUFFIX ".so" LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/configs/export-lib-symbols" )
101121
endif()
102122

103123
include(GNUInstallDirs)
@@ -108,13 +128,19 @@ install(
108128
)
109129

110130
if( BUILD_TESTING )
131+
# Create shared libraries for testing from the existing objects
111132
add_library(XrdS3Testing SHARED "$<TARGET_OBJECTS:XrdS3Obj>")
112133
target_link_libraries(XrdS3Testing XrdS3Obj)
113134
target_include_directories(XrdS3Testing INTERFACE ${XRootD_INCLUDE_DIRS})
135+
114136
add_library(XrdHTTPServerTesting SHARED "$<TARGET_OBJECTS:XrdHTTPServerObj>")
115137
target_link_libraries(XrdHTTPServerTesting XrdHTTPServerObj)
116138
target_include_directories(XrdHTTPServerTesting INTERFACE ${XRootD_INCLUDE_DIRS})
117139

140+
add_library( XrdOssFilterTesting SHARED "$<TARGET_OBJECTS:XrdOssFilterObj>" )
141+
target_link_libraries( XrdOssFilterTesting XrdOssFilterObj )
142+
target_include_directories( XrdOssFilterTesting INTERFACE ${XRootD_INCLUDE_DIRS} )
143+
118144
find_program(GoWrk go-wrk HINTS "$ENV{HOME}/go/bin")
119145
if( NOT GoWrk )
120146
# Try installing the go-wrk variable to generate a reasonable stress test
@@ -143,6 +169,7 @@ if( BUILD_TESTING )
143169
else()
144170
find_package(GTest REQUIRED)
145171
endif()
172+
146173
enable_testing()
147174
add_subdirectory(test)
148175
endif()

0 commit comments

Comments
 (0)