CMakeLists.txt 5.83 KB
Newer Older
Steven Murray's avatar
Steven Murray committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# The CERN Tape Archive(CTA) project
# Copyright(C) 2015  CERN
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

17
18
cmake_minimum_required (VERSION 2.6)

19
20
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../middletier)
21

22

Steven Murray's avatar
Steven Murray committed
23
find_package(json-c REQUIRED)
Steven Murray's avatar
Steven Murray committed
24
find_package(librados2 REQUIRED)
25
find_package(Protobuf3 REQUIRED)
26
27
28
29

set (CTAProtoFiles
  cta.proto)

30
PROTOBUF3_GENERATE_CPP(CTAProtoSources CTAProtoHeaders ${CTAProtoFiles})
31

32
set (CTAProtoDependants objectstore/Agent.hpp
Daniele Kruse's avatar
Daniele Kruse committed
33
  objectstore/ArchiveRequest.hpp
34
  objectstore/CreationLog.hpp
35
36
  objectstore/DriveRegister.hpp
  objectstore/DriveState.hpp
37
38
  objectstore/GenericObject.hpp
  objectstore/ObjectOps.hpp
39
40
  objectstore/RepackIndex.hpp
  objectstore/RepackRequest.hpp
Eric Cano's avatar
Eric Cano committed
41
  objectstore/RepackQueue.hpp
42
  objectstore/RetrieveRequest.hpp
43
44
  objectstore/RootEntry.hpp
  objectstore/SchedulerGlobalLock.hpp
45
  objectstore/TapeQueue.hpp
46
  objectstore/ArchiveQueue.hpp
47
48
  objectstore/UserIdentity.hpp
  objectstore/ValueCountMap.hpp)
49
50
51
52
53

SET_SOURCE_FILES_PROPERTIES(${CTAProtoHeaders} PROPERTIES HEADER_FILE_ONLY TRUE)
SET_SOURCE_FILES_PROPERTIES(${CTAProtoDependants} 
  PROPERTIES OBJECT_DEPENDS ${CTAProtoHeaders})

54
include_directories (${PROTOBUF3_INCLUDE_DIRS})
Eric Cano's avatar
Eric Cano committed
55
add_library (ctaobjectstore SHARED
56
  ${CTAProtoSources}
57
  ObjectOps.cpp
58
59
  RootEntry.cpp
  Agent.cpp
60
  AgentHeartbeatThread.cpp
61
  AgentReference.cpp
62
63
  AgentReferenceInterface.cpp
  AgentWrapper.cpp
64
  AgentRegister.cpp
65
  AgentWatchdog.cpp
66
  ArchiveQueue.cpp
67
  ArchiveQueueShard.cpp
68
  ArchiveQueueToTransferAlgorithms.cpp
69
  ArchiveQueueToReportAlgorithms.cpp
70
  ArchiveQueueFailedAlgorithms.cpp
71
72
  ArchiveQueueToReportToRepackForSuccessAlgorithms.cpp
  ArchiveQueueToTransferForRepackAlgorithms.cpp
73
  RetrieveQueue.cpp
74
  RetrieveQueueShard.cpp
75
76
77
  RetrieveQueueToTransferAlgorithms.cpp
  RetrieveQueueToReportAlgorithms.cpp
  RetrieveQueueFailedAlgorithms.cpp
78
  RetrieveQueueToReportToRepackForSuccessAlgorithms.cpp
79
  JobQueueType.cpp
80
  Sorter.cpp
Daniele Kruse's avatar
Daniele Kruse committed
81
  ArchiveRequest.cpp
82
  RetrieveRequest.cpp
Eric Cano's avatar
Eric Cano committed
83
  DriveRegister.cpp
84
  DriveState.cpp
85
86
  RepackIndex.cpp
  RepackRequest.cpp
Eric Cano's avatar
Eric Cano committed
87
  RepackQueue.cpp
88
89
  RepackQueuePendingAlgorithms.cpp
  RepackQueueToExpandAlgorithms.cpp
90
  RepackQueueType.cpp
91
  BackendVFS.cpp
92
  BackendRados.cpp
93
  BackendPopulator.cpp
94
  BackendFactory.cpp
95
  ProtocolBuffersAlgorithms.cpp
96
  GenericObject.cpp
97
  GarbageCollector.cpp
98
  SchedulerGlobalLock.cpp
99
100
  ValueCountMap.cpp
  Helpers.cpp)
Michael Davis's avatar
Michael Davis committed
101
102
103
set_property(TARGET ctaobjectstore PROPERTY SOVERSION "${CTA_SOVERSION}")
set_property(TARGET ctaobjectstore PROPERTY   VERSION "${CTA_LIBVERSION}")

104
target_link_libraries(ctaobjectstore rados json-c cryptopp)
105
set_source_files_properties(BackendRados.cpp PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations)
Eric Cano's avatar
Eric Cano committed
106
install (TARGETS ctaobjectstore DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
107

108
set(ObjectStoreUnitTests
109
110
  BackendTest.cpp
  RootEntryTest.cpp
111
  RetrieveQueueTest.cpp
112
  GarbageCollectorTest.cpp
113
  AlgorithmsTest.cpp
114
  SorterTest.cpp
115
)
116

Eric Cano's avatar
Eric Cano committed
117
add_library(ctaobjectstoreunittests SHARED ${ObjectStoreUnitTests})
Michael Davis's avatar
Michael Davis committed
118
119
120
set_property(TARGET ctaobjectstoreunittests PROPERTY SOVERSION "${CTA_SOVERSION}")
set_property(TARGET ctaobjectstoreunittests PROPERTY   VERSION "${CTA_LIBVERSION}")

Eric Cano's avatar
Eric Cano committed
121
target_link_libraries(ctaobjectstoreunittests
122
  ${PROTOBUF3_LIBRARIES} rados ctacommon gtest ctaobjectstore)
123
install(TARGETS ctaobjectstoreunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
124

125
add_executable(cta-objectstore-initialize cta-objectstore-initialize.cpp)
126
set_property(TARGET cta-objectstore-initialize APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
127
target_link_libraries(cta-objectstore-initialize
128
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
129

130
add_executable(cta-objectstore-list cta-objectstore-list.cpp)
131
set_property(TARGET cta-objectstore-list APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
132
target_link_libraries(cta-objectstore-list
133
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
Eric Cano's avatar
Eric Cano committed
134

135
add_executable(cta-objectstore-dump-object cta-objectstore-dump-object.cpp)
136
set_property(TARGET cta-objectstore-dump-object APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
137
target_link_libraries(cta-objectstore-dump-object
138
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
139

140
add_executable(cta-objectstore-unfollow-agent cta-objectstore-unfollow-agent.cpp)
141
set_property(TARGET cta-objectstore-unfollow-agent APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
142
target_link_libraries(cta-objectstore-unfollow-agent
143
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
144

145
add_executable(cta-objectstore-dereference-removed-queues cta-objectstore-dereference-removed-queues.cpp)
146
set_property(TARGET cta-objectstore-dereference-removed-queues APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
147
148
149
target_link_libraries(cta-objectstore-dereference-removed-queues
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)

150
add_executable(cta-objectstore-collect-orphaned-object cta-objectstore-collect-orphaned-object.cpp)
151
set_property(TARGET cta-objectstore-collect-orphaned-object APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
152
target_link_libraries(cta-objectstore-collect-orphaned-object
153
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon ctacatalogue)
154

155
install(TARGETS cta-objectstore-initialize cta-objectstore-list cta-objectstore-dump-object cta-objectstore-unfollow-agent 
156
  cta-objectstore-dereference-removed-queues cta-objectstore-collect-orphaned-object
157
  DESTINATION usr/bin)