http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj 
b/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj
new file mode 100644
index 0000000..4aec14c
--- /dev/null
+++ b/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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>
+  <ItemGroup>
+    <ClCompile Include="..\..\examples\upload\upload.c" />
+    <ClCompile Include="..\..\src\civetweb.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\civetweb.h" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{882EC43C-2EEE-434B-A711-C845678D29C6}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>upload</RootNamespace>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 
Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 
Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 
Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <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>
+  <ImportGroup Label="PropertySheets" 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <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>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(SolutionDir)\$(Configuration)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      
<PreprocessorDefinitions>NO_FILES;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<AdditionalIncludeDirectories>$(ProjectDir)..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      
<PreprocessorDefinitions>NO_FILES;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<AdditionalIncludeDirectories>$(ProjectDir)..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      
<PreprocessorDefinitions>NO_FILES;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<AdditionalIncludeDirectories>$(ProjectDir)..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      
<PreprocessorDefinitions>NO_FILES;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<AdditionalIncludeDirectories>$(ProjectDir)..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj.filters
----------------------------------------------------------------------
diff --git 
a/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj.filters 
b/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj.filters
new file mode 100644
index 0000000..fb2d247
--- /dev/null
+++ b/thirdparty/civetweb-1.10/VisualStudio/upload/upload.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A322342A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52E765}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AA145}</UniqueIdentifier>
+      
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\civetweb.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\examples\upload\upload.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\civetweb.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/_config.yml
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/_config.yml 
b/thirdparty/civetweb-1.10/_config.yml
new file mode 100644
index 0000000..259a24e
--- /dev/null
+++ b/thirdparty/civetweb-1.10/_config.yml
@@ -0,0 +1 @@
+theme: jekyll-theme-tactile
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/appveyor.yml
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/appveyor.yml 
b/thirdparty/civetweb-1.10/appveyor.yml
new file mode 100644
index 0000000..87455a2
--- /dev/null
+++ b/thirdparty/civetweb-1.10/appveyor.yml
@@ -0,0 +1,386 @@
+version: '{build}'
+
+
+build:
+# no automatic build in script mode
+
+
+skip_commits:
+  # Builds just testing something on Travis CI don't need to be 
+  # done on AppVeyor
+  message: /\[Travis\]/
+  # Dont build, if only documentation was changed
+  files:
+  - '**/*.md'
+
+
+environment:
+  enable_cxx: NO
+  enable_ssl_dynamic_loading: YES
+  enable_lua: NO
+  enable_lua_shared: NO
+  c_standard: auto
+  cxx_standard: auto
+  matrix:
+    # Use default values
+    - id: Default-x86
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Default-x64
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Use default values
+    - id: Full-x86
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Full-x64
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Debug builds
+    - id: Full-x86-Debug
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Debug
+      platform: x86
+    - id: Full-x64-Debug
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Debug
+      platform: x64
+    # Minimum settings
+    - id: Minimal-x86
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: YES
+      enable_ipv6: NO
+      enable_ssl: NO
+      enable_websockets: NO
+      no_cgi: YES
+      no_caching: YeS
+      configuration: Release
+      platform: x86
+    - id: Minimal-x64
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: YES
+      enable_ipv6: NO
+      enable_ssl: NO
+      enable_websockets: NO
+      no_cgi: YES
+      no_caching: YeS
+      configuration: Release
+      platform: x64
+    # Test shared and debug build
+    - id: Shared-default-x86
+      compiler: msvc-19-seh
+      build_shared: YES
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Shared-default-x64
+      compiler: msvc-19-seh
+      build_shared: YES
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # MinGW
+    - id: Full-GCC-x64
+      compiler: gcc-5.1.0-posix
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Visual Studio 2010
+    - id: Full-VS2010-x86
+      compiler: msvc-16-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    # Visual Studio 2012
+    - id: Full-VS2012-x86
+      compiler: msvc-17-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    # Visual Studio 2013
+    - id: Full-VS2013-x86
+      compiler: msvc-18-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Full-VS2013-x64
+      compiler: msvc-18-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Visual Studio 2015 is default
+    # Visual Studio 2017 is not yet default
+    - id: Full-VS2017-x86
+      compiler: msvc-20-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+    - id: Full-VS2017-x64
+      compiler: msvc-20-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+
+
+install:
+  # Derive some extra information
+  - set build_type=%configuration%
+  - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set 
"compiler_name=%%a")
+  - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set 
"compiler_version=%%b")
+  - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set 
"compiler_threading=%%c")
+  - if "%platform%"=="x64" (set arch=x86_64)
+  - if "%platform%"=="x86" (set arch=i686)
+  # Download the specific version of MinGW
+  - if "%compiler_name%"=="gcc" (@set "mingw_output_folder=C:\mingw-builds")
+  - if "%compiler_name%"=="gcc" (
+      @for /f %%a in (
+        'call mingw.cmd
+          /version "%compiler_version%"
+          /arch "%arch%"
+          /threading "%compiler_threading%"
+          "%mingw_output_folder%"'
+      ) do @set "compiler_path=%%a"
+    )
+  - if "%compiler_name%"=="gcc" (@set 
"mingw_log_folder=%mingw_output_folder%\logs")
+  - if exist "%mingw_log_folder%" @for /f %%f in ('dir /b /oD /tc 
"%mingw_log_folder%"') do @set "mingw_log_file=%mingw_log_folder%\%%f"
+  - if exist "%mingw_log_file%" powershell Push-AppveyorArtifact 
"%mingw_log_file%" -FileName mingw-download.log
+  # Get OpenSSL
+  #
+  # OpenSSL should already be installed, according to
+  # - 
http://help.appveyor.com/discussions/questions/1132-openssl-installation-issues
+  # - https://github.com/appveyor/ci/issues/576
+  #
+  - cmd: set PATH=%PATH%;C:\OpenSSL-Win32;C:\OpenSSL-Win64
+  - dir C:\OpenSSL-Win32
+  - dir C:\OpenSSL-Win64
+  - path
+
+
+before_build:
+  # Remove sh.exe from the path otherwise CMake will complain:
+  # "sh.exe was found in your PATH, here: C:/Program Files/Git/usr/bin/sh.exe"
+  # and the MinGW build will not work (the Visual Studio build does not care).
+  # See 
http://help.appveyor.com/discussions/problems/3193-cmake-building-for-mingw-issue-with-git-shexe
+  # The entire directory containing sh.exe could be removed from the PATH 
environment:
+  # - set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
+  # However, this will also remove all other programs in this directory from 
the PATH.
+  # In particular "patch" is still required.
+  # So, just rename sh.exe:
+  - ren "C:\Program Files\Git\usr\bin\sh.exe" _sh.exe
+  # Set up mingw commands
+  - if "%compiler_name%"=="gcc" (set "generator=MinGW Makefiles")
+  - if "%compiler_name%"=="gcc" (set "build=mingw32-make -j4")
+  - if "%compiler_name%"=="gcc" (set "test=mingw32-make test")
+  # MSVC specific commands
+  # Note: The minimum version officially supported for CivetWeb is VS2010. 
Older ones might work or not.
+  - if "%compiler_version%"=="14" (set "vs_version=8" & set "vs_year=2005")
+  - if "%compiler_version%"=="15" (set "vs_version=9" & set "vs_year=2008")
+  - if "%compiler_version%"=="16" (set "vs_version=10" & set "vs_year=2010")
+  - if "%compiler_version%"=="17" (set "vs_version=11" & set "vs_year=2012")
+  - if "%compiler_version%"=="18" (set "vs_version=12" & set "vs_year=2013")
+  - if "%compiler_version%"=="19" (set "vs_version=14" & set "vs_year=2015")
+  - if "%compiler_version%"=="20" (set "vs_version=15" & set "vs_year=2017")
+  - if "%compiler_name%"=="msvc" (set "generator=Visual Studio %vs_version% 
%vs_year%")
+  - if "%compiler_name%"=="msvc" (
+      if "%platform%"=="x64" (
+        set "generator=%generator% Win64"
+      )
+    )
+  - if %compiler_version% gtr 9 (set platform=%platform:x86=Win32%)
+  - if "%compiler_name%"=="msvc" (set 
"msbuild_opts=/clp:OnlyErrors;OnlyWarnings /nologo /m /v:m")
+  - if "%compiler_name%"=="msvc" (set "build=msbuild %msbuild_opts% 
/p:Configuration=%configuration% /p:Platform=%platform% civetweb.sln")
+  - if "%compiler_name%"=="msvc" (set "test=msbuild %msbuild_opts% 
RUN_TESTS.vcxproj")
+  # Add the compiler path if needed
+  - if not "%compiler_path%"=="" (set "PATH=%PATH%;%compiler_path%")
+  # git bash conflicts with MinGW makefiles
+  - if "%generator%"=="MinGW Makefiles" (set "PATH=%PATH:C:\Program Files 
(x86)\Git\bin=%")
+  # Useful locations
+  - set "source_path=%cd%"
+  - set "output_path=%source_path%\output"
+  - set "build_path=%output_path%\build"
+  - set "install_path=%output_path%\install"
+  - set "third_party_dir=C:\third-party"
+  # Check some settings of the build server
+  - ver
+  - cd
+  - dir
+  - ipconfig /all
+  # Generate the build scripts with CMake
+  - mkdir "%build_path%"
+  - cd "%build_path%"
+  - cmake --version
+  - appveyor AddMessage -Category Information "Generating '%generator%'"
+  - cmake
+    -G "%generator%"
+    -DCMAKE_BUILD_TYPE=%build_type%
+    -DBUILD_SHARED_LIBS=%build_shared%
+    -DCIVETWEB_SERVE_NO_FILES=%no_files%
+    "-DCIVETWEB_THIRD_PARTY_DIR=%third_party_dir:\=\\%"
+    -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES
+    -DCIVETWEB_ENABLE_SSL=%enable_ssl%
+    -DCIVETWEB_DISABLE_CGI=%no_cgi%
+    -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=%enable_ssl_dynamic_loading%
+    -DCIVETWEB_ENABLE_WEBSOCKETS=%enable_websockets%
+    -DCIVETWEB_ENABLE_CXX=%enable_cxx%
+    -DCIVETWEB_ENABLE_LUA=%enable_lua%
+    -DCIVETWEB_ENABLE_LUA_SHARED=%enable_lua_shared%
+    -DCIVETWEB_DISABLE_CACHING=%no_caching%
+    -DCIVETWEB_C_STANDARD=%c_standard%
+    -DCIVETWEB_CXX_STANDARD=%cxx_standard%
+    "%source_path%"
+  - powershell Push-AppveyorArtifact CMakeCache.txt
+  - cd "%source_path%"
+
+build_script:
+  - cd
+  - cd "%build_path%"
+  - appveyor AddMessage -Category Information "Build command '%build%'"
+  - cmd /c "%build%"
+  - cd "%source_path%"
+
+test_script:
+  - cd "%build_path%"
+  - appveyor AddMessage -Category Information "Test command '%build%'"
+  - set CTEST_OUTPUT_ON_FAILURE=1
+  - cmd /c "%test%"
+  - cd "%source_path%"
+
+  - set "output_path=%source_path%\output"
+  - set "build_path=%output_path%\build"
+  - set "install_path=%output_path%\install"
+  - set "third_party_dir=C:\third-party"
+
+after_test:
+  - echo "Current directory:"
+  - cd
+  - dir
+  - md dist
+  - if "%build_type%"=="Release" (cmake 
"-DCMAKE_INSTALL_PREFIX=%install_path%" -P "%build_path%/cmake_install.cmake")
+  - dir dist\
+  - echo "Output directory:"
+  - dir %output_path%
+  - echo "Build directory:"
+  - dir %build_path%
+  - if "%build_type%"=="Release" (echo "Install directory:")
+  - if "%build_type%"=="Release" (dir %install_path%)
+  - if "%build_type%"=="Release" (dir %install_path%\bin)
+  - if "%build_type%"=="Release" (dir %install_path%\include)
+  - if "%build_type%"=="Release" (dir %install_path%\lib)
+  - if "%build_type%"=="Release" (copy "%install_path%"\include dist\)
+  - if "%build_type%"=="Release" (copy "%install_path%"\bin\*.exe dist\)
+  - echo "Dist directory:"
+  - dir dist\
+
+matrix:
+  fast_finish: false
+
+cache:
+  - C:\mingw-builds -> mingw.cmd
+  - C:\third-party -> **\CMakeLists.txt
+  - C:\ssl
+
+artifacts:
+  - path: dist\*
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/build.cmd
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/build.cmd 
b/thirdparty/civetweb-1.10/build.cmd
new file mode 100644
index 0000000..8ccf0e4
--- /dev/null
+++ b/thirdparty/civetweb-1.10/build.cmd
@@ -0,0 +1,866 @@
+:: Make sure the extensions are enabled
+@verify other 2>nul
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  call :print_usage "Failed to enable extensions"
+  exit /b 1
+)
+
+::Change the code page to unicode
+@chcp 65001 1>nul 2>nul
+@if errorlevel 1 (
+  call :print_usage "Failed to change the code page to unicode"
+  exit /b 1
+)
+
+:: Set up some global variables
+@set project=civetweb
+@set "script_name=%~nx0"
+@set "script_folder=%~dp0"
+@set "script_folder=%script_folder:~0,-1%"
+@set "output_path=%script_folder%\output"
+@set "build_path=%output_path%\build"
+@set "install_path=%output_path%\install"
+@set build_shared=OFF
+@set build_type=Release
+@set dependency_path=%TEMP%\%project%-build-dependencies
+
+:: Check the command line parameters
+@set logging_level=1
+@set "options=%* "
+@if not "!options!"=="!options:/? =!" set usage="Convenience script to build 
%project% with CMake"
+@for %%a in (%options%) do @(
+  @set arg=%%~a
+  @set arg=!arg: =!
+  @set one=!arg:~0,1!
+  @set two=!arg:~0,2!
+  @if /i [!arg!] == [/q] set quiet=true
+  @if /i [!two!] == [/v] call :verbosity "!arg!"
+  @if /i [!arg!] == [/s] set build_shared=ON
+  @if /i [!arg!] == [/d] set build_type=Debug
+  @if /i not [!one!] == [/] (
+    if not defined generator (
+      set generator=!arg!
+    ) else (
+      set usage="Too many generators: !method! !arg!" ^
+                "There should only be one generator parameter"
+    )
+  )
+)
+@if defined quiet (
+  set logging_level=0
+)
+@if not defined generator (
+  set generator=MSVC
+)
+@if /i not [%generator%] == [MinGW] (
+  if /i not [%generator%] == [MSVC] (
+    call :print_usage "Invalid argument: %generator%"
+    exit /b 1
+  )
+)
+
+:: Set up the logging
+@set log_folder=%output_path%\logs
+@call :iso8601 timestamp
+@set log_path=%log_folder%\%timestamp%.log
+@set log_keep=10
+
+:: Only keep a certain amount of logs
+@set /a "log_keep=log_keep-1"
+@if not exist %log_folder% @mkdir %log_folder%
+@for /f "skip=%log_keep%" %%f in ('dir /b /o-D /tc %log_folder%') do @(
+  call :log 4 "Removing old log file %log_folder%\%%f"
+  del %log_folder%\%%f
+)
+
+:: Set up some more global variables
+@call :architecture arch
+@call :windows_version win_ver win_ver_major win_ver_minor win_ver_rev
+@call :script_source script_source
+@if [%script_source%] == [explorer] (
+  set /a "logging_level=logging_level+1"
+)
+
+:: Print the usage or start the script
+@set exit_code=0
+@if defined usage (
+  call :print_usage %usage%
+) else (
+  call :main
+  @if errorlevel 1 (
+    @call :log 0 "Failed to build the %project% project"
+    @set exit_code=1
+  )
+)
+
+:: Tell the user where the built files are
+@call :log 5
+@call :log 0 "The built files are available in %install_path%"
+
+:: Stop the script if the user double clicked
+@if [%script_source%] == [explorer] (
+  pause
+)
+
+@exit /b %exit_code%
+@endlocal
+@goto :eof
+
+:: -------------------------- Functions start here ----------------------------
+
+:main - Main function that performs the build
+@setlocal
+@call :log 6
+@call :log 2 "Welcome to the %project% build script"
+@call :log 6 "------------------------------------"
+@call :log 6
+@call :log 2 "This script builds the project using CMake"
+@call :log 6
+@call :log 2 "Generating %generator%..."
+@call :log 6
+@set methods=dependencies ^
+             generate ^
+             build ^
+             install
+@for %%m in (%methods%) do @(
+  call :log 3 "Excuting the '%%m' method"
+  call :log 8
+  call :%%~m
+  if errorlevel 1 (
+    call :log 0 "Failed to complete the '%%~m' dependency routine"
+    call :log 0 "View the log at %log_path%"
+    exit /b 1
+  )
+)
+@call :log 6 "------------------------------------"
+@call :log 2 "Build complete"
+@call :log 6
+@endlocal
+@goto :eof
+
+:print_usage - Prints the usage of the script
+:: %* - message to print, each argument on it's own line
+@setlocal
+@for %%a in (%*) do @echo.%%~a
+@echo.
+@echo.build [/?][/v[v...]^|/q][MinGW^|MSVC]
+@echo.
+@echo.  [MinGW^|(MSVC)]
+@echo.              Builds the library with one of the compilers
+@echo.  /s          Builds shared libraries
+@echo.  /d          Builds a debug variant of the project
+@echo.  /v          Sets the output to be more verbose
+@echo.  /v[v...]    Extra verbosity, /vv, /vvv, etc
+@echo.  /q          Quiets the output
+@echo.  /?          Shows this usage message
+@echo.
+@endlocal
+@goto :eof
+
+:dependencies - Installs any prerequisites for the build
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  call :log 0 "Failed to enable extensions"
+  exit /b 1
+)
+@call :log 5
+@call :log 0 "Installing dependencies for %generator%"
+@if /i [%generator%] == [MinGW] (
+  call :mingw compiler_path
+  @if errorlevel 1 (
+    @call :log 5
+    @call :log 0 "Failed to find MinGW"
+    @exit /b 1
+  )
+  set "PATH=!compiler_path!;%PATH%"
+  @call :find_in_path gcc_executable gcc.exe
+  @if errorlevel 1 (
+    @call :log 5
+    @call :log 0 "Failed to find gcc.exe"
+    @exit /b 1
+  )
+)
+@if [%reboot_required%] equ [1] call :reboot
+@endlocal & set "PATH=%PATH%"
+@goto :eof
+
+:generate - Uses CMake to generate the build files
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  call :log 0 "Failed to enable extensions"
+  exit /b 1
+)
+@call :log 5
+@call :log 0 "Generating CMake files for %generator%"
+@call :cmake cmake_executable
+@if errorlevel 1 (
+  @call :log 5
+  @call :log 0 "Need CMake to create the build files"
+  @exit /b 1
+)
+@if /i [%generator%] == [MinGW] @(
+  @set "generator_var=-G "MinGW Makefiles^""
+)
+@if /i [%generator%] == [MSVC] @(
+  rem We could figure out the correct MSVS generator here
+)
+@call :iso8601 iso8601
+@set output=%temp%\cmake-%iso8601%.log
+@if not exist %build_path% mkdir %build_path%
+@cd %build_path%
+@"%cmake_executable%" ^
+  !generator_var! ^
+  -DCMAKE_BUILD_TYPE=!build_type! ^
+  -DBUILD_SHARED_LIBS=!build_shared! ^
+  "%script_folder%" > "%output%"
+@if errorlevel 1 (
+  @call :log 5
+  @call :log 0 "Failed to generate build files with CMake"
+  @call :log_append "%output%"
+  @cd %script_folder%
+  @exit /b 1
+)
+@cd %script_folder%
+@endlocal
+@goto :eof
+
+:build - Builds the library
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  call :log 0 "Failed to enable extensions"
+  exit /b 1
+)
+@call :log 5
+@call :log 0 "Building %project% with %generator%"
+@if /i [%generator%] == [MinGW] @(
+  @call :find_in_path mingw32_make_executable mingw32-make.exe
+  @if errorlevel 1 (
+    @call :log 5
+    @call :log 0 "Failed to find mingw32-make"
+    @exit /b 1
+  )
+  @set "build_command=^"!mingw32_make_executable!^" all test"
+)
+@if /i [%generator%] == [MSVC] @(
+  @call :msbuild msbuild_executable
+  @if errorlevel 1 (
+    @call :log 5
+    @call :log 0 "Failed to find MSBuild"
+    @exit /b 1
+  )
+  @set "build_command=^"!msbuild_executable!^" /m:4 
/p:Configuration=%build_type% %project%.sln"
+)
+@if not defined build_command (
+  @call :log 5
+  @call :log 0 "No build command for %generator%"
+  @exit /b 1
+)
+@cd %build_path%
+@call :iso8601 iso8601
+@set output=%temp%\build-%iso8601%.log
+@call :log 7
+@call :log 2 "Build command: %build_command:"=%"
+@%build_command% > "%output%"
+@if errorlevel 1 (
+  @call :log_append "%output%"
+  @call :log 5
+  @call :log 0 "Failed to complete the build"
+  @exit /b 1
+)
+@call :log_append "%output%"
+@cd %script_folder%
+@endlocal
+@goto :eof
+
+:install - Installs the built files
+@setlocal
+@call :log 5
+@call :log 0 "Installing built files"
+@call :cmake cmake_executable
+@if errorlevel 1 (
+  @call :log 5
+  @call :log 0 "Need CMake to install the built files"
+  @exit /b 1
+)
+@call :iso8601 iso8601
+@set output=%temp%\install-%iso8601%.log
+@"%cmake_executable%" ^
+  "-DCMAKE_INSTALL_PREFIX=%install_path%" ^
+  -P "%build_path%/cmake_install.cmake" ^
+  > "%output%"
+@if errorlevel 1 (
+  @call :log_append "%output%"
+  @call :log 5
+  @call :log 0 "Failed to install the files"
+  @exit /b 1
+)
+@call :log_append "%output%"
+@endlocal
+@goto :eof
+
+:script_source - Determines if the script was ran from the cli or explorer
+:: %1 - The return variable [cli|explorer]
+@verify other 2>nul
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  call :log 0 "Failed to enable extensions"
+  exit /b 1
+)
+@call :log 3 "Attempting to detect the script source"
+@echo "The invocation command was: '%cmdcmdline%'" >> %log_path%
+@for /f "tokens=1-3,*" %%a in ("%cmdcmdline%") do @(
+  set cmd=%%~a
+  set arg1=%%~b
+  set arg2=%%~c
+  set rest=%%~d
+)
+@set quote="
+@if "!arg2:~0,1!" equ "!quote!" (
+  if "!arg2:~-1!" neq "!quote!" (
+    set "arg2=!arg2:~1!"
+  )
+)
+@call :log 4 "cmd  = %cmd%"
+@call :log 4 "arg1 = %arg1%"
+@call :log 4 "arg2 = %arg2%"
+@call :log 4 "rest = %rest%"
+@call :log 4 "src  = %~f0"
+@if /i "%arg2%" == "call" (
+  set script_source=cli
+) else (
+  @if /i "%arg1%" == "/c" (
+    set script_source=explorer
+  ) else (
+    set script_source=cli
+  )
+)
+@call :log 3 "The script was invoked from %script_source%"
+@endlocal & set "%~1=%script_source%"
+@goto :eof
+
+:architecture - Finds the system architecture
+:: %1 - The return variable [x86|x86_64]
+@setlocal
+@call :log 3 "Determining the processor architecture"
+@set "key=HKLM\System\CurrentControlSet\Control\Session Manager\Environment"
+@set "var=PROCESSOR_ARCHITECTURE"
+@for /f "skip=2 tokens=2,*" %%a in ('reg query "%key%" /v "%var%"') do @set 
"arch=%%b"
+@if "%arch%" == "AMD64" set arch=x86_64
+@call :log 4 "arch = %arch%"
+@endlocal & set "%~1=%arch%"
+@goto :eof
+
+:md5 - Gets the MD5 checksum for a file
+:: %1 - The hash
+:: %2 - The file path
+@setlocal
+@set var=%~1
+@set file_path=%~2
+@if [%var%] == [] exit /b 1
+@if "%file_path%" == "" exit /b 1
+@if not exist "%file_path%" exit /b 1
+@for /f "skip=3 tokens=1,*" %%a in ('powershell Get-FileHash -Algorithm MD5 
"'%file_path%'"') do @set hash=%%b
+@if not defined hash (
+  call :log 6
+  call :log 0 "Failed to get MD5 hash for %file_path%"
+  exit /b 1
+)
+@endlocal & set "%var%=%hash: =%"
+@goto :eof
+
+:windows_version - Checks the windows version
+:: %1 - The windows version
+:: %2 - The major version number return variable
+:: %3 - The minor version number return variable
+:: %4 - The revision version number return variable
+@setlocal
+@call :log 3 "Retrieving the Windows version"
+@for /f "tokens=2 delims=[]" %%x in ('ver') do @set win_ver=%%x
+@set win_ver=%win_ver:Version =%
+@set win_ver_major=%win_ver:~0,1%
+@set win_ver_minor=%win_ver:~2,1%
+@set win_ver_rev=%win_ver:~4%
+@call :log 4 "win_ver = %win_ver%"
+@endlocal & set "%~1=%win_ver%" ^
+          & set "%~2=%win_ver_major%" ^
+          & set "%~3=%win_ver_minor%" ^
+          & set "%~4=%win_ver_rev%"
+@goto :eof
+
+:find_in_path - Finds a program of file in the PATH
+@setlocal
+@set var=%~1
+@set file=%~2
+@if [%var%] == [] exit /b 1
+@if [%file%] == [] exit /b 1
+@call :log 3 "Searching PATH for %file%"
+@for %%x in ("%file%") do @set "file_path=%%~f$PATH:x"
+@if not defined file_path exit /b 1
+@endlocal & set "%var%=%file_path%"
+@goto :eof
+
+:administrator_check - Checks for administrator priviledges
+@setlocal
+@call :log 2 "Checking for administrator priviledges"
+@set "key=HKLM\Software\VCA\Tool Chain\Admin Check"
+@reg add "%key%" /v Elevated /t REG_DWORD /d 1 /f > nul 2>&1
+@if errorlevel 1 exit /b 1
+@reg delete "%key%" /va /f > nul 2>&1
+@endlocal
+@goto :eof
+
+:log_append - Appends another file into the current logging file
+:: %1 - the file_path to the file to concatenate
+@setlocal
+@set "file_path=%~1"
+@if [%file_path%] == [] exit /b 1
+@call :log 3 "Appending to log: %file_path%"
+@call :iso8601 iso8601
+@set "temp_log=%temp%\append-%iso8601%.log"
+@call :log 4 "Using temp file %temp_log%"
+@type "%log_path%" "%file_path%" > "%temp_log%" 2>nul
+@move /y "%temp_log%" "%log_path%" 1>nul
+@del "%file_path%" 2>nul
+@del "%temp_log%" 2>nul
+@endlocal
+@goto :eof
+
+:iso8601 - Returns the current time in ISO8601 format
+:: %1 - the return variable
+:: %2 - format [extended|basic*]
+:: iso8601 - contains the resulting timestamp
+@setlocal
+@wmic Alias /? >NUL 2>&1 || @exit /b 1
+@set "var=%~1"
+@if "%var%" == "" @exit /b 1
+@set "format=%~2"
+@if "%format%" == "" set format=basic
+@for /F "skip=1 tokens=1-6" %%g IN ('wmic Path Win32_UTCTime Get 
Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') do @(
+  @if "%%~l"=="" goto :iso8601_done
+  @set "yyyy=%%l"
+  @set "mm=00%%j"
+  @set "dd=00%%g"
+  @set "hour=00%%h"
+  @set "minute=00%%i"
+  @set "seconds=00%%k"
+)
+:iso8601_done
+@set mm=%mm:~-2%
+@set dd=%dd:~-2%
+@set hour=%hour:~-2%
+@set minute=%minute:~-2%
+@set seconds=%seconds:~-2%
+@if /i [%format%] == [extended] (
+  set iso8601=%yyyy%-%mm%-%dd%T%hour%:%minute%:%seconds%Z
+) else (
+  if /i [%format%] == [basic] (
+    set iso8601=%yyyy%%mm%%dd%T%hour%%minute%%seconds%Z
+  ) else (
+    @exit /b 1
+  )
+)
+@set iso8601=%iso8601: =0%
+@endlocal & set %var%=%iso8601%
+@goto :eof
+
+:verbosity - Processes the verbosity parameter '/v[v...]
+:: %1 - verbosity given on the command line
+:: logging_level - set to the number of v's
+@setlocal
+@set logging_level=0
+@set verbosity=%~1
+:verbosity_loop
+@set verbosity=%verbosity:~1%
+@if not [%verbosity%] == [] @(
+  set /a "logging_level=logging_level+1"
+  goto verbosity_loop
+)
+@endlocal & set logging_level=%logging_level%
+@goto :eof
+
+:log - Logs a message, depending on verbosity
+:: %1 - level
+::       [0-4] for CLI logging
+::       [5-9] for GUI logging
+:: %2 - message to print
+@setlocal
+@set "level=%~1"
+@set "msg=%~2"
+@if "%log_folder%" == "" (
+  echo Logging was used to early in the script, log_folder isn't set yet
+  goto :eof
+)
+@if "%log_path%" == "" (
+  echo Logging was used to early in the script, log_path isn't set yet
+  goto :eof
+)
+@if not exist "%log_folder%" mkdir "%log_folder%"
+@if not exist "%log_path%" echo. 1>nul 2>"%log_path%"
+@echo.%msg% >> "%log_path%"
+@if %level% geq 5 (
+  @if [%script_source%] == [explorer] (
+    set /a "level=level-5"
+  ) else (
+    @goto :eof
+  )
+)
+@if "%logging_level%" == "" (
+  echo Logging was used to early in the script, logging_level isn't set yet
+  goto :eof
+)
+@if %logging_level% geq %level% echo.%msg% 1>&2
+@endlocal
+@goto :eof
+
+
+:start_browser - Opens the default browser to a URL
+:: %1 - the url to open
+@setlocal
+@set url=%~1
+@call :log 4 "Opening default browser: %url%"
+@start %url%
+@endlocal
+@goto :eof
+
+:find_cmake - Finds cmake on the command line or in the registry
+:: %1 - the cmake file path
+@setlocal
+@set var=%~1
+@if [%var%] == [] exit /b 1
+@call :log 6
+@call :log 6 "Finding CMake"
+@call :log 6 "--------------"
+@call :find_in_path cmake_executable cmake.exe
+@if not errorlevel 1 goto found_cmake
+@for /l %%i in (5,-1,0) do @(
+@for /l %%j in (9,-1,0) do @(
+@for /l %%k in (9,-1,0) do @(
+@for %%l in (HKCU HKLM) do @(
+@for %%m in (SOFTWARE SOFTWARE\Wow6432Node) do @(
+  @reg query "%%l\%%m\Kitware\CMake %%i.%%j.%%k" /ve > nul 2>nul
+  @if not errorlevel 1 (
+    @for /f "skip=2 tokens=2,*" %%a in ('reg query "%%l\%%m\Kitware\CMake 
%%i.%%j.%%k" /ve') do @(
+      @if exist "%%b\bin\cmake.exe" (
+        @set "cmake_executable=%%b\bin\cmake.exe"
+        goto found_cmake
+      )
+    )
+  )
+)))))
+@call :log 5
+@call :log 0 "Failed to find cmake"
+@exit /b 1
+:found_cmake
+@endlocal & set "%var%=%cmake_executable%"
+@goto :eof
+
+:cmake - Finds cmake and installs it if necessary
+:: %1 - the cmake file path
+@setlocal
+@set var=%~1
+@if [%var%] == [] exit /b 1
+@call :log 6
+@call :log 6 "Checking for CMake"
+@call :log 6 "------------------"
+@call :find_cmake cmake_executable cmake.exe
+@if not errorlevel 1 goto got_cmake
+@set checksum=C00267A3D3D9619A7A2E8FA4F46D7698
+@set version=3.2.2
+@call :install_nsis cmake 
http://www.cmake.org/files/v%version:~0,3%/cmake-%version%-win32-x86.exe 
%checksum%
+@if errorlevel 1 (
+  call :log 5
+  call :log 0 "Failed to install cmake"
+  @exit /b 1
+)
+@call :find_cmake cmake_executable cmake.exe
+@if not errorlevel 1 goto got_cmake
+@call :log 5
+@call :log 0 "Failed to check for cmake"
+@exit /b 1
+:got_cmake
+@endlocal & set "%var%=%cmake_executable%"
+@goto :eof
+
+:mingw - Finds MinGW, installing it if needed
+:: %1 - the compiler path that should be added to PATH
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  @call :log 5
+  @call :log 0 "Failed to enable extensions"
+  @exit /b 1
+)
+@set var=%~1
+@if [%var%] == [] exit /b 1
+@call :log 6
+@call :log 6 "Checking for MinGW"
+@call :log 6 "------------------"
+@call :find_in_path gcc_executable gcc.exe
+@if not errorlevel 1 (
+  @for %%a in ("%gcc_executable%") do @set "compiler_path=%%~dpa"
+  goto got_mingw
+)
+@call :log 7
+@call :log 2 "Downloading MinGW"
+@if %logging_level% leq 1 set "logging=/q"
+@if %logging_level% gtr 1 set "logging=/v"
+@set output_path=
+@for /f %%a in ('call
+    "%script_folder%\mingw.cmd"
+    %logging%
+    /arch "%arch%"
+    "%dependency_path%"'
+) do @set "compiler_path=%%a\"
+@if not defined compiler_path (
+  @call :log_append "%output%"
+  @call :log 5
+  @call :log 0 "Failed to download MinGW"
+  @exit /b 1
+)
+:got_mingw
+@call :log 5
+@call :log 0 "Found MinGW: %compiler_path%gcc.exe"
+@endlocal & set "%var%=%compiler_path%"
+@goto :eof
+
+:msbuild - Finds MSBuild
+:: %1 - the path to MSBuild executable
+@setlocal
+@set var=%~1
+@if [%var%] == [] exit /b 1
+@call :find_in_path msbuild_executable msbuild.exe
+@if not errorlevel 1 goto got_msbuild
+@for /l %%i in (20,-1,4) do @(
+@for /l %%j in (9,-1,0) do @(
+@for %%k in (HKCU HKLM) do @(
+@for %%l in (SOFTWARE SOFTWARE\Wow6432Node) do @(
+  @reg query "%%k\%%l\Microsoft\MSBuild\%%i.%%j" /v MSBuildOverrideTasksPath > 
nul 2>nul
+  @if not errorlevel 1 (
+    @for /f "skip=2 tokens=2,*" %%a in ('reg query 
"%%k\%%l\Microsoft\MSBuild\%%i.%%j" /v MSBuildOverrideTasksPath') do @(
+      @if exist "%%bmsbuild.exe" (
+        @set "msbuild_executable=%%bmsbuild.exe"
+        goto got_msbuild
+      )
+    )
+  )
+))))
+@call :log 5
+@call :log 0 "Failed to check for MSBuild"
+@exit /b 1
+:got_msbuild
+@endlocal & set "%var%=%msbuild_executable%"
+@goto :eof
+
+:download - Downloads a file from the internet
+:: %1 - the url of the file to download
+:: %2 - the file to download to
+:: %3 - the MD5 checksum of the file (optional)
+@setlocal EnableDelayedExpansion
+@if errorlevel 1 (
+  call :print_usage "Failed to enable extensions"
+  exit /b 1
+)
+@set url=%~1
+@set file_path=%~2
+@set checksum=%~3
+@for %%a in (%file_path%) do @set dir_path=%%~dpa
+@for %%a in (%file_path%) do @set file_name=%%~nxa
+@if [%url%] == [] exit /b 1
+@if [%file_path%] == [] exit /b 1
+@if [%dir_path%] == [] exit /b 1
+@if [%file_name%] == [] exit /b 1
+@if not exist "%dir_path%" mkdir "%dir_path%"
+@call :log 1 "Downloading %url%"
+@call :iso8601 iso8601
+@set temp_path=%temp%\download-%iso8601%-%file_name%
+@call :log 3 "Using temp file %temp_path%"
+@powershell Invoke-WebRequest "%url%" -OutFile %temp_path%
+@if errorlevel 1 (
+  call :log 0 "Failed to download %url%"
+  exit /b 1
+)
+@if [%checksum%] neq [] (
+  @call :log 4 "Checking %checksum% against %temp_path%"
+  @call :md5 hash "%temp_path%"
+  if "!hash!" neq "%checksum%" (
+    call :log 0 "Failed to match checksum: %temp_path%"
+    call :log 0 "Hash    : !hash!"
+    call :log 0 "Checksum: %checksum%"
+    exit /b 1
+  ) else (
+    call :log 3 "Checksum matched: %temp_path%"
+    call :log 3 "Hash    : !hash!"
+    call :log 3 "Checksum: %checksum%"
+  )
+)
+@call :log 4 "Renaming %temp_path% to %file_path%"
+@move /y "%temp_path%" "%file_path%" 1>nul
+@endlocal
+@goto :eof
+
+:install_msi - Installs a dependency from an Microsoft Installer package (.msi)
+:: %1 - [string] name of the project to install
+:: %2 - The location of the .msi, a url must start with 'http://' or file_path
+:: %3 - The checksum of the msi (optional)
+@setlocal
+@set name=%~1
+@set file_path=%~2
+@set checksum=%~3
+@set msi=%~nx2
+@set msi_path=%dependency_path%\%msi%
+@if [%name%] == [] exit /b 1
+@if [%file_path%] == [] exit /b 1
+@if [%msi%] == [] exit /b 1
+@if [%msi_path%] == [] exit /b 1
+@for %%x in (msiexec.exe) do @set "msiexec_path=%%~f$PATH:x"
+@if "msiexec_path" == "" (
+  call :log 0 "Failed to find the Microsoft package installer (msiexec.exe)"
+  call :log 6
+  call :log 0 "Please install it from the Microsoft Download center"
+  call :log 6
+  choice /C YN /T 60 /D N /M "Would you like to go there now?"
+  if !errorlevel! equ 1 call :start_browser ^
+    "http://search.microsoft.com/DownloadResults.aspx?q=Windows+Installer";
+  exit /b 1
+)
+@call :log 6
+@call :log 1 "Installing the '%name%' dependency"
+@call :log 6 "-------------------------------------"
+@call :administrator_check
+@if errorlevel 1 (
+  call :log 0 "You must run %~nx0 in elevated mode to install '%name%'"
+  call :log 5 "Right-Click and select 'Run as Administrator'
+  call :log 0 "Install the dependency manually by running %file_path%"
+  @exit /b 740
+)
+@if [%file_path:~0,4%] == [http] (
+  if not exist "%msi_path%" (
+    call :download "%file_path%" "%msi_path%" %checksum%
+    if errorlevel 1 (
+      call :log 0 "Failed to download the %name% dependency"
+      exit /b 1
+    )
+  )
+) else (
+  call :log 2 "Copying MSI %file_path% to %msi_path%"
+  call :log 7
+  if not exist "%msi_path%" (
+    xcopy /q /y /z "%file_path%" "%msi_path%" 1>nul
+    if errorlevel 1 (
+      call :log 0 "Failed to copy the Microsoft Installer"
+      exit /b 1
+    )
+  )
+)
+@call :log 1 "Running the %msi%"
+@call :log 6
+@set msi_log=%temp%\msiexec-%timestamp%.log
+@call :log 3 "Logging to: %msi_log%"
+@msiexec /i "%msi_path%" /passive /log "%msi_log%" ALLUSERS=1
+@set msi_errorlevel=%errorlevel%
+@call :log_append "%msi_log%"
+@if %msi_errorlevel% equ 0 goto install_msi_success
+@if %msi_errorlevel% equ 3010 goto install_msi_success_reboot
+@if %msi_errorlevel% equ 1641 goto install_msi_success_reboot
+@if %msi_errorlevel% equ 3015 goto install_msi_in_progress_reboot
+@if %msi_errorlevel% equ 1615 goto install_msi_in_progress_reboot
+@call :log 0 "Microsoft Installer failed: %msi_errorlevel%"
+@call :log 0 "Install the dependency manually by running %msi_path%"
+@exit /b 1
+:install_msi_in_progress_reboot
+@call :log 0 "The installation requires a reboot to continue"
+@call :log 5
+@call :reboot
+@exit /b 1
+:install_msi_success_reboot
+@call :log 3 "The installation requires a reboot to be fully functional"
+@set reboot_required=1
+:install_msi_success
+@call :log 2 "Successfully installed %name%"
+@call :log 7
+@endlocal & set reboot_required=%reboot_required%
+@goto :eof
+
+:install_nsis - Installs a dependency from an Nullsoft Installer package (.exe)
+:: %1 - [string] name of the project to install
+:: %2 - The location of the .exe, a url must start with 'http://' or file_path
+:: %3 - The checksum of the exe (optional)
+@setlocal
+@set name=%~1
+@set file_path=%~2
+@set checksum=%~3
+@set exe=%~nx2
+@set exe_path=%dependency_path%\%exe%
+@if [%name%] == [] exit /b 1
+@if [%file_path%] == [] exit /b 1
+@if [%exe%] == [] exit /b 1
+@if [%exe_path%] == [] exit /b 1
+@call :log 6
+@call :log 1 "Installing the '%name%' dependency"
+@call :log 6 "-------------------------------------"
+@call :administrator_check
+@if errorlevel 1 (
+  call :log 0 "You must run %~nx0 in elevated mode to install '%name%'"
+  call :log 5 "Right-Click and select 'Run as Administrator'
+  call :log 0 "Install the dependency manually by running %file_path%"
+  @exit /b 740
+)
+@if [%file_path:~0,4%] == [http] (
+  if not exist "%exe_path%" (
+    call :download "%file_path%" "%exe_path%" %checksum%
+    if errorlevel 1 (
+      call :log 0 "Failed to download the %name% dependency"
+      exit /b 1
+    )
+  )
+) else (
+  call :log 2 "Copying installer %file_path% to %exe_path%"
+  call :log 7
+  if not exist "%exe_path%" (
+    xcopy /q /y /z "%file_path%" "%exe_path%" 1>nul
+    if errorlevel 1 (
+      call :log 0 "Failed to copy the Nullsoft Installer"
+      exit /b 1
+    )
+  )
+)
+@call :log 1 "Running the %exe%"
+@call :log 6
+@"%exe_path%" /S
+@set nsis_errorlevel=%errorlevel%
+@if %nsis_errorlevel% equ 0 goto install_nsis_success
+@if %nsis_errorlevel% equ 3010 goto install_nsis_success_reboot
+@if %nsis_errorlevel% equ 1641 goto install_nsis_success_reboot
+@if %nsis_errorlevel% equ 3015 goto install_nsis_in_progress_reboot
+@if %nsis_errorlevel% equ 1615 goto install_nsis_in_progress_reboot
+@call :log 0 "Nullsoft Installer failed: %nsis_errorlevel%"
+@call :log 0 "Install the dependency manually by running %exe_path%"
+@exit /b 1
+:install_nsis_in_progress_reboot
+@call :log 0 "The installation requires a reboot to continue"
+@call :log 5
+@call :reboot
+@exit /b 1
+:install_nsis_success_reboot
+@call :log 3 "The installation requires a reboot to be fully functional"
+@set reboot_required=1
+:install_nsis_success
+@call :log 2 "Successfully installed %name%"
+@call :log 7
+@endlocal & set reboot_required=%reboot_required%
+@goto :eof
+
+:reboot - Asks the user if they would like to reboot then stops the script
+@setlocal
+@call :log 6 "-------------------------------------------"
+@choice /C YN /T 60 /D N /M "The %method% requires a reboot, reboot now?"
+@set ret=%errorlevel%
+@call :log 6
+@if %ret% equ 1 (
+  @shutdown /r
+) else (
+  @call :log 0 "You will need to reboot to complete the %method%"
+  @call :log 5
+)
+@endlocal
+@goto :eof

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/test/01_basic/basic_spec.lua
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/test/01_basic/basic_spec.lua 
b/thirdparty/civetweb-1.10/ci/test/01_basic/basic_spec.lua
new file mode 100644
index 0000000..cf3b300
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/test/01_basic/basic_spec.lua
@@ -0,0 +1,35 @@
+civet = require "ci/test/civet"
+local curl = require "cURL"
+
+describe("civetweb basic", function()
+
+  setup(function()
+    civet.start()
+  end)
+
+  teardown(function()
+    civet.stop()
+  end)
+
+
+  it("should serve a simple get request", function()
+
+    local out = ""
+    function capture(str)
+      out = out .. str
+    end
+
+    local c = curl.easy()
+      :setopt_url('http://localhost:' .. civet.port .. "/")
+      :setopt_writefunction(capture)
+      :perform()
+    :close()
+
+    --print('rescode:' .. c.getinfo(curl.INFO_RESPONSE_CODE))
+
+    assert.are.equal('Index of', string.match(out, 'Index of'))
+    assert.are.equal('01_basic_test_dir', string.match(out, 
'01_basic_test_dir'))
+    assert.are.equal('01_basic_test_file', string.match(out, 
'01_basic_test_file'))
+  end)
+
+end)

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/test/01_basic/docroot/01_basic_test_dir/git_keep_empty_dir
----------------------------------------------------------------------
diff --git 
a/thirdparty/civetweb-1.10/ci/test/01_basic/docroot/01_basic_test_dir/git_keep_empty_dir
 
b/thirdparty/civetweb-1.10/ci/test/01_basic/docroot/01_basic_test_dir/git_keep_empty_dir
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/test/01_basic/docroot/01_basic_test_file
----------------------------------------------------------------------
diff --git 
a/thirdparty/civetweb-1.10/ci/test/01_basic/docroot/01_basic_test_file 
b/thirdparty/civetweb-1.10/ci/test/01_basic/docroot/01_basic_test_file
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/test/README.md
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/test/README.md 
b/thirdparty/civetweb-1.10/ci/test/README.md
new file mode 100644
index 0000000..fdbecbe
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/test/README.md
@@ -0,0 +1,34 @@
+== Travis CI Tests
+
+Travis is a service which will build your project when you commit or get pull 
requests on Github.
+
+I have fixed and extended the travis configuration to build on the new 
sudo-less docker infrastructure.
+
+=== CI Process
+
+* On Check-in or Pull Requests clone the repo
+* Run make WITH_LUA=1 WITH_DEBUG=1 WITH_IPV6=1 WITH_WEBSOCKET=1
+* Build a standalone lua installation (seperate from civetweb or the OS)
+* Build LuaRocks in standalone installation
+* Install a few rocks into the standalone installation
+* Start the test script
+
+=== test/ci_tests/01_basic/basic_spec.lua
+
+On the initial checkin, there is only one test which demonstrates:
+
+* reliably starting civetweb server on travis infrastructure
+* waiting (polling) with lua.socket to establish the server is up and running 
+* using libcurl via lua to test that files in the specified docroot are 
available
+* kill the civetweb server process
+* waiting (polling) the server port to see that the server has freed it
+
+=== Adding Tests
+
+* Create a directory under ci_tests
+* Add a spec file, so now we have ci_tests/02_my_awesome_test/awesome_spec.lua
+* Any file under ci_tests which ends in _spec.lua will be automatically run
+* Check out the 'busted' and lua-curl3 docs for more info
+* https://github.com/Lua-cURL/Lua-cURLv3
+* http://olivinelabs.com/busted/
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/test/civet.lua
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/test/civet.lua 
b/thirdparty/civetweb-1.10/ci/test/civet.lua
new file mode 100644
index 0000000..19a6848
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/test/civet.lua
@@ -0,0 +1,42 @@
+socket = require "socket"
+
+local civet = {}
+
+-- default params
+civet.port=12345
+civet.max_retry=100
+civet.start_delay=0.1
+
+function civet.start(docroot)
+  -- TODO: use a property
+  docroot = docroot or 'ci/test/01_basic/docroot'
+  assert(io.popen('./civetweb'
+  .. " -listening_ports " .. civet.port
+  .. " -document_root " .. docroot
+  .. " > /dev/null 2>&1 &"
+  ))
+  -- wait until the server answers
+  for i=1,civet.max_retry do
+    local s = socket.connect('127.0.0.1', civet.port)
+    if s then
+      s:close()
+      break
+    end
+    socket.select(nil, nil, civet.start_delay) -- sleep
+  end
+end
+
+function civet.stop()
+  os.execute('killall civetweb')
+  -- wait until the server port closes
+  for i=1,civet.max_retry do
+    local s = socket.connect('127.0.0.1', civet.port)
+    if not s then
+      break
+    end
+    s:close()
+    socket.select(nil, nil, civet.start_delay) -- sleep
+  end
+end
+
+return civet

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/travis/install_rocks.sh
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/travis/install_rocks.sh 
b/thirdparty/civetweb-1.10/ci/travis/install_rocks.sh
new file mode 100755
index 0000000..739248b
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/travis/install_rocks.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+set -ev
+
+source ci/travis/lua_env.sh
+
+# add any rocks required for ci_tests to this list
+# lua-curl depends on a libcurl development package (i.e. libcurl4-openssl-dev)
+ROCKS=(lua-curl busted)
+
+for ROCK in ${ROCKS[*]}
+do
+  $LUAROCKS install $ROCK
+done
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/travis/lua_env.sh
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/travis/lua_env.sh 
b/thirdparty/civetweb-1.10/ci/travis/lua_env.sh
new file mode 100755
index 0000000..dd742e9
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/travis/lua_env.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+LUAROCKS=ci/lua/bin/luarocks
+eval $($LUAROCKS path --bin)
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/travis/platform.sh
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/travis/platform.sh 
b/thirdparty/civetweb-1.10/ci/travis/platform.sh
new file mode 100755
index 0000000..4a3af0d
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/travis/platform.sh
@@ -0,0 +1,15 @@
+if [ -z "$PLATFORM" ]; then
+  PLATFORM=$TRAVIS_OS_NAME;
+fi
+
+if [ "$PLATFORM" == "osx" ]; then
+  PLATFORM="macosx";
+fi
+
+if [ -z "$PLATFORM" ]; then
+  if [ "$(uname)" == "Linux" ]; then
+    PLATFORM="linux";
+  else
+    PLATFORM="macosx";
+  fi;
+fi

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/travis/run_ci_tests.sh
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/travis/run_ci_tests.sh 
b/thirdparty/civetweb-1.10/ci/travis/run_ci_tests.sh
new file mode 100755
index 0000000..16c2cc0
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/travis/run_ci_tests.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+set -ev
+
+source ci/travis/lua_env.sh
+busted -o TAP ci/test/
+
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/ci/travis/setup_lua.sh
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/ci/travis/setup_lua.sh 
b/thirdparty/civetweb-1.10/ci/travis/setup_lua.sh
new file mode 100755
index 0000000..8e1b324
--- /dev/null
+++ b/thirdparty/civetweb-1.10/ci/travis/setup_lua.sh
@@ -0,0 +1,61 @@
+#!/usr/bin/env /bash
+set -ev
+
+# this script installs a lua / luarocks environment in .travis/lua
+# this is necessary because travis docker architecture (the fast way)
+# does not permit sudo, and does not contain a useful lua installation
+
+# After this script is finished, you can configure your environment to
+# use it by sourcing lua_env.sh
+
+source ci/travis/platform.sh
+
+# The current versions when this script was written
+LUA_VERSION=5.2.4
+LUAROCKS_VERSION=2.2.2
+
+# directory where this script is located
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+# civetweb base dir
+PROJECT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../.. && pwd )
+
+# fetch and unpack lua src
+cd $SCRIPT_DIR
+LUA_BASE=lua-$LUA_VERSION
+rm -rf $LUA_BASE
+curl http://www.lua.org/ftp/$LUA_BASE.tar.gz | tar zx
+
+# build lua
+cd $LUA_BASE
+make $PLATFORM
+make local
+
+# mv built lua install to target Lua dir
+LUA_DIR=$PROJECT_DIR/ci/lua
+rm -rf $LUA_DIR
+mv $SCRIPT_DIR/$LUA_BASE/install $LUA_DIR
+
+# add to path required by luarocks installer
+export PATH=$LUA_DIR/bin:$PATH
+
+
+# fetch and unpack luarocks
+cd $SCRIPT_DIR
+LUAROCKS_BASE=luarocks-$LUAROCKS_VERSION
+rm -rf ${LUAROCKS_BASE}
+LUAROCKS_URL=http://luarocks.org/releases/${LUAROCKS_BASE}.tar.gz
+# -L because it's a 302 redirect
+curl -L $LUAROCKS_URL | tar xzp
+cd $LUAROCKS_BASE
+
+# build luarocks
+./configure --prefix=$LUA_DIR
+make build
+make install
+
+# cleanup source dirs
+cd $SCRIPT_DIR
+rm -rf $LUAROCKS_BASE
+rm -rf $LUA_BASE
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/AddCCompilerFlag.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/AddCCompilerFlag.cmake 
b/thirdparty/civetweb-1.10/cmake/AddCCompilerFlag.cmake
new file mode 100644
index 0000000..f5550fa
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/AddCCompilerFlag.cmake
@@ -0,0 +1,38 @@
+# - Adds a compiler flag if it is supported by the compiler
+#
+# This function checks that the supplied compiler flag is supported and then
+# adds it to the corresponding compiler flags
+#
+#  add_c_compiler_flag(<FLAG> [<VARIANT>])
+#
+# - Example
+#
+# include(AddCCompilerFlag)
+# add_c_compiler_flag(-Wall)
+# add_c_compiler_flag(-no-strict-aliasing RELEASE)
+# Requires CMake 2.6+
+
+if(__add_c_compiler_flag)
+  return()
+endif()
+set(__add_c_compiler_flag INCLUDED)
+
+include(CheckCCompilerFlag)
+
+function(add_c_compiler_flag FLAG)
+  string(TOUPPER "HAVE_C_FLAG_${FLAG}" SANITIZED_FLAG)
+  string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG})
+  string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+  string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+  set(CMAKE_REQUIRED_FLAGS "${FLAG}")
+  check_c_compiler_flag("" ${SANITIZED_FLAG})
+  if(${SANITIZED_FLAG})
+    set(VARIANT ${ARGV1})
+    if(ARGV1)
+      string(REGEX REPLACE "[^A-Za-z_0-9]" "_" VARIANT "${VARIANT}")
+      string(TOUPPER "_${VARIANT}" VARIANT)
+    endif()
+    set(CMAKE_C_FLAGS${VARIANT} "${CMAKE_C_FLAGS${VARIANT}} ${FLAG}" 
PARENT_SCOPE)
+  endif()
+endfunction()
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/AddCXXCompilerFlag.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/AddCXXCompilerFlag.cmake 
b/thirdparty/civetweb-1.10/cmake/AddCXXCompilerFlag.cmake
new file mode 100644
index 0000000..5e58c6d
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/AddCXXCompilerFlag.cmake
@@ -0,0 +1,38 @@
+# - Adds a compiler flag if it is supported by the compiler
+#
+# This function checks that the supplied compiler flag is supported and then
+# adds it to the corresponding compiler flags
+#
+#  add_cxx_compiler_flag(<FLAG> [<VARIANT>])
+#
+# - Example
+#
+# include(AddCXXCompilerFlag)
+# add_cxx_compiler_flag(-Wall)
+# add_cxx_compiler_flag(-no-strict-aliasing RELEASE)
+# Requires CMake 2.6+
+
+if(__add_cxx_compiler_flag)
+  return()
+endif()
+set(__add_cxx_compiler_flag INCLUDED)
+
+include(CheckCXXCompilerFlag)
+
+function(add_cxx_compiler_flag FLAG)
+  string(TOUPPER "HAVE_CXX_FLAG_${FLAG}" SANITIZED_FLAG)
+  string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG})
+  string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+  string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG})
+  set(CMAKE_REQUIRED_FLAGS "${FLAG}")
+  check_cxx_compiler_flag("" ${SANITIZED_FLAG})
+  if(${SANITIZED_FLAG})
+    set(VARIANT ${ARGV1})
+    if(ARGV1)
+      string(REGEX REPLACE "[^A-Za-z_0-9]" "_" VARIANT "${VARIANT}")
+      string(TOUPPER "_${VARIANT}" VARIANT)
+    endif()
+    set(CMAKE_CXX_FLAGS${VARIANT} "${CMAKE_CXX_FLAGS${VARIANT}} ${FLAG}" 
PARENT_SCOPE)
+  endif()
+endfunction()
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/DetermineTargetArchitecture.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/DetermineTargetArchitecture.cmake 
b/thirdparty/civetweb-1.10/cmake/DetermineTargetArchitecture.cmake
new file mode 100644
index 0000000..7d18213
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/DetermineTargetArchitecture.cmake
@@ -0,0 +1,47 @@
+# - Determines the target architecture of the compilation
+#
+# This function checks the architecture that will be built by the compiler
+# and sets a variable to the architecture
+#
+#  determine_target_architecture(<OUTPUT_VAR>)
+#
+# - Example
+#
+# include(DetermineTargetArchitecture)
+# determine_target_architecture(PROJECT_NAME_ARCHITECTURE)
+
+if(__determine_target_architecture)
+  return()
+endif()
+set(__determine_target_architecture INCLUDED)
+
+function(determine_target_architecture FLAG)
+  if (MSVC)
+    if("${MSVC_C_ARCHITECTURE_ID}" STREQUAL "X86")
+      set(ARCH "i686")
+    elseif("${MSVC_C_ARCHITECTURE_ID}" STREQUAL "x64")
+      set(ARCH "x86_64")
+    elseif("${MSVC_C_ARCHITECTURE_ID}" STREQUAL "ARM")
+      set(ARCH "arm")
+    else()
+      message(FATAL_ERROR "Failed to determine the MSVC target architecture: 
${MSVC_C_ARCHITECTURE_ID}")
+    endif()
+  else()
+    execute_process(
+      COMMAND ${CMAKE_C_COMPILER} -dumpmachine
+      RESULT_VARIABLE RESULT
+      OUTPUT_VARIABLE ARCH
+      ERROR_QUIET
+    )
+    if (RESULT)
+      message(FATAL_ERROR "Failed to determine target architecture triplet: 
${RESULT}")
+    endif()
+    string(REGEX MATCH "([^-]+).*" ARCH_MATCH ${ARCH})
+    if (NOT CMAKE_MATCH_1 OR NOT ARCH_MATCH)
+      message(FATAL_ERROR "Failed to match the target architecture triplet: 
${ARCH}")
+    endif()
+    set(ARCH ${CMAKE_MATCH_1})
+  endif()
+  message(STATUS "Target architecture - ${ARCH}")
+  set(FLAG ${ARCH} PARENT_SCOPE)
+endfunction()

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/FindLibDl.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/FindLibDl.cmake 
b/thirdparty/civetweb-1.10/cmake/FindLibDl.cmake
new file mode 100644
index 0000000..c018d92
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/FindLibDl.cmake
@@ -0,0 +1,46 @@
+#.rst:
+# FindLibDl
+# --------
+#
+# Find the native realtime includes and library.
+#
+# IMPORTED Targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines :prop_tgt:`IMPORTED` target ``LIBDL::LIBDL``, if
+# LIBDL has been found.
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following variables:
+#
+# ::
+#
+#   LIBDL_INCLUDE_DIRS  - where to find dlfcn.h, etc.
+#   LIBDL_LIBRARIES     - List of libraries when using libdl.
+#   LIBDL_FOUND         - True if dynamic linking library found.
+#
+# Hints
+# ^^^^^
+#
+# A user may set ``LIBDL_ROOT`` to a library installation root to tell this
+# module where to look.
+
+find_path(LIBDL_INCLUDE_DIRS
+  NAMES dlfcn.h
+  PATHS ${LIBDL_ROOT}/include/
+)
+find_library(LIBDL_LIBRARIES dl)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LibDl DEFAULT_MSG LIBDL_LIBRARIES 
LIBDL_INCLUDE_DIRS)
+mark_as_advanced(LIBDL_INCLUDE_DIRS LIBDL_LIBRARIES)
+
+if(LIBDL_FOUND)
+    if(NOT TARGET LIBDL::LIBDL)
+      add_library(LIBDL::LIBDL UNKNOWN IMPORTED)
+      set_target_properties(LIBDL::LIBDL PROPERTIES
+        IMPORTED_LOCATION "${LIBDL_LIBRARIES}"
+        INTERFACE_INCLUDE_DIRECTORIES "${LIBDL_INCLUDE_DIRS}")
+    endif()
+endif()

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/FindLibM.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/FindLibM.cmake 
b/thirdparty/civetweb-1.10/cmake/FindLibM.cmake
new file mode 100644
index 0000000..9f42aa4
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/FindLibM.cmake
@@ -0,0 +1,47 @@
+#.rst:
+# FindLibM
+# --------
+#
+# Find the native realtime includes and library.
+#
+# IMPORTED Targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines :prop_tgt:`IMPORTED` target ``LIBM::LIBM``, if
+# LIBM has been found.
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following variables:
+#
+# ::
+#
+#   LIBM_INCLUDE_DIRS  - where to find math.h, etc.
+#   LIBM_LIBRARIES     - List of libraries when using libm.
+#   LIBM_FOUND         - True if math library found.
+#
+# Hints
+# ^^^^^
+#
+# A user may set ``LIBM_ROOT`` to a math library installation root to tell this
+# module where to look.
+
+find_path(LIBM_INCLUDE_DIRS
+  NAMES math.h
+  PATHS /usr/include /usr/local/include /usr/local/bic/include
+  NO_DEFAULT_PATH
+)
+find_library(LIBM_LIBRARIES m)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LibM DEFAULT_MSG LIBM_LIBRARIES 
LIBM_INCLUDE_DIRS)
+mark_as_advanced(LIBM_INCLUDE_DIRS LIBM_LIBRARIES)
+
+if(LIBM_FOUND)
+    if(NOT TARGET LIBM::LIBM)
+      add_library(LIBM::LIBM UNKNOWN IMPORTED)
+      set_target_properties(LIBM::LIBM PROPERTIES
+        IMPORTED_LOCATION "${LIBM_LIBRARIES}"
+        INTERFACE_INCLUDE_DIRECTORIES "${LIBM_INCLUDE_DIRS}")
+    endif()
+endif()

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/FindLibRt.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/FindLibRt.cmake 
b/thirdparty/civetweb-1.10/cmake/FindLibRt.cmake
new file mode 100644
index 0000000..c496edf
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/FindLibRt.cmake
@@ -0,0 +1,46 @@
+#.rst:
+# FindLibRt
+# --------
+#
+# Find the native realtime includes and library.
+#
+# IMPORTED Targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines :prop_tgt:`IMPORTED` target ``LIBRT::LIBRT``, if
+# LIBRT has been found.
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following variables:
+#
+# ::
+#
+#   LIBRT_INCLUDE_DIRS  - where to find time.h, etc.
+#   LIBRT_LIBRARIES     - List of libraries when using librt.
+#   LIBRT_FOUND         - True if realtime library found.
+#
+# Hints
+# ^^^^^
+#
+# A user may set ``LIBRT_ROOT`` to a realtime installation root to tell this
+# module where to look.
+
+find_path(LIBRT_INCLUDE_DIRS
+  NAMES time.h
+  PATHS ${LIBRT_ROOT}/include/
+)
+find_library(LIBRT_LIBRARIES rt)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LibRt DEFAULT_MSG LIBRT_LIBRARIES 
LIBRT_INCLUDE_DIRS)
+mark_as_advanced(LIBRT_INCLUDE_DIRS LIBRT_LIBRARIES)
+
+if(LIBRT_FOUND)
+    if(NOT TARGET LIBRT::LIBRT)
+      add_library(LIBRT::LIBRT UNKNOWN IMPORTED)
+      set_target_properties(LIBRT::LIBRT PROPERTIES
+        IMPORTED_LOCATION "${LIBRT_LIBRARIES}"
+        INTERFACE_INCLUDE_DIRECTORIES "${LIBRT_INCLUDE_DIRS}")
+    endif()
+endif()

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/FindWinSock.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/FindWinSock.cmake 
b/thirdparty/civetweb-1.10/cmake/FindWinSock.cmake
new file mode 100644
index 0000000..0bf355d
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/FindWinSock.cmake
@@ -0,0 +1,102 @@
+#.rst:
+# FindWinSock
+# --------
+#
+# Find the native realtime includes and library.
+#
+# IMPORTED Targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines :prop_tgt:`IMPORTED` target ``WINSOCK::WINSOCK``, if
+# WINSOCK has been found.
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following variables:
+#
+# ::
+#
+#   WINSOCK_INCLUDE_DIRS  - where to find winsock.h, etc.
+#   WINSOCK_LIBRARIES     - List of libraries when using librt.
+#   WINSOCK_FOUND         - True if realtime library found.
+#
+# Hints
+# ^^^^^
+#
+# A user may set ``WINSOCK_ROOT`` to a realtime installation root to tell this
+# module where to look.
+
+macro(REMOVE_DUPLICATE_PATHS LIST_VAR)
+  set(WINSOCK_LIST "")
+  foreach(PATH IN LISTS ${LIST_VAR})
+    get_filename_component(PATH "${PATH}" REALPATH)
+    list(APPEND WINSOCK_LIST "${PATH}")
+  endforeach(PATH)
+  set(${LIST_VAR} ${WINSOCK_LIST})
+  list(REMOVE_DUPLICATES ${LIST_VAR})
+endmacro(REMOVE_DUPLICATE_PATHS)
+
+set(WINSOCK_INCLUDE_PATHS "${WINSOCK_ROOT}/include/")
+if(MINGW)
+  execute_process(
+    COMMAND ${CMAKE_C_COMPILER} -xc -E -v -
+    RESULT_VARIABLE RESULT
+    INPUT_FILE nul
+    ERROR_VARIABLE ERR
+    OUTPUT_QUIET
+  )
+  if (NOT RESULT)
+    string(FIND "${ERR}" "#include <...> search starts here:" START)
+    string(FIND "${ERR}" "End of search list." END)
+    if (NOT ${START} EQUAL -1 AND NOT ${END} EQUAL -1)
+      math(EXPR START "${START} + 36")
+      math(EXPR END "${END} - 1")
+      math(EXPR LENGTH "${END} - ${START}")
+      string(SUBSTRING "${ERR}" ${START} ${LENGTH} WINSOCK_INCLUDE_PATHS)
+      string(REPLACE "\n " ";" WINSOCK_INCLUDE_PATHS 
"${WINSOCK_INCLUDE_PATHS}")
+      list(REVERSE WINSOCK_INCLUDE_PATHS)
+    endif()
+  endif()
+endif()
+remove_duplicate_paths(WINSOCK_INCLUDE_PATHS)
+
+set(WINSOCK_LIBRARY_PATHS "${WINSOCK_ROOT}/lib/")
+if(MINGW)
+  execute_process(
+    COMMAND ${CMAKE_C_COMPILER} -print-search-dirs
+    RESULT_VARIABLE RESULT
+    OUTPUT_VARIABLE OUT
+    ERROR_QUIET
+  )
+  if (NOT RESULT)
+    string(REGEX MATCH "libraries: =([^\r\n]*)" OUT "${OUT}")
+    list(APPEND WINSOCK_LIBRARY_PATHS "${CMAKE_MATCH_1}")
+  endif()
+endif()
+if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "AMD64" AND ${CMAKE_SIZEOF_VOID_P} 
EQUAL 4)
+  list(APPEND WINSOCK_LIBRARY_PATHS "C:/Windows/SysWOW64")
+endif()
+list(APPEND WINSOCK_LIBRARY_PATHS "C:/Windows/System32")
+remove_duplicate_paths(WINSOCK_LIBRARY_PATHS)
+
+find_path(WINSOCK_INCLUDE_DIRS
+  NAMES winsock2.h
+  PATHS ${WINSOCK_INCLUDE_PATHS}
+)
+find_library(WINSOCK_LIBRARIES ws2_32
+  PATHS ${WINSOCK_LIBRARY_PATHS}
+  NO_DEFAULT_PATH
+)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(WinSock DEFAULT_MSG WINSOCK_LIBRARIES 
WINSOCK_INCLUDE_DIRS)
+mark_as_advanced(WINSOCK_INCLUDE_DIRS WINSOCK_LIBRARIES)
+
+if(WINSOCK_FOUND)
+    if(NOT TARGET WINSOCK::WINSOCK)
+      add_library(WINSOCK::WINSOCK UNKNOWN IMPORTED)
+      set_target_properties(WINSOCK::WINSOCK PROPERTIES
+        IMPORTED_LOCATION "${WINSOCK_LIBRARIES}"
+        INTERFACE_INCLUDE_DIRECTORIES "${WINSOCK_INCLUDE_DIRS}")
+    endif()
+endif()

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/check/c82fe8888aacfe784476112edd3878256d2e30bc.patch
----------------------------------------------------------------------
diff --git 
a/thirdparty/civetweb-1.10/cmake/check/c82fe8888aacfe784476112edd3878256d2e30bc.patch
 
b/thirdparty/civetweb-1.10/cmake/check/c82fe8888aacfe784476112edd3878256d2e30bc.patch
new file mode 100644
index 0000000..e16ea1f
--- /dev/null
+++ 
b/thirdparty/civetweb-1.10/cmake/check/c82fe8888aacfe784476112edd3878256d2e30bc.patch
@@ -0,0 +1,31 @@
+From c82fe8888aacfe784476112edd3878256d2e30bc Mon Sep 17 00:00:00 2001
+From: Joshua Boyd <jdboyd@Joshua-Boyds-Mac-mini.local>
+Date: Wed, 23 Mar 2016 17:54:41 -0400
+Subject: [PATCH] Detect missing itimerspec on OSX.
+
+Set define to compiler accordingly.
+
+This fixes cmake on osx support.
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e271e31..1d413e8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -193,6 +193,14 @@ if(NOT HAVE_SYS_TIME_H)
+     endif(MSVC)
+ endif(NOT HAVE_SYS_TIME_H)
+ 
++# OSX has sys/time.h, but it still lacks itimerspec
++if(HAVE_SYS_TIME_H)
++    check_struct_member("struct itimerspec" it_value "sys/time.h" 
HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
++    if(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
++        add_definitions(-DSTRUCT_ITIMERSPEC_DEFINITION_MISSING=1)
++        set(STRUCT_ITIMERSPEC_DEFINITION_MISSING 1)
++    endif(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
++endif(HAVE_SYS_TIME_H)
+ 
+ 
###############################################################################
+ # Check for integer types

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/cmake/check/patch.cmake
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/cmake/check/patch.cmake 
b/thirdparty/civetweb-1.10/cmake/check/patch.cmake
new file mode 100644
index 0000000..472d392
--- /dev/null
+++ b/thirdparty/civetweb-1.10/cmake/check/patch.cmake
@@ -0,0 +1,12 @@
+message(STATUS "Patching check ${VERSION} ${SOURCE_DIR}")
+
+# Patch checks for MinGW
+# https://sourceforge.net/p/check/patches/53/
+set(CMAKE_LISTS_LOCATION "${SOURCE_DIR}/CMakeLists.txt")
+file(READ ${CMAKE_LISTS_LOCATION} CMAKE_LISTS)
+string(REGEX REPLACE
+  "(check_type_size\\((clock|clockid|timer)_t 
[A-Z_]+\\)[\r\n]+[^\r\n]+[\r\n]+[^\r\n]+[\r\n]+endif\\(NOT HAVE[A-Z_]+\\))"
+  "set(CMAKE_EXTRA_INCLUDE_FILES 
time.h)\n\\1\nunset(CMAKE_EXTRA_INCLUDE_FILES)"
+  CMAKE_LISTS "${CMAKE_LISTS}")
+file(WRITE ${CMAKE_LISTS_LOCATION} "${CMAKE_LISTS}")
+message(STATUS "Patched ${CMAKE_LISTS_LOCATION}")

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/contrib/buildroot/Config.in
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/contrib/buildroot/Config.in 
b/thirdparty/civetweb-1.10/contrib/buildroot/Config.in
new file mode 100644
index 0000000..2334fdf
--- /dev/null
+++ b/thirdparty/civetweb-1.10/contrib/buildroot/Config.in
@@ -0,0 +1,26 @@
+config BR2_PACKAGE_CIVETWEB
+       bool "civetweb"
+       depends on BR2_TOOLCHAIN_HAS_THREADS
+       help
+         Full featured embedded web server with Lua support.
+         
+         https://sourceforge.net/projects/civetweb
+
+if BR2_PACKAGE_CIVETWEB
+
+config BR2_CIVETWEB_WITH_LUA
+       bool "enable Lua support"
+       # required by the bundled Sqlite3 and Lua code
+       depends on BR2_LARGEFILE
+       help
+         Enable Lua support in Civetweb. Note that this will use a
+         version of Lua and Sqlite bundled within the Civetweb
+         sources, and not the packages from Buildroot.
+
+comment "Lua support requires largefile support in toolchain"
+       depends on !BR2_LARGEFILE
+
+endif
+
+comment "civetweb requires a toolchain with PTHREAD support"
+       depends on !BR2_TOOLCHAIN_HAS_THREADS

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/contrib/buildroot/civetweb.mk
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/contrib/buildroot/civetweb.mk 
b/thirdparty/civetweb-1.10/contrib/buildroot/civetweb.mk
new file mode 100644
index 0000000..8b9b7de
--- /dev/null
+++ b/thirdparty/civetweb-1.10/contrib/buildroot/civetweb.mk
@@ -0,0 +1,55 @@
+################################################################################
+#
+# civetweb
+#
+################################################################################
+
+CIVETWEB_VERSION = 1.10
+CIVETWEB_SITE = 
http://github.com/civetweb/civetweb/tarball/v$(CIVETWEB_VERSION)
+CIVETWEB_LICENSE = MIT
+CIVETWEB_LICENSE_FILES = LICENSE.md
+
+CIVETWEB_CONF_OPT = TARGET_OS=LINUX
+CIVETWEB_COPT = $(TARGET_CFLAGS) -DHAVE_POSIX_FALLOCATE=0
+CIVETWEB_LDFLAGS = $(TARGET_LDFLAGS)
+CIVETWEB_SYSCONFDIR = /etc
+CIVETWEB_HTMLDIR = /var/www
+
+ifneq ($(BR2_LARGEFILE),y)
+       CIVETWEB_COPT += -DSQLITE_DISABLE_LFS
+endif
+
+ifeq ($(BR2_INET_IPV6),y)
+       CIVETWEB_CONF_OPT += WITH_IPV6=1
+endif
+
+ifeq ($(BR2_CIVETWEB_WITH_LUA),y)
+       CIVETWEB_CONF_OPT += WITH_LUA=1
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+       CIVETWEB_COPT += -DNO_SSL_DL -lcrypt -lssl
+       CIVETWEB_DEPENDENCIES += openssl
+else
+       CIVETWEB_COPT += -DNO_SSL
+endif
+
+define CIVETWEB_BUILD_CMDS
+       $(MAKE) CC="$(TARGET_CC)" -C $(@D) build \
+               $(CIVETWEB_CONF_OPT) \
+               COPT="$(CIVETWEB_COPT)"
+endef
+
+define CIVETWEB_INSTALL_TARGET_CMDS
+       $(MAKE) CC="$(TARGET_CC)" -C $(@D) install \
+               DOCUMENT_ROOT="$(CIVETWEB_HTMLDIR)" \
+               CONFIG_FILE2="$(CIVETWEB_SYSCONFDIR)/civetweb.conf" \
+               HTMLDIR="$(TARGET_DIR)$(CIVETWEB_HTMLDIR)" \
+               SYSCONFDIR="$(TARGET_DIR)$(CIVETWEB_SYSCONFDIR)" \
+               PREFIX="$(TARGET_DIR)/usr" \
+               $(CIVETWEB_CONF_OPT) \
+               COPT='$(CIVETWEB_COPT)'
+endef
+
+$(eval $(generic-package))
+

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/distribution/arch/PKGBUILD.git.example
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/distribution/arch/PKGBUILD.git.example 
b/thirdparty/civetweb-1.10/distribution/arch/PKGBUILD.git.example
new file mode 100644
index 0000000..7102bcb
--- /dev/null
+++ b/thirdparty/civetweb-1.10/distribution/arch/PKGBUILD.git.example
@@ -0,0 +1,42 @@
+# An example PKGBUILD script for Civetweb upstream, git version
+# Rename to PKGBUILD to build via makepkg
+_pkgname=civetweb
+pkgname=$_pkgname-git
+pkgver=v1.4.24.g73c40b6
+pkgrel=1
+pkgdesc="Small and quick-to-use web server; https/php/cgi support; MIT license 
- git development version"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/p/civetweb/";
+license=('MIT')
+groups=()
+depends=()
+makedepends=('git sed')
+optdepends=('php-cgi: for php support')
+provides=("$_pkgname")
+conflicts=("$_pkgname")
+backup=("etc/$_pkgname/$_pkgname.conf")
+source=("$_pkgname::git+https://github.com/civetweb/civetweb.git";)
+md5sums=('SKIP')
+
+pkgver() {
+  cd "$srcdir/$_pkgname"
+  git describe --tags | sed 's|-|.|g'
+}
+
+build() {
+  cd "$srcdir/$_pkgname"
+  make build WITH_IPV6=1
+}
+
+package() {
+  cd "$srcdir/$_pkgname"
+  make install PREFIX="$pkgdir/usr" SYSCONFDIR="$pkgdir/etc/local/$_pkgname"
+  
+  install -Dm644 "$srcdir/$_pkgname/distribution/arch/$_pkgname.service" 
"$pkgdir/usr/lib/systemd/system/$_pkgname.service"
+
+  sed -i "s/^document_root [^\n]*/document_root \/srv\/http/g" 
"$pkgdir/etc/local/$_pkgname/$_pkgname.conf"
+  sed -i "s/^# access_log_file/access_log_file 
\/var\/log\/$_pkgname\/access.log/g" 
"$pkgdir/etc/local/$_pkgname/$_pkgname.conf"
+  sed -i "s/^# error_log_file/access_log_file 
\/var\/log\/$_pkgname\/error.log/g" "$pkgdir/etc/local/$_pkgname/$_pkgname.conf"
+}
+
+# vim:set ts=2 sw=2 et:

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/distribution/arch/civetweb.service
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/distribution/arch/civetweb.service 
b/thirdparty/civetweb-1.10/distribution/arch/civetweb.service
new file mode 100644
index 0000000..5327b6c
--- /dev/null
+++ b/thirdparty/civetweb-1.10/distribution/arch/civetweb.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Civetweb httpd
+After=syslog.target network.target remote-fs.target nss-lookup.target
+
+[Service]
+ExecStart=/usr/local/bin/civetweb /usr/local/etc/civetweb/civetweb.conf
+
+[Install]
+WantedBy=multi-user.target

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/df353561/thirdparty/civetweb-1.10/docs/APIReference.md
----------------------------------------------------------------------
diff --git a/thirdparty/civetweb-1.10/docs/APIReference.md 
b/thirdparty/civetweb-1.10/docs/APIReference.md
new file mode 100644
index 0000000..58c2faf
--- /dev/null
+++ b/thirdparty/civetweb-1.10/docs/APIReference.md
@@ -0,0 +1,134 @@
+# CivetWeb API Reference
+
+CivetWeb is often used as HTTP and HTTPS library inside a larger application.
+A C API is available to integrate the CivetWeb functionality in a larger
+codebase. A C++ wrapper is also available, although it is not guaranteed
+that all functionality available through the C API can also be accessed
+from C++. This document describes the public C API. Basic usage examples of
+the API can be found in [Embedding.md](Embedding.md), as well as in the
+examples directory.
+
+## Macros
+
+| Macro | Description |
+| :--- | :--- |
+| **`CIVETWEB_VERSION`** | The current version of the software as a string 
with the major and minor version number seperated with a dot. For version 1.9, 
this string will have the value "1.9", for thw first patch of this version 
"1.9.1". |
+| **`CIVETWEB_VERSION_MAJOR`** | The current major version as number, e.g., 
(1) for version 1.9. |
+| **`CIVETWEB_VERSION_MINOR`** | The current minor version as number, e.g., 
(9) for version 1.9. |
+| **`CIVETWEB_VERSION_PATCH`** | The current patch version as number, e.g., 
(0) for version 1.9 or (1) for version 1.9.1. |
+
+## Handles
+
+* `struct mg_context *`
+Handle for one instance of the HTTP(S) server.
+All functions using `const struct mg_context *` as an argument do not modify a 
running server instance, but just query information. Functions using a 
non-const `struct mg_context *` as an argument may modify a server instance 
(e.g., register a new URI, stop the server, ...).
+
+* `struct mg_connection *`
+Handle for one individual client-server connection.
+Functions working with `const struct mg_connection *` operate on data already 
known to the server without reading data from or sending data to the client. 
Callbacks using a `const struct mg_connection *` argument are supposed to not 
call functions from the `mg_read()` and `mg_write()` family. To support a 
correct application, reading and writing functions require a non-const `struct 
mg_connection *` connection handle.
+
+The content of both structures is not defined in the interface - they are only 
used as opaque pointers (handles).
+
+## Structures
+
+* [`struct mg_client_cert;`](api/mg_client_cert.md)
+* [`struct mg_client_options;`](api/mg_client_options.md)
+* [`struct mg_callbacks;`](api/mg_callbacks.md)
+* [`struct mg_form_data_handler;`](api/mg_form_data_handler.md)
+* [`struct mg_header;`](api/mg_header.md)
+* [`struct mg_option;`](api/mg_option.md)
+* [`struct mg_request_info;`](api/mg_request_info.md)
+* [`struct mg_server_ports;`](api/mg_server_ports.md)
+
+
+## Library API Functions
+
+* [`mg_init_library( feature );`](api/mg_init_library.md)
+* [`mg_exit_library( feature );`](api/mg_exit_library.md)
+
+* [`mg_check_feature( feature );`](api/mg_check_feature.md)
+* [`mg_version();`](api/mg_version.md)
+
+
+## Server API Functions
+
+* [`mg_start( callbacks, user_data, options );`](api/mg_start.md)
+* [`mg_stop( ctx );`](api/mg_stop.md)
+
+* [`mg_get_builtin_mime_type( file_name );`](api/mg_get_builtin_mime_type.md)
+* [`mg_get_option( ctx, name );`](api/mg_get_option.md)
+* [`mg_get_server_ports( ctx, size, ports );`](api/mg_get_server_ports.md)
+* [`mg_get_user_data( ctx );`](api/mg_get_user_data.md)
+* [`mg_set_auth_handler( ctx, uri, handler, cbdata 
);`](api/mg_set_auth_handler.md)
+* [`mg_set_request_handler( ctx, uri, handler, cbdata 
);`](api/mg_set_request_handler.md)
+* [`mg_set_websocket_handler( ctx, uri, connect_handler, ready_handler, 
data_handler, close_handler, cbdata );`](api/mg_set_websocket_handler.md)
+
+* [`mg_lock_context( ctx );`](api/mg_lock_context.md)
+* [`mg_unlock_context( ctx );`](api/mg_unlock_context.md)
+
+* [`mg_get_context( conn );`](api/mg_get_context.md)
+
+* [`mg_send_http_error( conn, status_code, fmt, ... 
);`](api/mg_send_http_error.md)
+
+* [`mg_send_digest_access_authentication_request( conn, realm 
);`](api/mg_send_digest_access_authentication_request.md)
+* [`mg_check_digest_access_authentication( conn, realm, filename 
);`](api/mg_check_digest_access_authentication.md)
+* [`mg_modify_passwords_file( passwords_file_name, realm, user, password 
);`](api/mg_modify_passwords_file.md)
+
+
+## Client API Functions
+
+* [`mg_connect_client( host, port, use_ssl, error_buffer, error_buffer_size 
);`](api/mg_connect_client.md)
+* [`mg_connect_websocket_client( host, port, use_ssl, error_buffer, 
error_buffer_size, path, origin, data_func, close_func, 
user_data);`](api/mg_connect_websocket_client.md)
+* [`mg_websocket_client_write( conn, opcode, data, data_len 
);`](api/mg_websocket_client_write.md)
+
+* [`mg_download( host, port, use_ssl, error_buffer, error_buffer_size, fmt, 
... );`](api/mg_download.md)
+
+
+## Common API Functions
+
+* [`mg_close_connection( conn );`](api/mg_close_connection.md)
+* [`mg_cry( conn, fmt, ... );`](api/mg_cry.md)
+
+* [`mg_get_cookie( cookie, var_name, buf, buf_len );`](api/mg_get_cookie.md)
+* [`mg_get_header( conn, name );`](api/mg_get_header.md)
+* [`mg_get_request_info( conn );`](api/mg_get_request_info.md)
+* [`mg_get_response( conn, ebuf, ebuf_len, timeout );`](api/mg_get_response.md)
+* [`mg_get_response_code_text( conn, response_code 
);`](api/mg_get_response_code_text.md)
+* [`mg_get_user_connection_data( conn );`](api/mg_get_user_connection_data.md)
+* [`mg_get_valid_options();`](api/mg_get_valid_options.md)
+* [`mg_get_var( data, data_len, var_name, dst, dst_len );`](api/mg_get_var.md)
+* [`mg_get_var2( data, data_len, var_name, dst, dst_len, occurrence 
);`](api/mg_get_var2.md)
+* [`mg_handle_form_request( conn, fdh );`](api/mg_handle_form_request.md)
+* [`mg_lock_connection( conn );`](api/mg_lock_connection.md)
+* [`mg_md5( buf, ... );`](api/mg_md5.md)
+* [`mg_printf( conn, fmt, ... );`](api/mg_printf.md)
+* [`mg_read( conn, buf, len );`](api/mg_read.md)
+* [`mg_send_chunk( conn, buf, len );`](api/mg_send_chunk.md)
+* [`mg_send_file( conn, path );`](api/mg_send_file.md)
+* [`mg_send_mime_file( conn, path, mime_type );`](api/mg_send_mime_file.md)
+* [`mg_send_mime_file2( conn, path, mime_type, additional_headers 
);`](api/mg_send_mime_file2.md)
+* [`mg_set_user_connection_data( conn, data 
);`](api/mg_set_user_connection_data.md)
+* [`mg_start_thread( f, p );`](api/mg_start_thread.md)
+* [`mg_store_body( conn, path );`](api/mg_store_body.md)
+* [`mg_strcasecmp( s1, s2 );`](api/mg_strcasecmp.md)
+* [`mg_strncasecmp( s1, s2, len );`](api/mg_strncasecmp.md)
+* [`mg_unlock_connection( conn );`](api/mg_unlock_connection.md)
+* [`mg_url_decode( src, src_len, dst, dst_len, is_form_url_encoded 
);`](api/mg_url_decode.md)
+* [`mg_url_encode( src, dst, dst_len );`](api/mg_url_encode.md)
+* [`mg_websocket_write( conn, opcode, data, data_len 
);`](api/mg_websocket_write.md)
+* [`mg_write( conn, buf, len );`](api/mg_write.md)
+
+
+## Diagnosis Functions
+
+* [`mg_get_system_info( buffer, buf_len );`](api/mg_get_system_info.md)
+* [`mg_get_context_info( ctx, buffer, buf_len );`](api/mg_get_context_info.md)
+* [`mg_get_connection_info( ctx, idx, buffer, buf_len 
);`](api/mg_get_context_info.md)
+
+
+## Deprecated:
+
+* [~~`mg_get_valid_option_names();`~~](api/mg_get_valid_option_names.md)
+* [~~`mg_upload( conn, destination_dir );`~~](api/mg_upload.md)
+
+

Reply via email to