CMakeLists.txt 3.19 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(Protobuf REQUIRED)
26
27
28
29
30
31

set (CTAProtoFiles
  cta.proto)

PROTOBUF_GENERATE_CPP(CTAProtoSources CTAProtoHeaders ${CTAProtoFiles})

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

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


Eric Cano's avatar
Eric Cano committed
50
add_library (ctaobjectstore SHARED
51
  ${CTAProtoSources}
52
53
  RootEntry.cpp
  Agent.cpp
54
  AgentReference.cpp
55
  AgentRegister.cpp
56
  AgentWatchdog.cpp
57
58
  ArchiveQueue.cpp
  RetrieveQueue.cpp
Daniele Kruse's avatar
Daniele Kruse committed
59
  ArchiveRequest.cpp
60
  RetrieveRequest.cpp
Eric Cano's avatar
Eric Cano committed
61
  DriveRegister.cpp
62
  BackendVFS.cpp
63
  BackendRados.cpp
64
  BackendPopulator.cpp
65
  BackendFactory.cpp
66
  ProtocolBuffersAlgorithms.cpp
67
  GenericObject.cpp
68
  GarbageCollector.cpp
69
70
  SchedulerGlobalLock.cpp
  ValueCountMap.cpp)
Eric Cano's avatar
Eric Cano committed
71
target_link_libraries(ctaobjectstore rados json-c ctautils)
72
set_source_files_properties(BackendRados.cpp PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations)
Eric Cano's avatar
Eric Cano committed
73
install (TARGETS ctaobjectstore DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
74

75
set(ObjectStoreUnitTests
76
77
  BackendTest.cpp
  RootEntryTest.cpp
78
  RetrieveQueueTest.cpp
79
  GarbageCollectorTest.cpp
80
)
81

Eric Cano's avatar
Eric Cano committed
82
83
add_library(ctaobjectstoreunittests SHARED ${ObjectStoreUnitTests})
target_link_libraries(ctaobjectstoreunittests
Steven Murray's avatar
Steven Murray committed
84
  protobuf rados ctacommon gtest ctaobjectstore)
85
install(TARGETS ctaobjectstoreunittests DESTINATION usr/${CMAKE_INSTALL_LIBDIR})
86

87
88
add_executable(cta-objectstore-initialize cta-objectstore-initialize.cpp)
target_link_libraries(cta-objectstore-initialize
89
  protobuf ctaobjectstore ctacommon ctautils)
90

91
92
add_executable(cta-objectstore-list cta-objectstore-list.cpp)
target_link_libraries(cta-objectstore-list
Eric Cano's avatar
Eric Cano committed
93
  protobuf ctaobjectstore ctacommon)
Eric Cano's avatar
Eric Cano committed
94

95
96
add_executable(cta-objectstore-dump-object cta-objectstore-dump-object.cpp)
target_link_libraries(cta-objectstore-dump-object
Steven Murray's avatar
Steven Murray committed
97
  protobuf ctaobjectstore ctacommon)
98
99
100

install(TARGETS cta-objectstore-initialize cta-objectstore-list cta-objectstore-dump-object
  DESTINATION usr/bin)