blob: 0fab6a4d3a6ea858f130b1a99ba07d7fb9bac12b (
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
|
# LIBEVENT basichttp ioprocessor - this one is already required above
file(GLOB_RECURSE BASICHTTP_IOPROCESSOR
basichttp/*.cpp
basichttp/*.h
)
source_group("IOProcessor\\basichttp" FILES ${BASICHTTP_IOPROCESSOR})
if (BUILD_AS_PLUGINS)
add_library(
ioprocessor_basichttp SHARED
${BASICHTTP_IOPROCESSOR})
target_link_libraries(ioprocessor_basichttp uscxml)
set_target_properties(ioprocessor_basichttp PROPERTIES FOLDER "Plugin IOProcessor")
else()
list (APPEND USCXML_FILES ${BASICHTTP_IOPROCESSOR})
endif()
# scxml ioprocessor - this one is already required above
file(GLOB_RECURSE SCXML_IOPROCESSOR
scxml/*.cpp
scxml/*.h
)
source_group("IOProcessor\\scxml" FILES ${SCXML_IOPROCESSOR})
if (BUILD_AS_PLUGINS)
add_library(
ioprocessor_scxml SHARED
${SCXML_IOPROCESSOR})
target_link_libraries(ioprocessor_scxml uscxml)
set_target_properties(ioprocessor_scxml PROPERTIES FOLDER "Plugin IOProcessor")
else()
list (APPEND USCXML_FILES ${SCXML_IOPROCESSOR})
endif()
# mmi ioprocessor
if (PROTOBUF_FOUND)
if (NOT PROTOBUF_PROTOC_EXECUTABLE)
message(FATAL_ERROR "protoc binary required for serialization")
endif()
file(GLOB_RECURSE MMI_IOPROCESSOR
modality/*.cpp
modality/*.h
)
# process .proto files
file(GLOB_RECURSE PROTOBUF_INTERFACES ${PROJECT_SOURCE_DIR}/contrib/proto/*.proto)
list (APPEND USCXML_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR})
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${PROTOBUF_INTERFACES})
# set_source_files_properties(${PROTO_SRCS} ${PROTO_HDRS} PROPERTIES GENERATED TRUE)
# this needs to be here for dependencies on the generated proto files
add_library(mmi_proto STATIC ${PROTO_SRCS})
set_target_properties(mmi_proto PROPERTIES FOLDER "Generated")
source_group("IOProcessor\\modality" FILES ${MMI_IOPROCESSOR})
if (BUILD_AS_PLUGINS)
add_library(
ioprocessor_mmi SHARED
${MMI_IOPROCESSOR})
target_link_libraries(ioprocessor_mmi uscxml mmi_proto)
set_target_properties(ioprocessor_mmi PROPERTIES FOLDER "Plugin IOProcessor")
else()
list (APPEND USCXML_FILES ${MMI_IOPROCESSOR})
list (APPEND USCXML_OPT_LIBS mmi_proto)
endif()
endif()
set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE)
set(USCXML_OPT_LIBS ${USCXML_OPT_LIBS} PARENT_SCOPE)
set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE)
|