summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/cmake/BuildLibCurl.cmake35
-rw-r--r--contrib/cmake/BuildLibEvent.cmake26
-rw-r--r--contrib/cmake/BuildURIParser.cmake105
-rw-r--r--contrib/patches/uriparser-vs2013/uriparser.vcxproj168
-rw-r--r--contrib/patches/uriparser/CMakeLists.txt14
-rw-r--r--docs/BUILDING.md13
-rw-r--r--src/uscxml/interpreter/BasicContentExecutor.cpp6
-rw-r--r--src/uscxml/interpreter/FastMicroStep.cpp19
-rw-r--r--src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp2
9 files changed, 144 insertions, 244 deletions
diff --git a/contrib/cmake/BuildLibCurl.cmake b/contrib/cmake/BuildLibCurl.cmake
index 61e998a..54bfe4a 100644
--- a/contrib/cmake/BuildLibCurl.cmake
+++ b/contrib/cmake/BuildLibCurl.cmake
@@ -1,19 +1,10 @@
include(ExternalProject)
+if (WIN32)
+ add_definitions("-DCURL_STATICLIB")
+endif()
-if (UNIX)
- externalproject_add(libcurl
- URL https://curl.haxx.se/download/curl-7.48.0.tar.gz
- URL_MD5 b2cac71029d28cb989150bac72aafab5
- BUILD_IN_SOURCE 0
- PREFIX ${CMAKE_BINARY_DIR}/deps/libcurl
- CONFIGURE_COMMAND
- "<SOURCE_DIR>/configure"
- "--without-ssl"
- "--enable-shared"
- "--prefix=<INSTALL_DIR>"
- )
-elseif (WIN32)
+if (MSVC)
# see https://en.wikipedia.org/wiki/Visual_C%2B%2B
set(VC_VERSION 14)
@@ -34,11 +25,7 @@ elseif (WIN32)
elseif (MSVC_VERSION LESS 1900)
set(VC_VERSION 12)
endif()
-
- if (WIN32)
- add_definitions("-DCURL_STATICLIB")
- endif()
-
+
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
externalproject_add(libcurl
URL https://curl.haxx.se/download/curl-7.48.0.tar.gz
@@ -60,6 +47,18 @@ elseif (WIN32)
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory builds/libcurl-vc${VC_VERSION}-x86-release-static-ipv6-sspi-winssl ${CMAKE_BINARY_DIR}/deps/libcurl/
)
endif()
+else()
+ externalproject_add(libcurl
+ URL https://curl.haxx.se/download/curl-7.48.0.tar.gz
+ URL_MD5 b2cac71029d28cb989150bac72aafab5
+ BUILD_IN_SOURCE 0
+ PREFIX ${CMAKE_BINARY_DIR}/deps/libcurl
+ CONFIGURE_COMMAND
+ "<SOURCE_DIR>/configure"
+ "--without-ssl"
+ "--enable-shared"
+ "--prefix=<INSTALL_DIR>"
+ )
endif()
set(LIBCURL_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/libcurl/include)
diff --git a/contrib/cmake/BuildLibEvent.cmake b/contrib/cmake/BuildLibEvent.cmake
index f3bbc66..79fed51 100644
--- a/contrib/cmake/BuildLibEvent.cmake
+++ b/contrib/cmake/BuildLibEvent.cmake
@@ -2,17 +2,7 @@
# see http://tools.cinemapub.be/opendcp/opendcp-0.19-src/contrib/CMakeLists.txt
include(ExternalProject)
-if (UNIX)
- externalproject_add(libevent
- URL https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
- URL_MD5 c4c56f986aa985677ca1db89630a2e11
- BUILD_IN_SOURCE 0
- PREFIX ${CMAKE_BINARY_DIR}/deps/libevent
- CONFIGURE_COMMAND
- CFLAGS=-fPIC <SOURCE_DIR>/configure --enable-static --enable-shared --disable-openssl --prefix=<INSTALL_DIR>
- )
-
-elseif (WIN32)
+if (MSVC)
externalproject_add(libevent
URL https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
@@ -29,6 +19,20 @@ elseif (WIN32)
${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/libevent/include &&
${CMAKE_COMMAND} -E copy Win32-Code/event2/event-config.h ${CMAKE_BINARY_DIR}/deps/libevent/include/event2/
)
+else ()
+ if (UNIX)
+ set(FORCE_FPIC "CFLAGS=-fPIC")
+ endif()
+
+ externalproject_add(libevent
+ URL https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
+ URL_MD5 c4c56f986aa985677ca1db89630a2e11
+ BUILD_IN_SOURCE 0
+ PREFIX ${CMAKE_BINARY_DIR}/deps/libevent
+ CONFIGURE_COMMAND
+ ${FORCE_FPIC} <SOURCE_DIR>/configure --enable-static --enable-shared --disable-openssl --prefix=<INSTALL_DIR>
+ )
+
endif()
set(LIBEVENT_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/libevent/include)
diff --git a/contrib/cmake/BuildURIParser.cmake b/contrib/cmake/BuildURIParser.cmake
index 4df11ed..b6b228b 100644
--- a/contrib/cmake/BuildURIParser.cmake
+++ b/contrib/cmake/BuildURIParser.cmake
@@ -1,48 +1,91 @@
include(ExternalProject)
+
+if (WIN32)
+ set(URIPARSER_LIBNAME "uriparser.lib")
+elseif(UNIX)
+ set(URIPARSER_LIBNAME "liburiparser.a")
+endif()
+
if (UNIX)
+ set(FORCE_FPIC "CFLAGS=-fPIC")
+
externalproject_add(uriparser
URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
BUILD_IN_SOURCE 0
PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
- CONFIGURE_COMMAND
- "CFLAGS=-fPIC"
- "<SOURCE_DIR>/configure"
+ CONFIGURE_COMMAND
+ ${FORCE_FPIC}
+ "<SOURCE_DIR>/configure"
"--disable-test"
"--disable-doc"
"--enable-static"
"--prefix=<INSTALL_DIR>"
)
-elseif(WIN32)
-
- if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
- externalproject_add(uriparser
- URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
- URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
- BUILD_IN_SOURCE 1
- PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
- PATCH_COMMAND
- ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/contrib/patches/uriparser-vs2013 <SOURCE_DIR>/win32/uriparser-vs2013
- CONFIGURE_COMMAND ""
- BUILD_COMMAND cd win32/uriparser-vs2013 && devenv /Upgrade uriparser.vcxproj && msbuild /p:Configuration=Release /p:Platform=x64 /t:build uriparser.vcxproj
- INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib/ && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include
- )
- else()
- set(VSPROJECT_PATH "win32/Visual_Studio_2005")
-
- externalproject_add(uriparser
- URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
- URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
- BUILD_IN_SOURCE 1
- PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
- CONFIGURE_COMMAND ""
- BUILD_COMMAND cd ${VSPROJECT_PATH} && devenv /Upgrade uriparser.vcproj && msbuild /p:Configuration=Release /p:Platform=Win32 /t:build uriparser.vcxproj
- INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib/ && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include
- )
- endif()
-
+else()
+ externalproject_add(uriparser
+ URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
+ URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
+ BUILD_IN_SOURCE 1
+ PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
+ PATCH_COMMAND
+ ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/contrib/patches/uriparser/CMakeLists.txt <SOURCE_DIR>
+ INSTALL_COMMAND
+ ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib &&
+ ${CMAKE_COMMAND} -E copy ${URIPARSER_LIBNAME} ${CMAKE_BINARY_DIR}/deps/uriparser/lib/ &&
+ ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include
+ )
endif()
+
+#
+# if(MSVC)
+#
+# if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+# externalproject_add(uriparser
+# URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
+# URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
+# BUILD_IN_SOURCE 1
+# PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
+# PATCH_COMMAND
+# ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/contrib/patches/uriparser-vs2013 <SOURCE_DIR>/win32/uriparser-vs2013
+# CONFIGURE_COMMAND ""
+# BUILD_COMMAND cd win32/uriparser-vs2013 && devenv /Upgrade uriparser.vcxproj && msbuild /p:Configuration=Release /p:Platform=x64 /t:build uriparser.vcxproj
+# INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib/ && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include
+# )
+# else()
+# set(VSPROJECT_PATH "win32/Visual_Studio_2005")
+#
+# externalproject_add(uriparser
+# URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
+# URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
+# BUILD_IN_SOURCE 1
+# PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
+# CONFIGURE_COMMAND ""
+# BUILD_COMMAND cd ${VSPROJECT_PATH} && devenv /Upgrade uriparser.vcproj && msbuild /p:Configuration=Release /p:Platform=Win32 /t:build uriparser.vcxproj
+# INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib/ && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include
+# )
+# endif()
+#
+# elseif(MINGW)
+# # MinGW
+#
+# externalproject_add(uriparser
+# URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip
+# URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa
+# BUILD_IN_SOURCE 1
+# PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser
+# CONFIGURE_COMMAND ""
+# BUILD_COMMAND
+# cd win32/MinGW &&
+# mingw32-make.exe
+# INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib/ && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include
+# )
+#
+# else ()
+#
+# endif()
+
set(URIPARSER_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/uriparser/include)
if (UNIX)
diff --git a/contrib/patches/uriparser-vs2013/uriparser.vcxproj b/contrib/patches/uriparser-vs2013/uriparser.vcxproj
deleted file mode 100644
index f115185..0000000
--- a/contrib/patches/uriparser-vs2013/uriparser.vcxproj
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{8E2F76A2-59B5-4DF7-8062-EBD6FCF0C8B3}</ProjectGuid>
- <RootNamespace>uriparser</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v120</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v120</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v120</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v120</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Lib>
- <OutputFile>..\uriparser.lib</OutputFile>
- </Lib>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Lib>
- <OutputFile>..\uriparser.lib</OutputFile>
- </Lib>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Lib>
- <OutputFile>..\uriparser.lib</OutputFile>
- </Lib>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Lib>
- <OutputFile>..\uriparser.lib</OutputFile>
- </Lib>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="..\..\include\uriparser\Uri.h" />
- <ClInclude Include="..\..\include\uriparser\UriBase.h" />
- <ClInclude Include="..\..\include\uriparser\UriDefsAnsi.h" />
- <ClInclude Include="..\..\include\uriparser\UriDefsConfig.h" />
- <ClInclude Include="..\..\include\uriparser\UriDefsUnicode.h" />
- <ClInclude Include="..\..\include\uriparser\UriIp4.h" />
- <ClInclude Include="..\..\src\UriCommon.h" />
- <ClInclude Include="..\..\src\UriIp4Base.h" />
- <ClInclude Include="..\..\src\UriNormalizeBase.h" />
- <ClInclude Include="..\..\src\UriParseBase.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\src\UriCommon.c" />
- <ClCompile Include="..\..\src\UriCompare.c" />
- <ClCompile Include="..\..\src\UriEscape.c" />
- <ClCompile Include="..\..\src\UriFile.c" />
- <ClCompile Include="..\..\src\UriIp4.c" />
- <ClCompile Include="..\..\src\UriIp4Base.c" />
- <ClCompile Include="..\..\src\UriNormalize.c" />
- <ClCompile Include="..\..\src\UriNormalizeBase.c" />
- <ClCompile Include="..\..\src\UriParse.c" />
- <ClCompile Include="..\..\src\UriParseBase.c" />
- <ClCompile Include="..\..\src\UriQuery.c" />
- <ClCompile Include="..\..\src\UriRecompose.c" />
- <ClCompile Include="..\..\src\UriResolve.c" />
- <ClCompile Include="..\..\src\UriShorten.c" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/contrib/patches/uriparser/CMakeLists.txt b/contrib/patches/uriparser/CMakeLists.txt
new file mode 100644
index 0000000..2c76992
--- /dev/null
+++ b/contrib/patches/uriparser/CMakeLists.txt
@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 2.8.4)
+project(uriparser)
+
+set(BUILD_SHARED_LIBS OFF)
+
+include_directories(${PROJECT_SOURCE_DIR}/include)
+
+file(GLOB URIPARSER_FILES
+ ${PROJECT_SOURCE_DIR}/src/*.h
+ ${PROJECT_SOURCE_DIR}/src/*.c)
+
+add_library(uriparser ${URIPARSER_FILES})
+
+# set_target_properties(uriparser PROPERTIES PREFIX "")
diff --git a/docs/BUILDING.md b/docs/BUILDING.md
index cf504c3..690d98e 100644
--- a/docs/BUILDING.md
+++ b/docs/BUILDING.md
@@ -20,15 +20,11 @@ For **Makefiles on Unices**, these steps essentially boil down to:
$ git clone git://github.com/tklab-tud/uscxml.git
$ mkdir uscxml/build && cd uscxml/build
- $ cmake ..
- $ make
+ $ cmake .. && make
-On **NMake on Windows**, you may have luck to run the following from a VS2013 or VS2015 command prompt:
+For **MSVC on Windows**, run form a developer command-prompt and substitute the last line above by:
- $ git clone git://github.com/tklab-tud/uscxml.git
- $ mkdir uscxml/build && cd uscxml/build
- $ cmake -G"NMake Makefiles" ..
- $ nmake
+ $ cmake -G "NMake Makefiles" .. && nmake
<b>Note:</b> If you want to build for another IDE or build-system, just create
a new *out-of-source* build directory and start over with CMake. To get an idea
@@ -44,6 +40,9 @@ directory anywhere else. This only applies to the Eclipse CDT project generator.
generator as it croaks when calling SWIG, just have another build directory
with the "NMake Makefiles" project generator.
+<b>Note:</b> In order to compile with `MinGW` on windows you will ave to adapt the build scripts in `contrib/cmake/Build*`. If you succeed, a pull request would be most appreciated.
+
+
\section deps Build Dependencies
Overview of the uSCXML dependencies. See the [Platform Notes](#platform-notes) for details.
diff --git a/src/uscxml/interpreter/BasicContentExecutor.cpp b/src/uscxml/interpreter/BasicContentExecutor.cpp
index 2010ae2..c1eb8f6 100644
--- a/src/uscxml/interpreter/BasicContentExecutor.cpp
+++ b/src/uscxml/interpreter/BasicContentExecutor.cpp
@@ -444,6 +444,9 @@ void BasicContentExecutor::invoke(XERCESC_NS::DOMElement* element) {
// content
std::list<DOMElement*> contents = DOMUtils::filterChildElements(XML_PREFIX(element).str() + "content", element);
if (contents.size() > 0) {
+#if 1
+ invokeEvent.data.node = contents.front();
+#else
Data d = elementAsData(contents.front());
if (d.type == Data::INTERPRETED && d.atom.size() > 0) {
// immediately evaluate!
@@ -451,9 +454,10 @@ void BasicContentExecutor::invoke(XERCESC_NS::DOMElement* element) {
} else {
invokeEvent.data = d;
}
+#endif
}
} catch (Event e) {
- ERROR_EXECUTION_THROW2("Syntax error in send element content", element);
+ ERROR_EXECUTION_THROW2("Syntax error in invoke element content", element);
}
// autoforward
diff --git a/src/uscxml/interpreter/FastMicroStep.cpp b/src/uscxml/interpreter/FastMicroStep.cpp
index fd9f1a9..bf58f7b 100644
--- a/src/uscxml/interpreter/FastMicroStep.cpp
+++ b/src/uscxml/interpreter/FastMicroStep.cpp
@@ -289,19 +289,24 @@ void FastMicroStep::init(XERCESC_NS::DOMElement* scxml) {
DOMNode* parent = _states[i]->element->getParentNode();
if (parent && parent->getNodeType() == DOMNode::ELEMENT_NODE) {
State* uscxmlState = (State*)parent->getUserData(X("uscxmlState"));
- // parent
- _states[i]->parent = uscxmlState->documentOrder;
+ // parent maybe a content element
+ if (uscxmlState != NULL) {
+ _states[i]->parent = uscxmlState->documentOrder;
+ }
}
while(parent && parent->getNodeType() == DOMNode::ELEMENT_NODE) {
State* uscxmlState = (State*)parent->getUserData(X("uscxmlState"));
- // ancestors
- BIT_SET_AT(uscxmlState->documentOrder, _states[i]->ancestors);
+ if (uscxmlState == NULL)
+ break;
- // children
- BIT_SET_AT(i, uscxmlState->children);
- parent = parent->getParentNode();
+ // ancestors
+ BIT_SET_AT(uscxmlState->documentOrder, _states[i]->ancestors);
+
+ // children
+ BIT_SET_AT(i, uscxmlState->children);
+ parent = parent->getParentNode();
}
}
diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
index f80d427..885f70d 100644
--- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
+++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
@@ -146,7 +146,7 @@ void USCXMLInvoker::invoke(const std::string& source, const Event& invokeEvent)
// std::cout << *document << std::endl;
// TODO: where do we get the namespace from?
- _invokedInterpreter = Interpreter::fromDocument(document, _interpreter->getBaseURL());
+ _invokedInterpreter = Interpreter::fromDocument(document, _interpreter->getBaseURL(), false);
} else {
_isActive = false;