@@ -73,6 +73,9 @@ endif()
7373#
7474add_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
8487add_library (XrdS3 MODULE "$<TARGET_OBJECTS:XrdS3Obj>" )
8588target_link_libraries (XrdS3 XrdS3Obj)
8689
90+ ######################
91+ ## libXrdOssHTTP ##
92+ ######################
8793add_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)
8894set_target_properties (XrdHTTPServerObj PROPERTIES POSITION_INDEPENDENT_CODE ON )
8995target_include_directories (XrdHTTPServerObj PRIVATE ${XRootD_INCLUDE_DIRS} )
@@ -92,12 +98,26 @@ target_link_libraries(XrdHTTPServerObj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER
9298add_library (XrdHTTPServer MODULE "$<TARGET_OBJECTS:XrdHTTPServerObj>" )
9399target_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" )
98117else ()
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" )
101121endif ()
102122
103123include (GNUInstallDirs)
@@ -108,13 +128,19 @@ install(
108128)
109129
110130if ( 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 )
148175endif ()
0 commit comments