CMakeLists.txt 5.06 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
  objectstore/RetrieveRequest.hpp
40
41
  objectstore/RootEntry.hpp
  objectstore/SchedulerGlobalLock.hpp
42
  objectstore/TapeQueue.hpp
43
  objectstore/ArchiveQueue.hpp
44
45
  objectstore/UserIdentity.hpp
  objectstore/ValueCountMap.hpp)
46
47
48
49
50

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

51
include_directories (${PROTOBUF3_INCLUDE_DIRS})
Eric Cano's avatar
Eric Cano committed
52
add_library (ctaobjectstore SHARED
53
  ${CTAProtoSources}
54
55
  RootEntry.cpp
  Agent.cpp
56
  AgentHeartbeatThread.cpp
57
  AgentReference.cpp
58
  AgentRegister.cpp
59
  AgentWatchdog.cpp
60
61
  ArchiveQueue.cpp
  RetrieveQueue.cpp
Daniele Kruse's avatar
Daniele Kruse committed
62
  ArchiveRequest.cpp
63
  RetrieveRequest.cpp
Eric Cano's avatar
Eric Cano committed
64
  DriveRegister.cpp
65
  DriveState.cpp
66
  BackendVFS.cpp
67
  BackendRados.cpp
68
  BackendPopulator.cpp
69
  BackendFactory.cpp
70
  ProtocolBuffersAlgorithms.cpp
71
  GenericObject.cpp
72
  GarbageCollector.cpp
73
  SchedulerGlobalLock.cpp
74
75
  ValueCountMap.cpp
  Helpers.cpp)
Michael Davis's avatar
Michael Davis committed
76
77
78
set_property(TARGET ctaobjectstore PROPERTY SOVERSION "${CTA_SOVERSION}")
set_property(TARGET ctaobjectstore PROPERTY   VERSION "${CTA_LIBVERSION}")

79
target_link_libraries(ctaobjectstore rados json-c ctautils cryptopp)
80
set_source_files_properties(BackendRados.cpp PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations)
Eric Cano's avatar
Eric Cano committed
81
install (TARGETS ctaobjectstore DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
82

83
set(ObjectStoreUnitTests
84
85
  BackendTest.cpp
  RootEntryTest.cpp
86
  RetrieveQueueTest.cpp
87
  GarbageCollectorTest.cpp
88
)
89

Eric Cano's avatar
Eric Cano committed
90
add_library(ctaobjectstoreunittests SHARED ${ObjectStoreUnitTests})
Michael Davis's avatar
Michael Davis committed
91
92
93
set_property(TARGET ctaobjectstoreunittests PROPERTY SOVERSION "${CTA_SOVERSION}")
set_property(TARGET ctaobjectstoreunittests PROPERTY   VERSION "${CTA_LIBVERSION}")

Eric Cano's avatar
Eric Cano committed
94
target_link_libraries(ctaobjectstoreunittests
95
  ${PROTOBUF3_LIBRARIES} rados ctacommon gtest ctaobjectstore)
96
install(TARGETS ctaobjectstoreunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
97

98
add_executable(cta-objectstore-initialize cta-objectstore-initialize.cpp)
99
set_property(TARGET cta-objectstore-initialize APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
100
target_link_libraries(cta-objectstore-initialize
101
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon ctautils)
102

103
add_executable(cta-objectstore-list cta-objectstore-list.cpp)
104
set_property(TARGET cta-objectstore-list APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
105
target_link_libraries(cta-objectstore-list
106
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
Eric Cano's avatar
Eric Cano committed
107

108
add_executable(cta-objectstore-dump-object cta-objectstore-dump-object.cpp)
109
set_property(TARGET cta-objectstore-dump-object APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
110
target_link_libraries(cta-objectstore-dump-object
111
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
112

113
add_executable(cta-objectstore-unfollow-agent cta-objectstore-unfollow-agent.cpp)
114
set_property(TARGET cta-objectstore-unfollow-agent APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
115
target_link_libraries(cta-objectstore-unfollow-agent
116
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon)
117

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

123
add_executable(cta-objectstore-collect-orphaned-object cta-objectstore-collect-orphaned-object.cpp)
124
set_property(TARGET cta-objectstore-collect-orphaned-object APPEND PROPERTY INSTALL_RPATH ${PROTOBUF3_RPATH})
125
target_link_libraries(cta-objectstore-collect-orphaned-object
126
  ${PROTOBUF3_LIBRARIES} ctaobjectstore ctacommon ctacatalogue)
127

128
install(TARGETS cta-objectstore-initialize cta-objectstore-list cta-objectstore-dump-object cta-objectstore-unfollow-agent 
129
  cta-objectstore-dereference-removed-queues cta-objectstore-collect-orphaned-object
130
  DESTINATION usr/bin)