Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/stored/backends/CMakeLists.txt')
-rw-r--r--core/src/stored/backends/CMakeLists.txt65
1 files changed, 46 insertions, 19 deletions
diff --git a/core/src/stored/backends/CMakeLists.txt b/core/src/stored/backends/CMakeLists.txt
index fa870ac0e..0f4733c31 100644
--- a/core/src/stored/backends/CMakeLists.txt
+++ b/core/src/stored/backends/CMakeLists.txt
@@ -1,6 +1,6 @@
# BAREOSĀ® - Backup Archiving REcovery Open Sourced
#
-# Copyright (C) 2017-2022 Bareos GmbH & Co. KG
+# Copyright (C) 2022-2022 Bareos GmbH & Co. KG
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of version three of the GNU Affero General Public
@@ -16,40 +16,67 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
+
message("Entering ${CMAKE_CURRENT_SOURCE_DIR}")
list(APPEND CMAKE_INSTALL_RPATH ${backenddir})
+macro(add_sd_backend backend_name)
+ if(HAVE_DYNAMIC_SD_BACKENDS)
+ add_library(${backend_name} MODULE)
+ install(TARGETS ${backend_name} DESTINATION ${backenddir})
+ else()
+ add_library(${backend_name} STATIC)
+ target_link_libraries(bareossd PRIVATE ${backend_name})
+ endif()
+ set_property(TARGET ${backend_name} PROPERTY POSITION_INDEPENDENT_CODE ON)
+endmacro()
+
if(${HAVE_GLUSTERFS})
- add_library(bareossd-gfapi MODULE gfapi_device.cc)
- install(TARGETS bareossd-gfapi DESTINATION ${backenddir})
+ add_sd_backend(bareossd-gfapi)
+ target_sources(bareossd-gfapi PRIVATE gfapi_device.cc)
target_include_directories(bareossd-gfapi PUBLIC ${GFAPI_INCLUDE_DIRS})
target_link_libraries(bareossd-gfapi ${GFAPI_LIBRARIES})
endif()
if(TARGET droplet)
- add_library(bareossd-chunked SHARED ordered_cbuf.cc chunked_device.cc)
- target_link_libraries(bareossd-chunked droplet)
- install(TARGETS bareossd-chunked DESTINATION ${backenddir})
+ add_sd_backend(bareossd-droplet)
+ target_sources(bareossd-droplet PRIVATE droplet_device.cc)
+ target_link_libraries(bareossd-droplet PRIVATE droplet)
+ target_compile_definitions(
+ bareossd-droplet INTERFACE HAVE_BAREOSSD_DROPLET_DEVICE
+ )
+ if(HAVE_DYNAMIC_SD_BACKENDS)
+ add_library(bareossd-chunked SHARED ordered_cbuf.cc chunked_device.cc)
+ install(TARGETS bareossd-chunked DESTINATION ${backenddir})
+ target_link_libraries(bareossd-droplet PRIVATE bareossd-chunked)
+ else()
+ target_sources(bareossd-droplet PRIVATE ordered_cbuf.cc chunked_device.cc)
+ endif()
- add_library(bareossd-droplet MODULE droplet_device.cc)
- target_link_libraries(bareossd-droplet bareossd-chunked droplet)
- install(TARGETS bareossd-droplet DESTINATION ${backenddir})
endif()
-add_library(bareossd-fifo MODULE unix_fifo_device.cc)
-install(TARGETS bareossd-fifo DESTINATION ${backenddir})
+add_sd_backend(bareossd-fifo)
+target_sources(bareossd-fifo PRIVATE unix_fifo_device.cc)
if(HAVE_DARWIN_OS)
target_link_libraries(bareossd-fifo bareos bareossd)
endif()
-add_library(bareossd-gentape SHARED generic_tape_device.cc)
-install(TARGETS bareossd-gentape DESTINATION ${backenddir})
-if(HAVE_DARWIN_OS)
- target_link_libraries(bareossd-gentape bareos bareossd)
-endif()
+add_sd_backend(bareossd-tape)
+target_sources(bareossd-tape PRIVATE unix_tape_device.cc)
-add_library(bareossd-tape MODULE unix_tape_device.cc)
-install(TARGETS bareossd-tape DESTINATION ${backenddir})
+if(HAVE_DYNAMIC_SD_BACKENDS)
+ add_library(bareossd-gentape SHARED generic_tape_device.cc)
+ install(TARGETS bareossd-gentape DESTINATION ${backenddir})
+ target_link_libraries(bareossd-tape bareossd-gentape)
+ if(HAVE_DARWIN_OS)
+ target_link_libraries(bareossd-gentape bareos bareossd)
+ endif()
+else()
+ target_sources(bareossd-tape PRIVATE generic_tape_device.cc)
+endif()
-target_link_libraries(bareossd-tape bareossd-gentape)
+if(NOT HAVE_WIN32)
+ add_sd_backend(bareossd-file)
+ target_sources(bareossd-file PRIVATE unix_file_device.cc)
+endif()