forked from cocaine/cocaine-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
137 lines (109 loc) · 2.92 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(COCAINE-CORE)
SET(COCAINE_VERSION 0.8)
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
CONFIGURE_FILE(
"${PROJECT_SOURCE_DIR}/config.hpp.in"
"${PROJECT_SOURCE_DIR}/include/cocaine/config.hpp")
FIND_PACKAGE(Boost 1.40.0 REQUIRED
COMPONENTS
filesystem
program_options
thread)
FIND_PACKAGE(OpenSSL REQUIRED)
INCLUDE(cmake/locate_library.cmake)
LOCATE_LIBRARY(LIBEV "ev++.h" "ev" "libev")
LOCATE_LIBRARY(LIBMSGPACK "msgpack.hpp" "msgpack")
LOCATE_LIBRARY(LIBZMQ "zmq.hpp" "zmq")
LOCATE_LIBRARY(LIBARCHIVE "archive.h" "archive")
IF(NOT APPLE)
LOCATE_LIBRARY(LIBCGROUP "libcgroup.h" "cgroup")
LOCATE_LIBRARY(LIBUUID "uuid/uuid.h" "uuid")
SET(LIBCGROUP_LIBRARY "cgroup")
SET(LIBUUID_LIBRARY "uuid")
ADD_DEFINITIONS("-DHAVE_CGROUPS")
ENDIF()
INCLUDE_DIRECTORIES(
${Boost_INCLUDE_DIRS}
${OPENSSL_INCLUDE_DIR}
${LIBEV_INCLUDE_DIRS}
${LIBMSGPACK_INCLUDE_DIRS}
${LIBZMQ_INCLUDE_DIRS}
${LIBARCHIVE_INCLUDE_DIRS})
LINK_DIRECTORIES(
${Boost_LIBRARY_DIRS}
${LIBEV_LIBRARY_DIRS}
${LIBMSGPACK_LIBRARY_DIRS}
${LIBZMQ_LIBRARY_DIRS}
${LIBARCHIVE_LIBRARY_DIRS})
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}/foreign/jsoncpp-0.6.0-rc2/include)
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}/include)
ADD_LIBRARY(json
foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_value
foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_reader
foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_writer)
SET_TARGET_PROPERTIES(json PROPERTIES
COMPILE_FLAGS -fPIC)
ADD_LIBRARY(cocaine-common SHARED
src/auth
src/context
src/loggers/syslog
src/logging
src/repository
src/storages/files)
TARGET_LINK_LIBRARIES(cocaine-common
boost_filesystem-mt
boost_system-mt
boost_thread-mt
crypto
json
ltdl
msgpack
zmq)
SET_TARGET_PROPERTIES(cocaine-common PROPERTIES
VERSION 1)
ADD_LIBRARY(cocaine-core SHARED
src/app
src/engine
src/job
src/manifest
src/master
src/package
src/policy)
TARGET_LINK_LIBRARIES(cocaine-core
archive
${LIBCGROUP_LIBRARY}
cocaine-common
ev
${LIBUUID_LIBRARY})
SET_TARGET_PROPERTIES(cocaine-core PROPERTIES
VERSION 1)
ADD_EXECUTABLE(cocaine-slave
src/slave/slave
src/slave/main)
ADD_EXECUTABLE(cocained
src/server/server
src/server/main)
TARGET_LINK_LIBRARIES(cocaine-slave
boost_program_options-mt
cocaine-core)
TARGET_LINK_LIBRARIES(cocained
boost_program_options-mt
cocaine-core)
ADD_SUBDIRECTORY(tools)
INSTALL(
TARGETS
cocaine-common
cocaine-core
cocaine-slave
cocained
json
RUNTIME DESTINATION bin COMPONENT runtime
LIBRARY DESTINATION lib COMPONENT runtime
ARCHIVE DESTINATION lib COMPONENT developement)
INSTALL(
DIRECTORY
include/
foreign/jsoncpp-0.6.0-rc2/include/
DESTINATION include
COMPONENT development)