diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-07-31 21:05:47 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-07-31 21:05:47 (GMT) |
commit | a61ef07b5eb3dacfc596a26cb1373356e5673dbb (patch) | |
tree | 484f4c1952c493032f8ca42709e001d7cc25be6a /src/uscxml/plugins | |
parent | eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5 (diff) | |
download | uscxml-a61ef07b5eb3dacfc596a26cb1373356e5673dbb.zip uscxml-a61ef07b5eb3dacfc596a26cb1373356e5673dbb.tar.gz uscxml-a61ef07b5eb3dacfc596a26cb1373356e5673dbb.tar.bz2 |
Support for ignoring libraries when building and minimal builds
Diffstat (limited to 'src/uscxml/plugins')
-rw-r--r-- | src/uscxml/plugins/EventHandler.h | 4 | ||||
-rw-r--r-- | src/uscxml/plugins/Invoker.h | 9 | ||||
-rw-r--r-- | src/uscxml/plugins/datamodel/CMakeLists.txt | 11 | ||||
-rw-r--r-- | src/uscxml/plugins/element/CMakeLists.txt | 192 | ||||
-rw-r--r-- | src/uscxml/plugins/invoker/CMakeLists.txt | 932 | ||||
-rw-r--r-- | src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h | 4 | ||||
-rw-r--r-- | src/uscxml/plugins/ioprocessor/CMakeLists.txt | 146 |
7 files changed, 661 insertions, 637 deletions
diff --git a/src/uscxml/plugins/EventHandler.h b/src/uscxml/plugins/EventHandler.h index 4078cfe..2b41ae5 100644 --- a/src/uscxml/plugins/EventHandler.h +++ b/src/uscxml/plugins/EventHandler.h @@ -52,7 +52,7 @@ public: std::string getType() { return _type; } - + void setElement(const Arabica::DOM::Element<std::string>& element) { _element = element; } @@ -104,7 +104,7 @@ public: void setInvokeId(const std::string& invokeId) { _impl->setInvokeId(invokeId); } - + void setType(const std::string& type) { _impl->setType(type); } diff --git a/src/uscxml/plugins/Invoker.h b/src/uscxml/plugins/Invoker.h index 4a142e4..dd3d66d 100644 --- a/src/uscxml/plugins/Invoker.h +++ b/src/uscxml/plugins/Invoker.h @@ -34,6 +34,11 @@ public: virtual ~InvokerImpl() {} virtual void invoke(const InvokeRequest& req) = 0; virtual void uninvoke() {} + + virtual bool deleteOnUninvoke() { + return true; + } + virtual boost::shared_ptr<InvokerImpl> create(InterpreterImpl* interpreter) = 0; }; @@ -70,6 +75,10 @@ public: _impl->uninvoke(); } + virtual bool deleteOnUninvoke() { + return _impl->deleteOnUninvoke(); + } + protected: boost::shared_ptr<InvokerImpl> _impl; }; diff --git a/src/uscxml/plugins/datamodel/CMakeLists.txt b/src/uscxml/plugins/datamodel/CMakeLists.txt index acf7344..76f928b 100644 --- a/src/uscxml/plugins/datamodel/CMakeLists.txt +++ b/src/uscxml/plugins/datamodel/CMakeLists.txt @@ -30,7 +30,8 @@ if (BUILD_DM_ECMA) list (APPEND USCXML_FILES ${JSC_DOM}) list (APPEND USCXML_OPT_LIBS ${JSC_LIBRARY}) endif() - else() + + elseif(V8_FOUND) # GOOGLE V8 ecmascript datamodel set(USCXML_DATAMODELS "ecmascript(V8) ${USCXML_DATAMODELS}") @@ -81,7 +82,7 @@ list (APPEND USCXML_FILES ${NULL_DATAMODEL}) # Lua datamodel -if (BUILD_DM_LUA AND LUA_FOUND) +if (BUILD_DM_LUA AND LUA_FOUND AND NOT BUILD_MINIMAL) set(USCXML_DATAMODELS "lua ${USCXML_DATAMODELS}") file(GLOB LUA_DATAMODEL lua/*.cpp @@ -105,7 +106,7 @@ endif() # XPath datamodel -if (BUILD_DM_XPATH) +if (BUILD_DM_XPATH AND NOT BUILD_MINIMAL) set(USCXML_DATAMODELS "xpath ${USCXML_DATAMODELS}") file(GLOB XPATH_DATAMODEL xpath/*.cpp @@ -125,7 +126,7 @@ endif() # SWI PROLOG datamodel -if (SWI_FOUND AND BUILD_DM_PROLOG) +if (SWI_FOUND AND BUILD_DM_PROLOG AND NOT BUILD_MINIMAL) set(USCXML_DATAMODELS "prolog ${USCXML_DATAMODELS}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/prolog/swi/SWIConfig.h.in ${CMAKE_BINARY_DIR}/uscxml/SWIConfig.h) @@ -164,7 +165,7 @@ endif() # Promela datamodel -if (BUILD_DM_PROMELA) +if (BUILD_DM_PROMELA AND NOT BUILD_MINIMAL) set(USCXML_DATAMODELS "promela ${USCXML_DATAMODELS}") file(GLOB_RECURSE PROMELA_DATAMODEL diff --git a/src/uscxml/plugins/element/CMakeLists.txt b/src/uscxml/plugins/element/CMakeLists.txt index 16a9a1d..e2142ca 100644 --- a/src/uscxml/plugins/element/CMakeLists.txt +++ b/src/uscxml/plugins/element/CMakeLists.txt @@ -1,109 +1,113 @@ -# Fetch element +if (NOT BUILD_MINIMAL) -set(USCXML_ELEMENTS "fetch ${USCXML_ELEMENTS}") -file(GLOB_RECURSE FETCH_ELEMENT - fetch/*.cpp - fetch/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${FETCH_ELEMENT}) - add_library( - element_fetch SHARED - ${FETCH_ELEMENT} - "../Plugins.cpp") - target_link_libraries(element_fetch uscxml) - set_target_properties(element_fetch PROPERTIES FOLDER "Plugin Element") - set_target_properties(element_fetch PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(element_fetch PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${FETCH_ELEMENT}) -endif() + # Fetch element -# MMI elements + set(USCXML_ELEMENTS "fetch ${USCXML_ELEMENTS}") + file(GLOB_RECURSE FETCH_ELEMENT + fetch/*.cpp + fetch/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${FETCH_ELEMENT}) + add_library( + element_fetch SHARED + ${FETCH_ELEMENT} + "../Plugins.cpp") + target_link_libraries(element_fetch uscxml) + set_target_properties(element_fetch PROPERTIES FOLDER "Plugin Element") + set_target_properties(element_fetch PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(element_fetch PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${FETCH_ELEMENT}) + endif() -# file(GLOB_RECURSE MMI_ELEMENT -# mmi/*.cpp -# mmi/*.h -# ) -# if (BUILD_AS_PLUGINS) -# source_group("" FILES ${MMI_ELEMENT}) -# add_library( -# element_mmi SHARED -# ${MMI_ELEMENT} -# "../Plugins.cpp") -# target_link_libraries(element_mmi uscxml) -# set_target_properties(element_mmi PROPERTIES FOLDER "Plugin Element") -# set_target_properties(element_mmi PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") -# set_target_properties(element_mmi PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -# else() -# list (APPEND USCXML_FILES ${MMI_ELEMENT}) -# endif() + # MMI elements + # file(GLOB_RECURSE MMI_ELEMENT + # mmi/*.cpp + # mmi/*.h + # ) + # if (BUILD_AS_PLUGINS) + # source_group("" FILES ${MMI_ELEMENT}) + # add_library( + # element_mmi SHARED + # ${MMI_ELEMENT} + # "../Plugins.cpp") + # target_link_libraries(element_mmi uscxml) + # set_target_properties(element_mmi PROPERTIES FOLDER "Plugin Element") + # set_target_properties(element_mmi PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + # set_target_properties(element_mmi PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + # else() + # list (APPEND USCXML_FILES ${MMI_ELEMENT}) + # endif() -# Postpone element -set(USCXML_ELEMENTS "postpone ${USCXML_ELEMENTS}") -file(GLOB_RECURSE POSTPONE_ELEMENT - postpone/*.cpp - postpone/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${POSTPONE_ELEMENT}) - add_library( - element_postpone SHARED - ${POSTPONE_ELEMENT} - "../Plugins.cpp") - target_link_libraries(element_postpone uscxml) - set_target_properties(element_postpone PROPERTIES FOLDER "Plugin Element") - set_target_properties(element_postpone PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(element_postpone PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${POSTPONE_ELEMENT}) -endif() + # Postpone element + set(USCXML_ELEMENTS "postpone ${USCXML_ELEMENTS}") + file(GLOB_RECURSE POSTPONE_ELEMENT + postpone/*.cpp + postpone/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${POSTPONE_ELEMENT}) + add_library( + element_postpone SHARED + ${POSTPONE_ELEMENT} + "../Plugins.cpp") + target_link_libraries(element_postpone uscxml) + set_target_properties(element_postpone PROPERTIES FOLDER "Plugin Element") + set_target_properties(element_postpone PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(element_postpone PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${POSTPONE_ELEMENT}) + endif() -# File element -set(USCXML_ELEMENTS "file ${USCXML_ELEMENTS}") -file(GLOB_RECURSE FILE_ELEMENT - file/*.cpp - file/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${FILE_ELEMENT}) - add_library( - element_file SHARED - ${FILE_ELEMENT} - "../Plugins.cpp") - target_link_libraries(element_file uscxml) - set_target_properties(element_file PROPERTIES FOLDER "Plugin Element") - set_target_properties(element_file PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(element_file PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${FILE_ELEMENT}) -endif() + # File element + set(USCXML_ELEMENTS "file ${USCXML_ELEMENTS}") + file(GLOB_RECURSE FILE_ELEMENT + file/*.cpp + file/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${FILE_ELEMENT}) + add_library( + element_file SHARED + ${FILE_ELEMENT} + "../Plugins.cpp") + target_link_libraries(element_file uscxml) + set_target_properties(element_file PROPERTIES FOLDER "Plugin Element") + set_target_properties(element_file PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(element_file PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${FILE_ELEMENT}) + endif() -# Respond element -set(USCXML_ELEMENTS "respond ${USCXML_ELEMENTS}") -file(GLOB_RECURSE RESPOND_ELEMENT - respond/*.cpp - respond/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${RESPOND_ELEMENT}) - add_library( - element_respond SHARED - ${RESPOND_ELEMENT} - "../Plugins.cpp") - target_link_libraries(element_respond uscxml) - set_target_properties(element_respond PROPERTIES FOLDER "Plugin Element") - set_target_properties(element_respond PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(element_respond PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${RESPOND_ELEMENT}) -endif() + # Respond element + + set(USCXML_ELEMENTS "respond ${USCXML_ELEMENTS}") + file(GLOB_RECURSE RESPOND_ELEMENT + respond/*.cpp + respond/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${RESPOND_ELEMENT}) + add_library( + element_respond SHARED + ${RESPOND_ELEMENT} + "../Plugins.cpp") + target_link_libraries(element_respond uscxml) + set_target_properties(element_respond PROPERTIES FOLDER "Plugin Element") + set_target_properties(element_respond PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(element_respond PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${RESPOND_ELEMENT}) + endif() + +endif() # BUILD_MINIMAL set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE) set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE) diff --git a/src/uscxml/plugins/invoker/CMakeLists.txt b/src/uscxml/plugins/invoker/CMakeLists.txt index 3f63ea3..31ec444 100644 --- a/src/uscxml/plugins/invoker/CMakeLists.txt +++ b/src/uscxml/plugins/invoker/CMakeLists.txt @@ -1,577 +1,579 @@ -# sample invoker - include to make sure it compiles -set(USCXML_INVOKERS "sample ${USCXML_INVOKERS}") -file(GLOB_RECURSE SAMPLE_INVOKER - sample/*.cpp - sample/*.h -) - -if (BUILD_AS_PLUGINS) - source_group("" FILES ${SAMPLE_INVOKER}) - add_library( - invoker_sample SHARED - ${SAMPLE_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_sample uscxml) - set_target_properties(invoker_sample PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_sample PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_sample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${SAMPLE_INVOKER}) -endif() - -# DirMon invoker to watch for filesystem changes - -set(USCXML_INVOKERS "dirmon ${USCXML_INVOKERS}") -file(GLOB_RECURSE DIRMON_INVOKER - filesystem/dirmon/*.cpp - filesystem/dirmon/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${DIRMON_INVOKER}) - add_library( - invoker_dirmon SHARED - ${DIRMON_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_dirmon uscxml) - set_target_properties(invoker_dirmon PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_dirmon PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_dirmon PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${DIRMON_INVOKER}) -endif() - - -# Location invoker to watch for proximity to GPS coordinates - -# file(GLOB_RECURSE LOCATION_INVOKER -# location/*.cpp -# location/*.h -# ) -# if (BUILD_AS_PLUGINS) -# source_group("" FILES ${LOCATION_INVOKER}) -# add_library( -# invoker_location SHARED -# ${LOCATION_INVOKER} -# "../Plugins.cpp") -# target_link_libraries(invoker_location uscxml) -# set_target_properties(invoker_location PROPERTIES FOLDER "Plugin Invoker") -# else() -# list (APPEND USCXML_FILES ${LOCATION_INVOKER}) -# endif() - - -# XHTML invoker - -set(USCXML_INVOKERS "xhtml ${USCXML_INVOKERS}") -file(GLOB_RECURSE XHTML_INVOKER - xhtml/*.cpp - xhtml/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${XHTML_INVOKER}) - add_library( - invoker_xhtml SHARED - ${XHTML_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_xhtml uscxml) - set_target_properties(invoker_xhtml PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_xhtml PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_xhtml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${XHTML_INVOKER}) -endif() - - -# System invoker to open a native command +# USCXML invoker -file(GLOB_RECURSE SYSTEM_INVOKER - system/*.cpp - system/*.h -) +set(USCXML_INVOKERS "scxml ${USCXML_INVOKERS}") +file(GLOB_RECURSE USCXML_INVOKER + scxml/*.cpp + scxml/*.h) if (BUILD_AS_PLUGINS) - source_group("" FILES ${SYSTEM_INVOKER}) + source_group("" FILES ${USCXML_INVOKER}) add_library( - invoker_system SHARED - ${SYSTEM_INVOKER} + invoker_uscxml SHARED + ${USCXML_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_system uscxml) - set_target_properties(invoker_system PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_system PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_system PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(invoker_uscxml uscxml) + set_target_properties(invoker_uscxml PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_uscxml PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_uscxml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${SYSTEM_INVOKER}) + list (APPEND USCXML_FILES ${USCXML_INVOKER}) endif() - -# expect invoker - -if (EXPECT_FOUND AND TCL_FOUND) - set(USCXML_INVOKERS "expect ${USCXML_INVOKERS}") - file(GLOB_RECURSE EXPECT_INVOKER - expect/*.cpp - expect/*.h +if (NOT BUILD_MINIMAL) + # sample invoker - include to make sure it compiles + set(USCXML_INVOKERS "sample ${USCXML_INVOKERS}") + file(GLOB_RECURSE SAMPLE_INVOKER + sample/*.cpp + sample/*.h ) + if (BUILD_AS_PLUGINS) - source_group("" FILES EXPECT_INVOKER) + source_group("" FILES ${SAMPLE_INVOKER}) add_library( - invoker_expect SHARED - ${EXPECT_INVOKER} + invoker_sample SHARED + ${SAMPLE_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_expect uscxml ${EXPECT_LIBRARY} ${TCL_LIBRARY}) - set_target_properties(invoker_expect PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_expect PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_expect PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(invoker_sample uscxml) + set_target_properties(invoker_sample PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_sample PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_sample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${EXPECT_INVOKER}) + list (APPEND USCXML_FILES ${SAMPLE_INVOKER}) endif() -endif() + # DirMon invoker to watch for filesystem changes -# SMTP invoker via curl - -if (CURL_HAS_SMTP) - set(USCXML_INVOKERS "smtp ${USCXML_INVOKERS}") - file(GLOB_RECURSE SMTP_INVOKER - smtp/*.cpp - smtp/*.h + set(USCXML_INVOKERS "dirmon ${USCXML_INVOKERS}") + file(GLOB_RECURSE DIRMON_INVOKER + filesystem/dirmon/*.cpp + filesystem/dirmon/*.h ) if (BUILD_AS_PLUGINS) - source_group("" FILES SMTP_INVOKER) + source_group("" FILES ${DIRMON_INVOKER}) add_library( - invoker_smtp SHARED - ${SMTP_INVOKER} + invoker_dirmon SHARED + ${DIRMON_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_smtp uscxml) - set_target_properties(invoker_smtp PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_smtp PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_smtp PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(invoker_dirmon uscxml) + set_target_properties(invoker_dirmon PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_dirmon PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_dirmon PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${SMTP_INVOKER}) + list (APPEND USCXML_FILES ${DIRMON_INVOKER}) endif() -endif() -# IMAP invoker via curl + # Location invoker to watch for proximity to GPS coordinates -set(USCXML_INVOKERS "imap ${USCXML_INVOKERS}") -file(GLOB_RECURSE IMAP_INVOKER - imap/*.cpp - imap/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES IMAP_INVOKER) - add_library( - invoker_imap SHARED - ${IMAP_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_imap uscxml) - set_target_properties(invoker_imap PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_imap PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_imap PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${IMAP_INVOKER}) -endif() + # file(GLOB_RECURSE LOCATION_INVOKER + # location/*.cpp + # location/*.h + # ) + # if (BUILD_AS_PLUGINS) + # source_group("" FILES ${LOCATION_INVOKER}) + # add_library( + # invoker_location SHARED + # ${LOCATION_INVOKER} + # "../Plugins.cpp") + # target_link_libraries(invoker_location uscxml) + # set_target_properties(invoker_location PROPERTIES FOLDER "Plugin Invoker") + # else() + # list (APPEND USCXML_FILES ${LOCATION_INVOKER}) + # endif() -# SQLite3 SQL Invoker + # XHTML invoker -if (SQLITE3_FOUND) - file(GLOB_RECURSE SQLITE3_INVOKER - sqlite3/*.cpp - sqlite3/*.h + set(USCXML_INVOKERS "xhtml ${USCXML_INVOKERS}") + file(GLOB_RECURSE XHTML_INVOKER + xhtml/*.cpp + xhtml/*.h ) if (BUILD_AS_PLUGINS) - source_group("" FILES ${SQLITE3_INVOKER}) + source_group("" FILES ${XHTML_INVOKER}) add_library( - invoker_sqlite3 SHARED - ${SQLITE3_INVOKER} + invoker_xhtml SHARED + ${XHTML_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_sqlite3 uscxml) - set_target_properties(invoker_sqlite3 PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_sqlite3 PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_sqlite3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(invoker_xhtml uscxml) + set_target_properties(invoker_xhtml PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_xhtml PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_xhtml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${SQLITE3_INVOKER}) + list (APPEND USCXML_FILES ${XHTML_INVOKER}) endif() -endif() -# ffmpeg invoker + # System invoker to open a native command -if (FFMPEG_FOUND) - set(USCXML_INVOKERS "ffmpeg ${USCXML_INVOKERS}") - file(GLOB_RECURSE FFMPEG_INVOKER - ffmpeg/*.cpp - ffmpeg/*.h + file(GLOB_RECURSE SYSTEM_INVOKER + system/*.cpp + system/*.h ) if (BUILD_AS_PLUGINS) - source_group("" FILES ${FFMPEG_INVOKER}) + source_group("" FILES ${SYSTEM_INVOKER}) add_library( - invoker_ffmpeg SHARED - ${FFMPEG_INVOKER} + invoker_system SHARED + ${SYSTEM_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_ffmpeg uscxml ${FFMPEG_LIBRARIES}) - set_target_properties(invoker_ffmpeg PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_ffmpeg PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_ffmpeg PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(invoker_system uscxml) + set_target_properties(invoker_system PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_system PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_system PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${FFMPEG_INVOKER}) + list (APPEND USCXML_FILES ${SYSTEM_INVOKER}) endif() -endif() -# instant messaging invoker + # expect invoker -if (LIBPURPLE_FOUND) - set(USCXML_INVOKERS "im ${USCXML_INVOKERS}") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/im/IMConfig.h.in ${CMAKE_BINARY_DIR}/uscxml/IMConfig.h) - - file(GLOB_RECURSE LIBPURPLE_INVOKER - im/*.cpp - im/*.h - ) - - if (BUILD_AS_PLUGINS) - source_group("" FILES ${LIBPURPLE_INVOKER}) - add_library( - invoker_im SHARED - ${LIBPURPLE_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_im uscxml ${LIBPURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${ICONV_LIBRARIES}) - set_target_properties(invoker_im PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_im PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_im PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${LIBPURPLE_INVOKER}) + if (EXPECT_FOUND AND TCL_FOUND) + set(USCXML_INVOKERS "expect ${USCXML_INVOKERS}") + file(GLOB_RECURSE EXPECT_INVOKER + expect/*.cpp + expect/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES EXPECT_INVOKER) + add_library( + invoker_expect SHARED + ${EXPECT_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_expect uscxml ${EXPECT_LIBRARY} ${TCL_LIBRARY}) + set_target_properties(invoker_expect PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_expect PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_expect PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${EXPECT_INVOKER}) + endif() endif() -endif() -# calendar invoker + # SMTP invoker via curl -if (LIBICAL_FOUND) - set(USCXML_INVOKERS "calendar ${USCXML_INVOKERS}") - file(GLOB_RECURSE CALENDAR_INVOKER - calendar/*.cpp - calendar/*.h - ) - if (BUILD_AS_PLUGINS) - source_group("" FILES ${CALENDAR_INVOKER}) - add_library( - invoker_calendar SHARED - ${CALENDAR_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_calendar uscxml ${LIBICAL_LIBRARIES}) - set_target_properties(invoker_calendar PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_calendar PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_calendar PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${CALENDAR_INVOKER}) + if (CURL_HAS_SMTP) + set(USCXML_INVOKERS "smtp ${USCXML_INVOKERS}") + file(GLOB_RECURSE SMTP_INVOKER + smtp/*.cpp + smtp/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES SMTP_INVOKER) + add_library( + invoker_smtp SHARED + ${SMTP_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_smtp uscxml) + set_target_properties(invoker_smtp PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_smtp PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_smtp PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${SMTP_INVOKER}) + endif() endif() -endif() -# webrtc invoker + # IMAP invoker via curl -if (LIBJINGLE_FOUND) - set(USCXML_INVOKERS "webrtc ${USCXML_INVOKERS}") - file(GLOB_RECURSE WEBRTC_INVOKER - webrtc/*.cpp - webrtc/*.h + set(USCXML_INVOKERS "imap ${USCXML_INVOKERS}") + file(GLOB_RECURSE IMAP_INVOKER + imap/*.cpp + imap/*.h ) if (BUILD_AS_PLUGINS) - source_group("" FILES ${WEBRTC_INVOKER}) + source_group("" FILES IMAP_INVOKER) add_library( - invoker_webrtc SHARED - ${WEBRTC_INVOKER} + invoker_imap SHARED + ${IMAP_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_webrtc uscxml ${LIBJINGLE_LIBRARIES}) - set_target_properties(invoker_webrtc PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_webrtc PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_webrtc PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(invoker_imap uscxml) + set_target_properties(invoker_imap PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_imap PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_imap PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${WEBRTC_INVOKER}) + list (APPEND USCXML_FILES ${IMAP_INVOKER}) endif() -endif() -# location invoker + # SQLite3 SQL Invoker -if (CORELOCATION_LIBRARY AND OFF) - set(USCXML_INVOKERS "location ${USCXML_INVOKERS}") - file(GLOB_RECURSE LOCATION_INVOKER - location/CoreLocation/*.cpp - location/CoreLocation/*.mm - location/CoreLocation/*.h - ) - if (BUILD_AS_PLUGINS) - source_group("" FILES ${LOCATION_INVOKER}) - add_library( - invoker_location SHARED - ${LOCATION_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_location uscxml) - set_target_properties(invoker_location PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_location PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_location PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${LOCATION_INVOKER}) + if (SQLITE3_FOUND) + file(GLOB_RECURSE SQLITE3_INVOKER + sqlite3/*.cpp + sqlite3/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${SQLITE3_INVOKER}) + add_library( + invoker_sqlite3 SHARED + ${SQLITE3_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_sqlite3 uscxml) + set_target_properties(invoker_sqlite3 PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_sqlite3 PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_sqlite3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${SQLITE3_INVOKER}) + endif() endif() -endif() -# UMUNDO invoker + # ffmpeg invoker -if (UMUNDO_FOUND AND PROTOBUF_FOUND) - set(USCXML_INVOKERS "umundo ${USCXML_INVOKERS}") - set(UMUNDO_INVOKER - ${CMAKE_CURRENT_SOURCE_DIR}/umundo/UmundoInvoker.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/umundo/UmundoInvoker.h - ) - if (PROTOBUF_FOUND) - list(APPEND UMUNDO_INVOKER - ${CMAKE_CURRENT_SOURCE_DIR}/umundo/JSON.pb.cc - ${CMAKE_CURRENT_SOURCE_DIR}/umundo/JSON.pb.h + if (FFMPEG_FOUND) + set(USCXML_INVOKERS "ffmpeg ${USCXML_INVOKERS}") + file(GLOB_RECURSE FFMPEG_INVOKER + ffmpeg/*.cpp + ffmpeg/*.h ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${FFMPEG_INVOKER}) + add_library( + invoker_ffmpeg SHARED + ${FFMPEG_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_ffmpeg uscxml ${FFMPEG_LIBRARIES}) + set_target_properties(invoker_ffmpeg PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_ffmpeg PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_ffmpeg PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${FFMPEG_INVOKER}) + endif() endif() - if (BUILD_AS_PLUGINS) - source_group("" FILES ${UMUNDO_INVOKER}) -# message(FATAL_ERROR "UMUNDO_LIBRARIES: ${UMUNDO_LIBRARIES}") - add_library( - invoker_umundo SHARED - ${UMUNDO_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_umundo uscxml - ${UMUNDO_LIBRARIES}) - if (PROTOBUF_FOUND) - target_link_libraries(invoker_umundo - optimized ${PROTOBUF_LIBRARY} - debug ${PROTOBUF_LIBRARY_DEBUG}) + + + # instant messaging invoker + + if (LIBPURPLE_FOUND) + set(USCXML_INVOKERS "im ${USCXML_INVOKERS}") + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/im/IMConfig.h.in ${CMAKE_BINARY_DIR}/uscxml/IMConfig.h) + + file(GLOB_RECURSE LIBPURPLE_INVOKER + im/*.cpp + im/*.h + ) + + if (BUILD_AS_PLUGINS) + source_group("" FILES ${LIBPURPLE_INVOKER}) + add_library( + invoker_im SHARED + ${LIBPURPLE_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_im uscxml ${LIBPURPLE_LIBRARY} ${GLIB2_LIBRARIES} ${ICONV_LIBRARIES}) + set_target_properties(invoker_im PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_im PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_im PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${LIBPURPLE_INVOKER}) endif() - set_target_properties(invoker_umundo PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_umundo PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_umundo PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${UMUNDO_INVOKER}) endif() -endif() -# USCXML invoker + # calendar invoker -set(USCXML_INVOKERS "scxml ${USCXML_INVOKERS}") -file(GLOB_RECURSE USCXML_INVOKER - scxml/*.cpp - scxml/*.h) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${USCXML_INVOKER}) - add_library( - invoker_uscxml SHARED - ${USCXML_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_uscxml uscxml) - set_target_properties(invoker_uscxml PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_uscxml PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_uscxml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${USCXML_INVOKER}) -endif() + if (LIBICAL_FOUND) + set(USCXML_INVOKERS "calendar ${USCXML_INVOKERS}") + file(GLOB_RECURSE CALENDAR_INVOKER + calendar/*.cpp + calendar/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${CALENDAR_INVOKER}) + add_library( + invoker_calendar SHARED + ${CALENDAR_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_calendar uscxml ${LIBICAL_LIBRARIES}) + set_target_properties(invoker_calendar PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_calendar PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_calendar PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${CALENDAR_INVOKER}) + endif() + endif() -# HTTP server invoker + # webrtc invoker -set(USCXML_INVOKERS "httpservlet ${USCXML_INVOKERS}") -file(GLOB_RECURSE HTTPSERVLET_INVOKER - http/*.cpp - http/*.h) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${HTTPSERVLET_INVOKER}) - add_library( - invoker_httpserver SHARED - ${HTTPSERVLET_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_httpserver - uscxml) - set_target_properties(invoker_httpserver PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_httpserver PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_httpserver PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${HTTPSERVLET_INVOKER}) -endif() + if (LIBJINGLE_FOUND) + set(USCXML_INVOKERS "webrtc ${USCXML_INVOKERS}") + file(GLOB_RECURSE WEBRTC_INVOKER + webrtc/*.cpp + webrtc/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${WEBRTC_INVOKER}) + add_library( + invoker_webrtc SHARED + ${WEBRTC_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_webrtc uscxml ${LIBJINGLE_LIBRARIES}) + set_target_properties(invoker_webrtc PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_webrtc PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_webrtc PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${WEBRTC_INVOKER}) + endif() + endif() -# Heartbeat invoker + # location invoker -set(USCXML_INVOKERS "heartbeat ${USCXML_INVOKERS}") -file(GLOB_RECURSE HEARTBEAT_INVOKER - heartbeat/*.cpp - heartbeat/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${HEARTBEAT_INVOKER}) - add_library( - invoker_heartbeat SHARED - ${HEARTBEAT_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_heartbeat uscxml) - set_target_properties(invoker_heartbeat PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_heartbeat PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_heartbeat PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${HEARTBEAT_INVOKER}) -endif() + if (CORELOCATION_LIBRARY AND OFF) + set(USCXML_INVOKERS "location ${USCXML_INVOKERS}") + file(GLOB_RECURSE LOCATION_INVOKER + location/CoreLocation/*.cpp + location/CoreLocation/*.mm + location/CoreLocation/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${LOCATION_INVOKER}) + add_library( + invoker_location SHARED + ${LOCATION_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_location uscxml) + set_target_properties(invoker_location PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_location PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_location PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${LOCATION_INVOKER}) + endif() + endif() -# OpenSceneGraph invoker -if (OPENSCENEGRAPH_FOUND AND OPENGL_FOUND) - set(USCXML_INVOKERS "scenegraph ${USCXML_INVOKERS}") - file(GLOB OPENSCENEGRAPH_INVOKER - graphics/openscenegraph/*.cpp - graphics/openscenegraph/*.h) + # UMUNDO invoker - if (BUILD_AS_PLUGINS) - source_group("" FILES ${OPENSCENEGRAPH_INVOKER}) - add_library( - invoker_openscenegraph SHARED - ${OPENSCENEGRAPH_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_openscenegraph - ${OPENSCENEGRAPH_LIBRARIES} - ${OPENGL_LIBRARIES} - uscxml) - set_target_properties(invoker_openscenegraph PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_openscenegraph PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_openscenegraph PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${OPENSCENEGRAPH_INVOKER}) + if (UMUNDO_FOUND AND PROTOBUF_FOUND) + set(USCXML_INVOKERS "umundo ${USCXML_INVOKERS}") + set(UMUNDO_INVOKER + ${CMAKE_CURRENT_SOURCE_DIR}/umundo/UmundoInvoker.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/umundo/UmundoInvoker.h + ) + if (PROTOBUF_FOUND) + list(APPEND UMUNDO_INVOKER + ${CMAKE_CURRENT_SOURCE_DIR}/umundo/JSON.pb.cc + ${CMAKE_CURRENT_SOURCE_DIR}/umundo/JSON.pb.h + ) + endif() + if (BUILD_AS_PLUGINS) + source_group("" FILES ${UMUNDO_INVOKER}) + # message(FATAL_ERROR "UMUNDO_LIBRARIES: ${UMUNDO_LIBRARIES}") + add_library( + invoker_umundo SHARED + ${UMUNDO_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_umundo uscxml + ${UMUNDO_LIBRARIES}) + if (PROTOBUF_FOUND) + target_link_libraries(invoker_umundo + optimized ${PROTOBUF_LIBRARY} + debug ${PROTOBUF_LIBRARY_DEBUG}) + endif() + set_target_properties(invoker_umundo PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_umundo PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_umundo PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${UMUNDO_INVOKER}) + endif() endif() - set(USCXML_INVOKERS "osgvonvert ${USCXML_INVOKERS}") - file(GLOB OPENSCENEGRAPH_CONVERTER_INVOKER - graphics/openscenegraph/converter/*.cpp - graphics/openscenegraph/converter/*.h) + # HTTP server invoker + + set(USCXML_INVOKERS "httpservlet ${USCXML_INVOKERS}") + file(GLOB_RECURSE HTTPSERVLET_INVOKER + http/*.cpp + http/*.h) if (BUILD_AS_PLUGINS) - source_group("" FILES ${OPENSCENEGRAPH_CONVERTER_INVOKER}) + source_group("" FILES ${HTTPSERVLET_INVOKER}) add_library( - invoker_openscenegraph_convert SHARED - ${OPENSCENEGRAPH_CONVERTER_INVOKER} + invoker_httpserver SHARED + ${HTTPSERVLET_INVOKER} "../Plugins.cpp") - target_link_libraries(invoker_openscenegraph_convert - ${OPENSCENEGRAPH_LIBRARIES} - ${OPENGL_LIBRARIES} + target_link_libraries(invoker_httpserver uscxml) - set_target_properties(invoker_openscenegraph_convert PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_openscenegraph_convert PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_openscenegraph_convert PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + set_target_properties(invoker_httpserver PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_httpserver PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_httpserver PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${OPENSCENEGRAPH_CONVERTER_INVOKER}) + list (APPEND USCXML_FILES ${HTTPSERVLET_INVOKER}) endif() -endif() -# OpenAL modality components - -if (OPENAL_FOUND AND (LIBSNDFILE_FOUND OR AUDIOTOOLBOX_FOUND)) - set(USCXML_INVOKERS "openal ${USCXML_INVOKERS}") - file(GLOB_RECURSE OPENAL_INVOKER - audio/OpenAL*.cpp - audio/OpenAL*.h) - if (LIBSNDFILE_FOUND) - file(GLOB_RECURSE LIBSNDFILE_WRAPPER - audio/LibSoundFile*.cpp - audio/LibSoundFile*.h) - LIST(APPEND OPENAL_INVOKER ${LIBSNDFILE_WRAPPER}) - elseif(AUDIOTOOLBOX_FOUND) - file(GLOB_RECURSE AUDIOTOOLBOX_WRAPPER - audio/AudioToolbox*.mm - audio/AudioToolbox*.h) - LIST(APPEND OPENAL_INVOKER ${AUDIOTOOLBOX_WRAPPER}) - endif() -# message("MILES_INVOKER ${MILES_INVOKER}") + # Heartbeat invoker + set(USCXML_INVOKERS "heartbeat ${USCXML_INVOKERS}") + file(GLOB_RECURSE HEARTBEAT_INVOKER + heartbeat/*.cpp + heartbeat/*.h + ) if (BUILD_AS_PLUGINS) - source_group("" FILES ${OPENAL_INVOKER}) + source_group("" FILES ${HEARTBEAT_INVOKER}) add_library( - invoker_openal SHARED - ${OPENAL_INVOKER} + invoker_heartbeat SHARED + ${HEARTBEAT_INVOKER} "../Plugins.cpp") - if (LIBSNDFILE_FOUND) - target_link_libraries(invoker_openal - ${OPENAL_LIBRARY} - ${LIBSNDFILE_LIBRARY} + target_link_libraries(invoker_heartbeat uscxml) + set_target_properties(invoker_heartbeat PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_heartbeat PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_heartbeat PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${HEARTBEAT_INVOKER}) + endif() + + + # OpenSceneGraph invoker + if (OPENSCENEGRAPH_FOUND AND OPENGL_FOUND) + set(USCXML_INVOKERS "scenegraph ${USCXML_INVOKERS}") + file(GLOB OPENSCENEGRAPH_INVOKER + graphics/openscenegraph/*.cpp + graphics/openscenegraph/*.h) + + if (BUILD_AS_PLUGINS) + source_group("" FILES ${OPENSCENEGRAPH_INVOKER}) + add_library( + invoker_openscenegraph SHARED + ${OPENSCENEGRAPH_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_openscenegraph + ${OPENSCENEGRAPH_LIBRARIES} + ${OPENGL_LIBRARIES} uscxml) - elseif(AUDIOTOOLBOX_FOUND) - target_link_libraries(invoker_openal - ${OPENAL_LIBRARY} - ${AUDIOTOOLBOX}/AudioToolbox + set_target_properties(invoker_openscenegraph PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_openscenegraph PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_openscenegraph PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${OPENSCENEGRAPH_INVOKER}) + endif() + + set(USCXML_INVOKERS "osgvonvert ${USCXML_INVOKERS}") + file(GLOB OPENSCENEGRAPH_CONVERTER_INVOKER + graphics/openscenegraph/converter/*.cpp + graphics/openscenegraph/converter/*.h) + + if (BUILD_AS_PLUGINS) + source_group("" FILES ${OPENSCENEGRAPH_CONVERTER_INVOKER}) + add_library( + invoker_openscenegraph_convert SHARED + ${OPENSCENEGRAPH_CONVERTER_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_openscenegraph_convert + ${OPENSCENEGRAPH_LIBRARIES} + ${OPENGL_LIBRARIES} uscxml) - endif() - set_target_properties(invoker_openal PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_openal PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_openal PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${OPENAL_INVOKER}) + set_target_properties(invoker_openscenegraph_convert PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_openscenegraph_convert PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_openscenegraph_convert PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${OPENSCENEGRAPH_CONVERTER_INVOKER}) + endif() endif() -endif() -# MILES modality components + # OpenAL modality components + + if (OPENAL_FOUND AND (LIBSNDFILE_FOUND OR AUDIOTOOLBOX_FOUND)) + set(USCXML_INVOKERS "openal ${USCXML_INVOKERS}") + file(GLOB_RECURSE OPENAL_INVOKER + audio/OpenAL*.cpp + audio/OpenAL*.h) + if (LIBSNDFILE_FOUND) + file(GLOB_RECURSE LIBSNDFILE_WRAPPER + audio/LibSoundFile*.cpp + audio/LibSoundFile*.h) + LIST(APPEND OPENAL_INVOKER ${LIBSNDFILE_WRAPPER}) + elseif(AUDIOTOOLBOX_FOUND) + file(GLOB_RECURSE AUDIOTOOLBOX_WRAPPER + audio/AudioToolbox*.mm + audio/AudioToolbox*.h) + LIST(APPEND OPENAL_INVOKER ${AUDIOTOOLBOX_WRAPPER}) + endif() + # message("MILES_INVOKER ${MILES_INVOKER}") + + if (BUILD_AS_PLUGINS) + source_group("" FILES ${OPENAL_INVOKER}) + add_library( + invoker_openal SHARED + ${OPENAL_INVOKER} + "../Plugins.cpp") + if (LIBSNDFILE_FOUND) + target_link_libraries(invoker_openal + ${OPENAL_LIBRARY} + ${LIBSNDFILE_LIBRARY} + uscxml) + elseif(AUDIOTOOLBOX_FOUND) + target_link_libraries(invoker_openal + ${OPENAL_LIBRARY} + ${AUDIOTOOLBOX}/AudioToolbox + uscxml) + endif() + set_target_properties(invoker_openal PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_openal PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_openal PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${OPENAL_INVOKER}) + endif() + endif() -if (MILES_FOUND) - set(USCXML_INVOKERS "miles ${USCXML_INVOKERS}") - file(GLOB_RECURSE MILES_INVOKER - miles/*.cpp - miles/*.h) -# message("MILES_INVOKER ${MILES_INVOKER}") - if (BUILD_AS_PLUGINS) - source_group("" FILES ${MILES_INVOKER}) - add_library( - invoker_miles SHARED - ${MILES_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_miles - ${MILES_LIBRARIES} - ${JPEG_LIBRARIES} - uscxml) - if (ICONV_FOUND) - target_link_libraries(invoker_miles ${ICONV_LIBRARIES}) - endif() - if (OPENAL_FOUND) - target_link_libraries(invoker_miles ${OPENAL_LIBRARY}) - endif() - set_target_properties(invoker_miles PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_miles PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_miles PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${MILES_INVOKER}) + # MILES modality components + + if (MILES_FOUND) + set(USCXML_INVOKERS "miles ${USCXML_INVOKERS}") + file(GLOB_RECURSE MILES_INVOKER + miles/*.cpp + miles/*.h) + # message("MILES_INVOKER ${MILES_INVOKER}") + + if (BUILD_AS_PLUGINS) + source_group("" FILES ${MILES_INVOKER}) + add_library( + invoker_miles SHARED + ${MILES_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_miles + ${MILES_LIBRARIES} + ${JPEG_LIBRARIES} + uscxml) + if (ICONV_FOUND) + target_link_libraries(invoker_miles ${ICONV_LIBRARIES}) + endif() + if (OPENAL_FOUND) + target_link_libraries(invoker_miles ${OPENAL_LIBRARY}) + endif() + set_target_properties(invoker_miles PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_miles PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_miles PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${MILES_INVOKER}) + endif() endif() -endif() -# VoiceXML modality components + # VoiceXML modality components -if (UMUNDO_FOUND AND OFF) - set(USCXML_INVOKERS "vxml ${USCXML_INVOKERS}") - file(GLOB_RECURSE VXML_INVOKER - vxml/*.cpp - vxml/*.h - ) - if (BUILD_AS_PLUGINS) - source_group("" FILES ${VXML_INVOKER}) - add_library( - invoker_voicexml SHARED - ${VXML_INVOKER} - "../Plugins.cpp") - target_link_libraries(invoker_voicexml uscxml) - set_target_properties(invoker_voicexml PROPERTIES FOLDER "Plugin Invoker") - set_target_properties(invoker_voicexml PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(invoker_voicexml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") - else() - list (APPEND USCXML_FILES ${VXML_INVOKER}) + if (UMUNDO_FOUND AND OFF) + set(USCXML_INVOKERS "vxml ${USCXML_INVOKERS}") + file(GLOB_RECURSE VXML_INVOKER + vxml/*.cpp + vxml/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${VXML_INVOKER}) + add_library( + invoker_voicexml SHARED + ${VXML_INVOKER} + "../Plugins.cpp") + target_link_libraries(invoker_voicexml uscxml) + set_target_properties(invoker_voicexml PROPERTIES FOLDER "Plugin Invoker") + set_target_properties(invoker_voicexml PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(invoker_voicexml PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${VXML_INVOKER}) + endif() endif() -endif() + +endif() # BUILD_MINIMAL set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE) set(USCXML_FILES ${USCXML_FILES} PARENT_SCOPE) diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h index f6aa77a..f5f8fbd 100644 --- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h +++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h @@ -56,6 +56,10 @@ public: return names; } + virtual bool deleteOnUninvoke() { + return false; + } + virtual Data getDataModelVariables(); virtual void send(const SendRequest& req); virtual void cancel(const std::string sendId); diff --git a/src/uscxml/plugins/ioprocessor/CMakeLists.txt b/src/uscxml/plugins/ioprocessor/CMakeLists.txt index f09a866..3c882ed 100644 --- a/src/uscxml/plugins/ioprocessor/CMakeLists.txt +++ b/src/uscxml/plugins/ioprocessor/CMakeLists.txt @@ -1,42 +1,3 @@ -set(USCXML_IOPROCESSORS "sample ${USCXML_IOPROCESSORS}") -file(GLOB_RECURSE SAMPLE_IOPROCESSOR - sample/*.cpp - sample/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${SAMPLE_IOPROCESSOR}) - add_library( - ioprocessor_sample SHARED - ${SAMPLE_IOPROCESSOR} - "../Plugins.cpp") - target_link_libraries(ioprocessor_sample uscxml) - set_target_properties(ioprocessor_sample PROPERTIES FOLDER "Plugin IOProcessor") - set_target_properties(ioprocessor_sample PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(ioprocessor_sample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${SAMPLE_IOPROCESSOR}) -endif() - -set(USCXML_IOPROCESSORS "comet ${USCXML_IOPROCESSORS}") -file(GLOB_RECURSE COMET_IOPROCESSOR - comet/*.cpp - comet/*.h -) -if (BUILD_AS_PLUGINS) - source_group("" FILES ${COMET_IOPROCESSOR}) - add_library( - ioprocessor_comet SHARED - ${COMET_IOPROCESSOR} - "../Plugins.cpp") - target_link_libraries(ioprocessor_comet uscxml) - set_target_properties(ioprocessor_comet PROPERTIES FOLDER "Plugin IOProcessor") - set_target_properties(ioprocessor_comet PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(ioprocessor_comet PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") -else() - list (APPEND USCXML_FILES ${COMET_IOPROCESSOR}) -endif() - - # LIBEVENT basichttp ioprocessor - this one is already required above set(USCXML_IOPROCESSORS "basichttp ${USCXML_IOPROCESSORS}") @@ -59,7 +20,7 @@ else() endif() -# scxml ioprocessor - this one is already required above +# scxml ioprocessor set(USCXML_IOPROCESSORS "scxml ${USCXML_IOPROCESSORS}") file(GLOB_RECURSE SCXML_IOPROCESSOR @@ -87,46 +48,89 @@ else() endif() -# mmi ioprocessor +if (NOT BUILD_MINIMAL) -if (PROTOBUF_FOUND AND OFF) - - if (NOT PROTOBUF_PROTOC_EXECUTABLE) - message(FATAL_ERROR "protoc binary required for serialization") + set(USCXML_IOPROCESSORS "sample ${USCXML_IOPROCESSORS}") + file(GLOB_RECURSE SAMPLE_IOPROCESSOR + sample/*.cpp + sample/*.h + ) + if (BUILD_AS_PLUGINS) + source_group("" FILES ${SAMPLE_IOPROCESSOR}) + add_library( + ioprocessor_sample SHARED + ${SAMPLE_IOPROCESSOR} + "../Plugins.cpp") + target_link_libraries(ioprocessor_sample uscxml) + set_target_properties(ioprocessor_sample PROPERTIES FOLDER "Plugin IOProcessor") + set_target_properties(ioprocessor_sample PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(ioprocessor_sample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${SAMPLE_IOPROCESSOR}) endif() - set(USCXML_IOPROCESSORS "mmi ${USCXML_IOPROCESSORS}") - file(GLOB_RECURSE MMI_IOPROCESSOR - modality/*.cpp - modality/*.h + set(USCXML_IOPROCESSORS "comet ${USCXML_IOPROCESSORS}") + file(GLOB_RECURSE COMET_IOPROCESSOR + comet/*.cpp + comet/*.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") - if (BUILD_AS_PLUGINS) - source_group("" FILES ${MMI_IOPROCESSOR}) + source_group("" FILES ${COMET_IOPROCESSOR}) add_library( - ioprocessor_mmi SHARED - ${MMI_IOPROCESSOR} + ioprocessor_comet SHARED + ${COMET_IOPROCESSOR} "../Plugins.cpp") - target_link_libraries(ioprocessor_mmi uscxml mmi_proto) - set_target_properties(ioprocessor_mmi PROPERTIES FOLDER "Plugin IOProcessor") - set_target_properties(ioprocessor_mmi PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") - set_target_properties(ioprocessor_mmi PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + target_link_libraries(ioprocessor_comet uscxml) + set_target_properties(ioprocessor_comet PROPERTIES FOLDER "Plugin IOProcessor") + set_target_properties(ioprocessor_comet PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(ioprocessor_comet PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") else() - list (APPEND USCXML_FILES ${MMI_IOPROCESSOR}) - list (APPEND USCXML_OPT_LIBS mmi_proto) + list (APPEND USCXML_FILES ${COMET_IOPROCESSOR}) endif() -endif() + + + # mmi ioprocessor + + if (PROTOBUF_FOUND AND OFF) + + if (NOT PROTOBUF_PROTOC_EXECUTABLE) + message(FATAL_ERROR "protoc binary required for serialization") + endif() + + set(USCXML_IOPROCESSORS "mmi ${USCXML_IOPROCESSORS}") + 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") + + if (BUILD_AS_PLUGINS) + source_group("" FILES ${MMI_IOPROCESSOR}) + add_library( + ioprocessor_mmi SHARED + ${MMI_IOPROCESSOR} + "../Plugins.cpp") + target_link_libraries(ioprocessor_mmi uscxml mmi_proto) + set_target_properties(ioprocessor_mmi PROPERTIES FOLDER "Plugin IOProcessor") + set_target_properties(ioprocessor_mmi PROPERTIES COMPILE_FLAGS "-DPLUMA_EXPORTS") + set_target_properties(ioprocessor_mmi PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}/lib") + else() + list (APPEND USCXML_FILES ${MMI_IOPROCESSOR}) + list (APPEND USCXML_OPT_LIBS mmi_proto) + endif() + endif() + +endif() # BUILD_MINIMAL set(USCXML_INCLUDE_DIRS ${USCXML_INCLUDE_DIRS} PARENT_SCOPE) set(USCXML_OPT_LIBS ${USCXML_OPT_LIBS} PARENT_SCOPE) |