@@ -69,6 +69,9 @@ endif()
69
69
#
70
70
add_definitions ( -D_FILE_OFFSET_BITS=64 )
71
71
72
+ ######################
73
+ ## libXrdOssS3 ##
74
+ ######################
72
75
# On Linux, we hide all the symbols for the final libraries, exposing only what's needed for the XRootD
73
76
# runtime loader. So here we create the object library and will create a separate one for testing with
74
77
# the symbols exposed.
@@ -80,6 +83,9 @@ target_link_libraries(XrdS3Obj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER_LIBRARI
80
83
add_library (XrdS3 MODULE "$<TARGET_OBJECTS:XrdS3Obj>" )
81
84
target_link_libraries (XrdS3 XrdS3Obj )
82
85
86
+ ######################
87
+ ## libXrdOssHTTP ##
88
+ ######################
83
89
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 )
84
90
set_target_properties (XrdHTTPServerObj PROPERTIES POSITION_INDEPENDENT_CODE ON )
85
91
target_include_directories (XrdHTTPServerObj PRIVATE ${XRootD_INCLUDE_DIRS} )
@@ -88,12 +94,26 @@ target_link_libraries(XrdHTTPServerObj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER
88
94
add_library (XrdHTTPServer MODULE "$<TARGET_OBJECTS:XrdHTTPServerObj>" )
89
95
target_link_libraries (XrdHTTPServer XrdHTTPServerObj )
90
96
91
- if (NOT APPLE )
92
- 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" )
93
- 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" )
97
+ ######################
98
+ ## libXrdOssFilter ##
99
+ ######################
100
+ add_library ( XrdOssFilterObj OBJECT src/Filter.cc src/logging.cc )
101
+ set_target_properties ( XrdOssFilterObj PROPERTIES POSITION_INDEPENDENT_CODE ON )
102
+ target_include_directories ( XrdOssFilterObj PRIVATE ${XRootD_INCLUDE_DIRS} )
103
+ target_link_libraries ( XrdOssFilterObj ${XRootD_UTILS_LIBRARIES} ${XRootD_SERVER_LIBRARIES} )
104
+
105
+ add_library ( XrdOssFilter MODULE "$<TARGET_OBJECTS:XrdOssFilterObj>" )
106
+ target_link_libraries ( XrdOssFilter XrdOssFilterObj )
107
+
108
+ # Customize module's suffix and, on Linux, hide unnecessary symbols
109
+ if ( APPLE )
110
+ set_target_properties ( XrdS3 PROPERTIES OUTPUT_NAME "XrdS3-${XRootD_PLUGIN_VERSION} " SUFFIX ".so" )
111
+ set_target_properties ( XrdHTTPServer PROPERTIES OUTPUT_NAME "XrdHTTPServer-${XRootD_PLUGIN_VERSION} " SUFFIX ".so" )
112
+ set_target_properties ( XrdOssFilter PROPERTIES OUTPUT_NAME "XrdOssFilter-${XRootD_PLUGIN_VERSION} " SUFFIX ".so" )
94
113
else ()
95
- set_target_properties (XrdS3 PROPERTIES OUTPUT_NAME "XrdS3-${XRootD_PLUGIN_VERSION} " SUFFIX ".so" )
96
- set_target_properties (XrdHTTPServer PROPERTIES OUTPUT_NAME "XrdHTTPServer-${XRootD_PLUGIN_VERSION} " SUFFIX ".so" )
114
+ 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" )
115
+ 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" )
116
+ 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" )
97
117
endif ()
98
118
99
119
SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /lib" CACHE PATH "Install path for libraries" )
@@ -104,13 +124,20 @@ install(
104
124
)
105
125
106
126
if ( BUILD_TESTING )
127
+ # Create shared libraries for testing from the existing objects
107
128
add_library (XrdS3Testing SHARED "$<TARGET_OBJECTS:XrdS3Obj>" )
108
129
target_link_libraries (XrdS3Testing XrdS3Obj )
109
130
target_include_directories (XrdS3Testing INTERFACE ${XRootD_INCLUDE_DIRS} )
131
+
110
132
add_library (XrdHTTPServerTesting SHARED "$<TARGET_OBJECTS:XrdHTTPServerObj>" )
111
133
target_link_libraries (XrdHTTPServerTesting XrdHTTPServerObj )
112
134
target_include_directories (XrdHTTPServerTesting INTERFACE ${XRootD_INCLUDE_DIRS} )
113
135
136
+ add_library ( XrdOssFilterTesting SHARED "$<TARGET_OBJECTS:XrdOssFilterObj>" )
137
+ target_link_libraries ( XrdOssFilterTesting XrdOssFilterObj )
138
+ target_include_directories ( XrdOssFilterTesting INTERFACE ${XRootD_INCLUDE_DIRS} )
139
+
140
+ # Ensure that GTest is available
114
141
if ( NOT XROOTD_PLUGINS_EXTERNAL_GTEST )
115
142
include ( FetchContent )
116
143
set ( GTEST_URL "${CMAKE_CURRENT_SOURCE_DIR} /googletest-1.15.2.tar.gz" )
@@ -127,6 +154,7 @@ if( BUILD_TESTING )
127
154
else ()
128
155
find_package (GTest REQUIRED )
129
156
endif ()
157
+
130
158
enable_testing ()
131
159
add_subdirectory (test )
132
160
endif ()
0 commit comments