CMakeLists.txt 5.66 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
  AgentRegister.cpp
63
  AgentWatchdog.cpp
64
  ArchiveQueue.cpp
65
  ArchiveQueueShard.cpp
66
  ArchiveQueueToTransferAlgorithms.cpp
67
  ArchiveQueueToReportAlgorithms.cpp
68
  ArchiveQueueFailedAlgorithms.cpp
69
  RetrieveQueue.cpp
70
  RetrieveQueueShard.cpp
71
72
73
  RetrieveQueueToTransferAlgorithms.cpp
  RetrieveQueueToReportAlgorithms.cpp
  RetrieveQueueFailedAlgorithms.cpp
74
  JobQueueType.cpp
Daniele Kruse's avatar
Daniele Kruse committed
75
  ArchiveRequest.cpp
76
  RetrieveRequest.cpp
Eric Cano's avatar
Eric Cano committed
77
  DriveRegister.cpp
78
  DriveState.cpp
79
80
  RepackIndex.cpp
  RepackRequest.cpp
Eric Cano's avatar
Eric Cano committed
81
  RepackQueue.cpp
82
  RepackQueuePendingAlgorithms.cpp
83
  RetrieveQueueToReportToRepackForSuccessAlgorithms.cpp
84
  RepackQueueToExpandAlgorithms.cpp
85
  RepackQueueType.cpp
86
  BackendVFS.cpp
87
  BackendRados.cpp
88
  BackendPopulator.cpp
89
  BackendFactory.cpp
90
  ProtocolBuffersAlgorithms.cpp
91
  GenericObject.cpp
92
  GarbageCollector.cpp
93
  SchedulerGlobalLock.cpp
94
95
  ValueCountMap.cpp
  Helpers.cpp)
Michael Davis's avatar
Michael Davis committed
96
97
98
set_property(TARGET ctaobjectstore PROPERTY SOVERSION "${CTA_SOVERSION}")
set_property(TARGET ctaobjectstore PROPERTY   VERSION "${CTA_LIBVERSION}")

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

103
set(ObjectStoreUnitTests
104
105
  BackendTest.cpp
  RootEntryTest.cpp
106
  RetrieveQueueTest.cpp
107
  GarbageCollectorTest.cpp
108
  AlgorithmsTest.cpp
109
)
110

Eric Cano's avatar
Eric Cano committed
111
add_library(ctaobjectstoreunittests SHARED ${ObjectStoreUnitTests})
Michael Davis's avatar
Michael Davis committed
112
113
114
set_property(TARGET ctaobjectstoreunittests PROPERTY SOVERSION "${CTA_SOVERSION}")
set_property(TARGET ctaobjectstoreunittests PROPERTY   VERSION "${CTA_LIBVERSION}")

Eric Cano's avatar
Eric Cano committed
115
target_link_libraries(ctaobjectstoreunittests
116
  ${PROTOBUF3_LIBRARIES} rados ctacommon gtest ctaobjectstore)
117
install(TARGETS ctaobjectstoreunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
118

119
add_executable(cta-objectstore-initialize cta-objectstore-initialize.cpp)
120
set_property(TARGET cta-objectstore-initialize APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
121
target_link_libraries(cta-objectstore-initialize
122
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
123

124
add_executable(cta-objectstore-list cta-objectstore-list.cpp)
125
set_property(TARGET cta-objectstore-list APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
126
target_link_libraries(cta-objectstore-list
127
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
Eric Cano's avatar
Eric Cano committed
128

129
add_executable(cta-objectstore-dump-object cta-objectstore-dump-object.cpp)
130
set_property(TARGET cta-objectstore-dump-object APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
131
target_link_libraries(cta-objectstore-dump-object
132
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
133

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

139
add_executable(cta-objectstore-dereference-removed-queues cta-objectstore-dereference-removed-queues.cpp)
140
set_property(TARGET cta-objectstore-dereference-removed-queues APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
141
142
143
target_link_libraries(cta-objectstore-dereference-removed-queues
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)

144
add_executable(cta-objectstore-collect-orphaned-object cta-objectstore-collect-orphaned-object.cpp)
145
set_property(TARGET cta-objectstore-collect-orphaned-object APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
146
target_link_libraries(cta-objectstore-collect-orphaned-object
147
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon ctacatalogue)
148

149
install(TARGETS cta-objectstore-initialize cta-objectstore-list cta-objectstore-dump-object cta-objectstore-unfollow-agent 
150
  cta-objectstore-dereference-removed-queues cta-objectstore-collect-orphaned-object
151
  DESTINATION usr/bin)