summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
blob: dcbdc1bb4326426ac72d209e821e6e092840d874 (plain)
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
cmake_minimum_required(VERSION 2.8.4)

project(uscxml)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/contrib/cmake)

set(USCXML_LIBS)
set(USCXML_FILES)

# libxml2
find_package(LibXml2 REQUIRED)
include_directories(${LIBXML2_INCLUDE_DIR})
list (APPEND USCXML_LIBS ${LIBXML2_LIBRARIES})

# prefer rest as static libraries
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})

#glog
set(ENV{GLOG_SRC} ${CMAKE_SOURCE_DIR}/../glog)
find_package(GLOG REQUIRED)
include_directories(${GLOG_INCLUDE_DIR})
list (APPEND USCXML_LIBS ${GLOG_LIBRARY})

# arabica
find_package(Arabica REQUIRED)
include_directories(${ARABICA_INCLUDE_DIR})
list (APPEND USCXML_LIBS ${ARABICA_LIBRARY})

# boost - header only
FIND_PATH(Boost_INCLUDE_DIR boost/version.hpp PATHS /usr/include)
include_directories(${Boost_INCLUDE_DIR})

#event
set(ENV{EVENT_SRC} ${CMAKE_SOURCE_DIR}/../libevent)
find_package(EVENT REQUIRED)
include_directories(${EVENT_INCLUDE_DIR})
file(GLOB_RECURSE USCXML_IO_PROCESSOR_LIBEVENT
	src/uscxml/ioprocessor/basichttp/libevent/*.cpp
	src/uscxml/ioprocessor/basichttp/libevent/*.h
)
list (APPEND USCXML_FILES ${USCXML_IO_PROCESSOR_LIBEVENT})

file(GLOB_RECURSE USCXML_EVENTQUEUE_LIBEVENT
	src/uscxml/concurrency/eventqueue/libevent/*.cpp
	src/uscxml/concurrency/eventqueue/libevent/*.h
)
list (APPEND USCXML_FILES ${USCXML_EVENTQUEUE_LIBEVENT})

list (APPEND USCXML_LIBS ${EVENT_LIBRARY})

# v8
set(ENV{V8_SRC} ${CMAKE_SOURCE_DIR}/../v8)
find_package(V8 REQUIRED)
include_directories(${V8_INCLUDE_DIR})
file(GLOB_RECURSE USCXML_DATAMODEL_V8
	src/uscxml/datamodel/ecmascript/v8/*.cpp
	src/uscxml/datamodel/ecmascript/v8/*.h
)
list (APPEND USCXML_FILES ${USCXML_DATAMODEL_V8})
list (APPEND USCXML_LIBS ${V8_LIBRARY})

# the invokers for external services
file(GLOB_RECURSE USCXML_INVOKER src/uscxml/invoker/*.cpp src/uscxml/invoker/*.h)
list (APPEND USCXML_FILES ${USCXML_INVOKER})


file(GLOB USCXML_CONCURRENCY src/uscxml/concurrency/*.cpp src/uscxml/concurrency/*.h)
list (APPEND USCXML_FILES ${USCXML_CONCURRENCY})

file(GLOB USCXML_INTERPRETER src/uscxml/*.cpp src/uscxml/*.h)
list (APPEND USCXML_FILES ${USCXML_INTERPRETER})

include_directories(src)

# build library
add_library(uscxml ${USCXML_FILES})
target_link_libraries(uscxml ${USCXML_LIBS})

add_subdirectory(test)
add_subdirectory(src/bindings)

# ---- OLD DEPENDENCIES -------------

#set(Boost_DEBUG 1)
# find_package(Boost COMPONENTS thread regex system date_time REQUIRED)
# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})

#openssl - needed for pion
# find_package(OPENSSL REQUIRED)
# INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})

#zlib - needed for pion
# find_package(ZLIB REQUIRED)
# INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})

#iconv - needed for pion
# find_package(ICONV REQUIRED)
# INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})

#ev - no longer supported
# set(ENV{EV_SRC} ${CMAKE_SOURCE_DIR}/../libev)
# find_package(EV REQUIRED)
# include_directories(${EV_INCLUDE_DIR})

#pion
# set(ENV{PION_SRC} ${CMAKE_SOURCE_DIR}/../pion)
# find_package(PION REQUIRED)
# include_directories(${PION_INCLUDE_DIR})
# file(GLOB_RECURSE USCXML_IO_PROCESSOR_PION
# 	src/uscxml/ioprocessor/basichttp/pion/*.cpp
# 	src/uscxml/ioprocessor/basichttp/pion/*.h
# )