You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jr...@apache.org on 2018/04/05 19:34:25 UTC

[50/51] [partial] qpid-proton git commit: PROTON-1728: Reorganize the source tree

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/.appveyor.yml
----------------------------------------------------------------------
diff --git a/.appveyor.yml b/.appveyor.yml
new file mode 100644
index 0000000..0fb3c64
--- /dev/null
+++ b/.appveyor.yml
@@ -0,0 +1,27 @@
+version: '{branch}.{build}'
+configuration: RelWithDebInfo
+environment:
+  matrix:
+    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+      CMAKE_GENERATOR: Visual Studio 15
+    - CMAKE_GENERATOR: Visual Studio 12
+    - CMAKE_GENERATOR: Visual Studio 10
+install:
+- cinst -y swig
+cache:
+- C:\ProgramData\chocolatey\bin -> .appveyor.yml
+- C:\ProgramData\chocolatey\lib -> .appveyor.yml
+before_build:
+- mkdir BLD
+- cd BLD
+- cmake -G "%CMAKE_GENERATOR%" %QPID_PROTON_CMAKE_ARGS% ..
+- cd ..
+build:
+  project: BLD/Proton.sln
+  parallel: true
+  verbosity: normal
+test_script:
+- cd BLD
+- cmake --build . --target install --config %CONFIGURATION%
+- ctest -V -C %CONFIGURATION% %QPID_PROTON_CTEST_ARGS%
+- cd ..

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 77eb77d..51bc44d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,44 +1,58 @@
-# Emacs, vim etc
-*~
-*.swp
-
-# Start of IntelliJ IDE files
-.idea
-.idea/*
-*.iml
-*.ipr
-*.iws
-# End of IntelliJ IDE files
+# General
 
 /build/
+/bld/
 *.class
+*.o
+*.d
 *.pyc
 *.pyo
-target
 
-# MacOS File
-.DS_Store
+# Artifacts in /c/src/
+
+/c/src/codec/encodings.h
+/c/src/protocol.h
+/c/src/proton
+/c/src/test
+/c/src/libqpidproton.so
+
+# Emacs, vim etc
+
+*~
+*.swp
+
+# Eclipse IDE files
 
-# Start of Eclipse IDE files
 .project
 .classpath
 .settings
 .cproject
 eclipse-classes
 .pydevproject
-# End of Eclipse IDE files
 
-# The usual location for proton-c build files
-proton-c/build
+# IntelliJ IDE files
 
-# Testresults from the jenkins build script
-testresults
+.idea
+.idea/*
+*.iml
+*.ipr
+*.iws
+
+# MacOS files
+
+.DS_Store
 
 # Python TOX test build output
-/proton-c/bindings/python/MANIFEST
-/proton-c/bindings/python/build
+
+/python/MANIFEST
+/python/build
+
+# Test results from the jenkins build script
+
+testresults
 
 # Visual Studio config
+
 /.vs
 /.vscode
 /CMakeSettings.json

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4934451..571fbee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,19 +16,53 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+
 cmake_minimum_required (VERSION 2.8.12)
 
 project (Proton C)
 
-# Enable testing
-enable_testing()
+set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/tools/cmake/Modules")
+set (CMAKE_THREAD_PREFER_PTHREAD TRUE)
+
 include (CTest)
+include (CheckLanguage)
+include (CheckLibraryExists)
+include (CheckSymbolExists)
+include (CheckPythonModule)
 
-# Pull in local cmake modules
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/tools/cmake/Modules/")
+find_package (OpenSSL)
+find_package (Threads)
+find_package (PythonInterp REQUIRED)
+
+enable_testing ()
+
+## Swig
+
+find_package (SWIG)
+# FindSwig.cmake "forgets" to make its outputs advanced like a good citizen
+mark_as_advanced (SWIG_DIR SWIG_EXECUTABLE SWIG_VERSION)
+
+## Cyrus SASL
+
+find_library (CYRUS_SASL_LIBRARY sasl2)
+find_path (CYRUS_SASL_INCLUDE_DIR sasl/sasl.h PATH_SUFFIXES include)
+find_package_handle_standard_args (CyrusSASL DEFAULT_MSG CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
+mark_as_advanced(CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
+# Find saslpasswd2 executable to generate test config
+find_program (SASLPASSWD_EXE saslpasswd2 DOC "Program used to make the SASL user db for testing")
+mark_as_advanced (SASLPASSWD_EXE)
+
+## Variables used across components
+
+set (PN_ENV_SCRIPT "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/scripts/env.py")
+set (PN_C_INCLUDE_DIR "${CMAKE_BINARY_DIR}/c/include")
+set (PN_C_LIBRARY_DIR "${CMAKE_BINARY_DIR}/c")
+set (PN_C_SOURCE_DIR "${CMAKE_BINARY_DIR}/c/src")
+
+## C++
+
+check_language (CXX)
 
-include (CheckLanguage)
-check_language(CXX)
 if (CMAKE_CXX_COMPILER)
   enable_language(CXX)
 endif()
@@ -78,7 +112,7 @@ if (CMAKE_BUILD_TYPE MATCHES "Coverage")
   make_directory(coverage_results)
   add_custom_target(coverage
     WORKING_DIRECTORY ./coverage_results
-    COMMAND ${CMAKE_SOURCE_DIR}/bin/record-coverage.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
+    COMMAND ${CMAKE_SOURCE_DIR}/scripts/record-coverage.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
 endif()
 
 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
@@ -89,7 +123,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
   endif ()
 endif ()
 
-file(READ version.txt PN_VERSION_FILE)
+file(READ VERSION.txt PN_VERSION_FILE)
 string(STRIP ${PN_VERSION_FILE} PN_VERSION_LINE)
 string(REPLACE "-" ";" PN_VERSION_SPLIT "${PN_VERSION_LINE}")
 list(GET PN_VERSION_SPLIT 0 PN_VERSION_CLEAN)
@@ -141,6 +175,22 @@ set (MAN_INSTALL_DIR share/man CACHE PATH "Manpage directory")
 
 mark_as_advanced (INCLUDE_INSTALL_DIR LIB_INSTALL_DIR SYSCONF_INSTALL_DIR SHARE_INSTALL_DIR MAN_INSTALL_DIR)
 
+macro (pn_absolute_install_dir NAME VALUE PREFIX)
+  if (IS_ABSOLUTE ${VALUE})
+    set (${NAME} "${VALUE}")
+  elseif (IS_ABSOLUTE ${PREFIX})
+    set (${NAME} "${PREFIX}/${VALUE}")
+  else ()
+    set (${NAME} "${CMAKE_BINARY_DIR}/${PREFIX}/${VALUE}")
+  endif ()
+  get_filename_component (${NAME} ${${NAME}} ABSOLUTE)
+endmacro ()
+
+pn_absolute_install_dir (PREFIX "." ${CMAKE_INSTALL_PREFIX})
+pn_absolute_install_dir (EXEC_PREFIX "." ${CMAKE_INSTALL_PREFIX})
+pn_absolute_install_dir (LIBDIR ${LIB_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX})
+pn_absolute_install_dir (INCLUDEDIR ${INCLUDE_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX})
+
 ## LANGUAGE BINDINGS
 
 # Default directory for language bindings not being installed into
@@ -167,14 +217,13 @@ set (PROTON_SHARE ${SHARE_INSTALL_DIR}/proton-${PN_VERSION})
 if (CMAKE_BUILD_TYPE MATCHES "Coverage")
   message(STATUS "Building for coverage analysis; no run-time error detection")
 else ()
-  # Check for valgrind here so tests under proton-c/ and examples/ can use it.
   find_program(VALGRIND_EXECUTABLE valgrind DOC "Location of the valgrind program")
   mark_as_advanced (VALGRIND_EXECUTABLE)
 
   option(ENABLE_VALGRIND "Use valgrind to detect run-time problems" ON)
   if (ENABLE_VALGRIND)
     if (VALGRIND_EXECUTABLE)
-      set (VALGRIND_SUPPRESSIONS ${CMAKE_SOURCE_DIR}/proton-c/src/tests/valgrind.supp CACHE STRING "Default valgrind suppressions")
+      set (VALGRIND_SUPPRESSIONS ${CMAKE_SOURCE_DIR}/c/tests/valgrind.supp CACHE STRING "Default valgrind suppressions")
       set (VALGRIND_OPTIONS "--error-exitcode=42 --quiet --leak-check=full --trace-children=yes" CACHE STRING "Default valgrind options")
       mark_as_advanced(VALGRIND_SUPPRESSIONS VALGRIND_OPTIONS)
       set (VALGRIND_ENV "VALGRIND=${VALGRIND_EXECUTABLE}" "VALGRIND_ARGS=${VALGRIND_OPTIONS} --suppressions=${VALGRIND_SUPPRESSIONS}")
@@ -186,7 +235,7 @@ else ()
   endif ()
 endif ()
 
-# Options to enable sanitizing compile flags. Compile flags are set in proton-c/CMakeLists.txt
+# Options to enable sanitizing compile flags. Compile flags are set in c/CMakeLists.txt
 option(ENABLE_SANITIZERS "Compile with sanitizers (ASan, UBSan, TSan); incompatible with Valgrind" OFF)
 option(ENABLE_TSAN "Compile with Thread Sanitizer (TSan); incompatible with Valgrind" OFF)
 if (ENABLE_SANITIZERS OR ENABLE_TSAN)
@@ -208,14 +257,167 @@ macro(set_search_path result)
   file(TO_NATIVE_PATH "${${result}}" ${result}) # native slash separators
 endmacro()
 
-add_subdirectory(proton-c)
-add_subdirectory(examples)
+if (CMAKE_SYSTEM_NAME STREQUAL Windows)
+  # No change needed for windows already use correct separator
+  function(to_native_path path result)
+    file (TO_NATIVE_PATH "${path}" path)
+    set (${result} ${path} PARENT_SCOPE)
+  endfunction()
+else (CMAKE_SYSTEM_NAME STREQUAL Windows)
+  # Just change ';'->':'
+  function(to_native_path path result)
+    file (TO_NATIVE_PATH "${path}" path)
+    string (REGEX REPLACE ";" ":" path "${path}")
+    set (${result} ${path} PARENT_SCOPE)
+  endfunction()
+endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
+
+add_custom_target(docs)
+add_custom_target(doc DEPENDS docs)
+
+# Note: Process bindings after the source lists have been defined so
+# the bindings can reference them.
+add_subdirectory(c)
+
+# Add bindings that do not require swig here - the directory name must be the same as the binding name
+# See below for swig bindings
+set(BINDINGS cpp go)
+
+if (CMAKE_CXX_COMPILER)
+  set (DEFAULT_CPP ON)
+endif()
+
+# Prerequisites for Go
+find_program(GO_EXE go)
+mark_as_advanced(GO_EXE)
+if (GO_EXE)
+  if(WIN32)
+    # Go on windows requires gcc tool chain
+    set (DEFAULT_GO OFF)
+  else()
+    set (DEFAULT_GO ON)
+  endif()
+endif (GO_EXE)
+
+if(SWIG_FOUND)
+  # Add any new swig bindings here - the directory name must be the same as the binding name
+  list(APPEND BINDINGS python ruby)
+
+  include(UseSWIG)
+
+  # All swig modules should include ${PROTON_HEADERS} in SWIG_MODULE_<name>_EXTRA_DEPS
+  file(GLOB PROTON_HEADERS "${CMAKE_SOURCE_DIR}/c/include/proton/*.h")
+  # All swig modules should include ${BINDING_DEPS} in swig_link_libraries
+  set (BINDING_DEPS qpid-proton)
+
+  # Add a block here to detect the prerequisites to build each language binding:
+  #
+  # If the prerequisites for the binding are present set a variable called
+  # DEFAULT_{uppercase name of binding} to ON
+
+  # Prerequisites for Python wrapper:
+  find_package (PythonLibs ${PYTHON_VERSION_STRING} EXACT)
+  if (PYTHONLIBS_FOUND)
+    set (DEFAULT_PYTHON ON)
+  endif (PYTHONLIBS_FOUND)
+
+  # Prerequisites for Ruby:
+  find_package(Ruby)
+  if (RUBY_FOUND)
+    set (DEFAULT_RUBY ON)
+  endif (RUBY_FOUND)
+endif()
+
+# To kick-start a build with just a few bindings enabled by default, e.g. ruby and go:
+#
+#     cmake -DBUILD_BINDINGS=ruby;go
+#
+# This is only used when CMakeCache.txt is first created, after that set the normal
+# BUILD_XXX variables to enable/disable bindings.
+#
+if (NOT DEFINED BUILD_BINDINGS)
+  set(BUILD_BINDINGS "${BINDINGS}")
+endif()
+
+foreach(BINDING ${BINDINGS})
+  string(TOUPPER ${BINDING} UBINDING)
+  list(FIND BUILD_BINDINGS ${BINDING} N)
+  if(NOBUILD_${UBINDING} OR ( N EQUAL -1 ) ) # Over-ridden or not on the BUILD_BINDINGS list
+    set(DEFAULT_${UBINDING} OFF)
+  endif()
+  option(BUILD_${UBINDING} "Build ${BINDING} language binding" ${DEFAULT_${UBINDING}})
+  if (BUILD_${UBINDING})
+    add_subdirectory(${BINDING})
+  endif ()
+endforeach(BINDING)
+
+unset(BUILD_BINDINGS CACHE) # Remove from cache, only relevant when creating the initial cache.
+
+# python test: tests/python/proton-test
+if (BUILD_PYTHON)
+  set (py_root "${pn_test_root}/python")
+  set (py_src "${CMAKE_CURRENT_SOURCE_DIR}/python")
+  set (py_bin "${CMAKE_CURRENT_BINARY_DIR}/python")
+  set (py_dll "$<TARGET_FILE_DIR:_cproton>")
+  set (py_bld "$<TARGET_FILE_DIR:qpid-proton>") # For windows
+  set (app_path $<TARGET_FILE_DIR:msgr-send> "${pn_test_root}/tools/apps/python")
+  set (py_path ${py_bld} ${app_path} $ENV{PATH})
+  set (py_pythonpath ${py_root} ${py_src} ${py_bin} ${py_dll} $ENV{PYTHONPATH})
+  to_native_path ("${py_pythonpath}" py_pythonpath)
+  to_native_path ("${py_path}" py_path)
+
+  if (CMAKE_BUILD_TYPE MATCHES "Coverage")
+    set (python_coverage_options -m coverage run)
+  endif(CMAKE_BUILD_TYPE MATCHES "Coverage")
+
+  add_test (NAME python-test
+            COMMAND ${PN_ENV_SCRIPT}
+              "PATH=${py_path}" "PYTHONPATH=${py_pythonpath}"
+              "SASLPASSWD=${SASLPASSWD_EXE}"
+              ${VALGRIND_ENV}
+              ${PYTHON_EXECUTABLE} -- ${python_coverage_options} "${py_root}/proton-test")
+  set_tests_properties(python-test PROPERTIES PASS_REGULAR_EXPRESSION "Totals: .* 0 failed")
+
+  # Eventually, we'll get rid of this check when other
+  # platforms will be supported. Since `setup.py` will skip
+  # the build for non linux plaforms, it doesn't make sense
+  # to try to run them.
+  option(TOX_TEST "Enable muti-version python testing with TOX" ON)
+  set(tox_default "py26,py27,py33,py34,py35,py36")
+  set(TOX_ENVLIST ${tox_default} CACHE STRING "List of python environments for TOX tests" )
+  if (NOT (TOX_ENVLIST STREQUAL tox_default))
+    message(WARNING "non-default TOX test set '${TOX_ENVLIST}' (default '${tox_default}')")
+  endif()
+  if (CMAKE_SYSTEM_NAME STREQUAL Linux AND TOX_TEST)
+    find_program(TOX_EXE "tox")
+    if (CMAKE_BUILD_TYPE MATCHES "Coverage")
+      message(STATUS "Building for coverage analysis; skipping the python-tox-tests")
+    elseif (TOX_EXE)
+      configure_file(
+        "${CMAKE_CURRENT_SOURCE_DIR}/misc/tox.ini.in"
+        "${CMAKE_CURRENT_BINARY_DIR}/tox.ini")
+      add_test (NAME python-tox-test
+                COMMAND ${PN_ENV_SCRIPT}
+                  "PATH=${py_path}"
+                  "SASLPASSWD=${SASLPASSWD_EXE}"
+                  "SWIG=${SWIG_EXECUTABLE}"
+                  ${VALGRIND_ENV}
+                  ${TOX_EXE})
+      set_tests_properties(python-tox-test
+                           PROPERTIES
+                             PASS_REGULAR_EXPRESSION "Totals: .* ignored, 0 failed"
+                             FAIL_REGULAR_EXPRESSION "ERROR:[ ]+py[0-9]*: commands failed")
+    else (TOX_EXE)
+      message(STATUS "The tox tool is not available; skipping the python-tox-tests")
+    endif ()
+  endif (CMAKE_SYSTEM_NAME STREQUAL Linux AND TOX_TEST)
+endif (BUILD_PYTHON)
 
-install (FILES LICENSE README.md
+install (FILES LICENSE.txt README.md
          DESTINATION ${PROTON_SHARE})
 
 # Generate test environment settings
-configure_file(${CMAKE_SOURCE_DIR}/config.sh.in
+configure_file(${CMAKE_SOURCE_DIR}/misc/config.sh.in
                ${CMAKE_BINARY_DIR}/config.sh @ONLY)
-configure_file(${CMAKE_SOURCE_DIR}/config.bat.in
+configure_file(${CMAKE_SOURCE_DIR}/misc/config.bat.in
                ${CMAKE_BINARY_DIR}/config.bat @ONLY)

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/DEVELOPERS.md
----------------------------------------------------------------------
diff --git a/DEVELOPERS.md b/DEVELOPERS.md
deleted file mode 100644
index 65eee2c..0000000
--- a/DEVELOPERS.md
+++ /dev/null
@@ -1,104 +0,0 @@
-Qpid Proton Developer Information
-=================================
-
-Development Environment
------------------------
-
-First you will need to set up your basic build environment with CMake and all
-prerequisites (see the instructions in INSTALL) so that you can build the full
-code base.
-
-To setup shell variables for your development environment, you must source
-the file config.sh from the CMake build directory.
-
-    $ cd build
-    $ source config.sh
-
-This file sets the necessary environment variables for all supported
-dynamic languages (Python and Ruby) and for running the tests.
-
-Testing
--------
-
-As a developer on Proton, it is a good idea to build and test with the
-appropriate dependencies and settings in place so that the complete set of
-language bindings and implementations are present.
-
-### Running tests
-
-To test Proton you should use the CMake build. By default this will invoke the
-maven tests as well, so the maven prerequisites will additionally be required.
-
-By default the unit tests are run using the system's default Python
-interpreter.  However, Proton's Python language bindings support both
-versions of the python language (Python 2.x and Python 3.x).  These
-bindings should be tested using both versions of the Python
-interpreter.  CMake makes this possible by automatically running the
-python unit tests under all versions of python installed on the
-system.
-
-Developers can ensure that Proton remains compatible with both
-versions of Python by installing the following prerequisites:
-
-_Note: currently CMake only supports multi-Python testing in **Linux**
-based environments.  Non-Linux developers may skip the following two
-steps._
-
-1. Installing both Python2.x and Python3.x and their associated
-development environments on your system.  Most modern Linux
-distributions support installing Python 2.x and Python 3.x in
-parallel.
-
-2. Install the **tox** Python testing tool, e.g. for older Fedora:
-
-   $ yum install python-tox
-
-   For newer fedora:
-
-   $ dnf install python3-tox redhat-rpm-config
-
-To run the tests, cd into your build directory and use the following commands:
-
-    # to run all the tests, summary mode
-    $ ctest
-
-    # to list the available testsuites
-    $ ctest -N
-
-    # to run a single testsuite, verbose output
-    $ ctest -V -R c-engine-tests
-
-Additional packages required for testing the language bindings:
-
-    # ruby dependencies
-    $ yum install rubygem-minitest
-
-    # alternatively ruby depedencies on non-RPM based systems
-    $ gem install minitest
-
-To run coverage reporting:
-
-    # install coverage tools
-    $ dnf install lcov
-    $ pip install coverage
-
-    $ cmake -DCMAKE_BUILD_TYPE=Coverage && make && ctest && make coverage
-    # Then browse to {CMAKE_BUILD_DIR}/coverage_results/html/index.html
-
-Mailing list
-------------
-
-Subscribe to the Qpid mailing lists using details at:
-
-  http://qpid.apache.org/discussion.html
-
-
-Patches
--------
-
-The best way to submit patches is to create a bug report or feature request
-on the project's JIRA instance:
-
-  http://issues.apache.org/jira/browse/PROTON
-
-You can attach any patch(es) to the report/request there

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 7d0fda9..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,215 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-PROTON SUBCOMPONENTS:
-
-Proton includes freegetopt with a separate BSD license.  Your use
-of the source code for freegetopt is subject to the terms and
-conditions of its license in examples/include/pncompat/internal/LICENSE.
-
-The setup scripts for the python bindings include files derived by
-PyZMQ and are licensed with a separate Modified BSD license.  Use of
-the source code in these setup files are subject to the terms and
-conditions in the license:
-proton-c/bindings/python/setuputils/PYZMQ_LICENSE.BSD.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/LICENSE.txt
----------------------------------------------------------------------
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..c1d5038
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,215 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+PROTON SUBCOMPONENTS:
+
+Proton includes freegetopt with a separate BSD license.  Your use
+of the source code for freegetopt is subject to the terms and
+conditions of its license in the license file
+c/tools/include/pncompat/internal/LICENSE.txt.
+
+The setup scripts for the python bindings include files derived by
+PyZMQ and are licensed with a separate Modified BSD license.  Use of
+the source code in these setup files are subject to the terms and
+conditions in the license file python/setuputils/PYZMQ_LICENSE.BSD.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index a223337..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Qpid Proton
-Copyright 2012-2018 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/NOTICE.txt
----------------------------------------------------------------------
diff --git a/NOTICE.txt b/NOTICE.txt
new file mode 100644
index 0000000..a223337
--- /dev/null
+++ b/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Qpid Proton
+Copyright 2012-2018 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index b1bca51..94dd0e0 100644
--- a/README.md
+++ b/README.md
@@ -33,11 +33,11 @@ Standard - Built around the AMQP 1.0 messaging standard, Proton is not only
 ideal for building out your own messaging applications but also for connecting
 them to the broader ecosystem of AMQP 1.0-based messaging applications.
 
+Please see http://qpid.apache.org/proton for more information.
+
 Getting Started
 ---------------
 
-See the included INSTALL.md file for build and install instructions and the
-DEVELOPERS file for information on how to modify and test the library code
-itself.
-
-Please see http://qpid.apache.org/proton for a more info.
+See the included [INSTALL.md](INSTALL.md) file for build and install
+instructions and the [developers.md](docs/developers.md) file for
+information on how to modify and test the library code itself.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/RELEASE.md
----------------------------------------------------------------------
diff --git a/RELEASE.md b/RELEASE.md
deleted file mode 100644
index dddc609..0000000
--- a/RELEASE.md
+++ /dev/null
@@ -1,30 +0,0 @@
-### Building a release for vote:
-
-1. Grab a clean checkout for safety.
-2. Run: "git checkout ${BRANCH}" if needed.
-3. Update the versions:
-  - Run: "bin/version.sh ${VERSION}", e.g: bin/version.sh 0.18.0
-  - Update the version(s) if needed in file: proton-c/bindings/python/docs/conf.py
-4. Commit the changes, tag them.
-  - Run: "git add ."
-  - Run: 'git commit -m "update versions for ${TAG}"'
-  - Run: 'git tag -m "tag ${TAG}" ${TAG}', e.g: git tag -m "tag 0.18.0-rc1" 0.18.0-rc1
-5. Run: "bin/export.sh $PWD ${TAG}" to create the qpid-proton-${VERSION}.tar.gz release archive.
-6. Create signature and checksum files for the archive:
-  - e.g "gpg --detach-sign --armor qpid-proton-${VERSION}.tar.gz"
-  - e.g "sha512sum qpid-proton-${VERSION}.tar.gz > qpid-proton-${VERSION}.tar.gz.sha512"
-7. Push branch changes and tag.
-  - Also update versions to the applicable snapshot version for future work on it.
-8. Commit artifacts to dist dev repo in https://dist.apache.org/repos/dist/dev/qpid/proton/${TAG} dir.
-9. Send vote email, provide links to dist dev repo and JIRA release notes.
-
-
-### After a vote succeeds:
-
-1. Tag the RC with the final version.
-2. Add the artifacts to dist release repo:
-   svn cp -m "add files for qpid-proton-${VERSION}" https://dist.apache.org/repos/dist/dev/qpid/proton/${TAG} https://dist.apache.org/repos/dist/release/qpid/proton/${VERSION}
-3. Give the mirrors some time to distribute things. Can take 24hrs for good coverage.
-  - Status is visible at: https://www.apache.org/mirrors/
-4. Update the website with release content.
-5. Send release announcement email.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/VERSION.txt
----------------------------------------------------------------------
diff --git a/VERSION.txt b/VERSION.txt
new file mode 100644
index 0000000..4d67773
--- /dev/null
+++ b/VERSION.txt
@@ -0,0 +1 @@
+0.23.0-SNAPSHOT

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/appveyor.yml
----------------------------------------------------------------------
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index 80f1585..0000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: '{branch}.{build}'
-configuration: RelWithDebInfo
-environment:
-  matrix:
-    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
-      CMAKE_GENERATOR: Visual Studio 15
-    - CMAKE_GENERATOR: Visual Studio 12
-    - CMAKE_GENERATOR: Visual Studio 10
-install:
-- cinst -y swig
-cache:
-- C:\ProgramData\chocolatey\bin -> appveyor.yml
-- C:\ProgramData\chocolatey\lib -> appveyor.yml
-before_build:
-- mkdir BLD
-- cd BLD
-- cmake -G "%CMAKE_GENERATOR%" %QPID_PROTON_CMAKE_ARGS% ..
-- cd ..
-build:
-  project: BLD/Proton.sln
-  parallel: true
-  verbosity: normal
-test_script:
-- cd BLD
-- cmake --build . --target install --config %CONFIGURATION%
-- ctest -V -C %CONFIGURATION% %QPID_PROTON_CTEST_ARGS%
-- cd ..

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/bin/export.sh
----------------------------------------------------------------------
diff --git a/bin/export.sh b/bin/export.sh
deleted file mode 100755
index ee2c23c..0000000
--- a/bin/export.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/bash
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# export.sh - Create a release archive.
-set -e
-trap "cleanup" 0 1 2 3 9 11 13 15
-
-ME=$(basename ${0})
-SRC=$(dirname $(dirname $(readlink -f $0)))
-
-usage()
-{
-    echo
-    echo "Usage: ${ME} [DIR] [TAG]"
-    exit 1
-}
-
-cleanup()
-{
-    trap - 0 1 2 3 9 11 13 15
-    echo
-    [ ${WORKDIR} ] && [ -d ${WORKDIR} ] && rm -rf ${WORKDIR}
-}
-
-DIR=$PWD
-TAG=$(git describe --tags --always)
-
-##
-## Allow overrides to be passed on the cmdline
-##
-if [ $# -gt 2 ]; then
-    usage
-elif [ $# -ge 1 ]; then
-    DIR=$1
-    if [ $# -eq 2 ]; then
-        TAG=$2
-    fi
-fi
-
-# verify the tag exists
-git rev-list -1 tags/${TAG} -- >/dev/null || usage
-
-WORKDIR=$(mktemp -d)
-
-##
-## Create the archive
-##
-(
-    cd ${SRC}
-    MTIME=$(date -d @`git log -1 --pretty=format:%ct tags/${TAG}` '+%Y-%m-%d %H:%M:%S')
-    VERSION=$(git show tags/${TAG}:version.txt)
-    ARCHIVE=$DIR/qpid-proton-${VERSION}.tar.gz
-    PREFIX=qpid-proton-${VERSION}
-    [ -d ${WORKDIR} ] || mkdir -p ${WORKDIR}
-    git archive --format=tar --prefix=${PREFIX}/ tags/${TAG} \
-        | tar -x -C ${WORKDIR}
-    cd ${WORKDIR}
-    tar -c -z \
-        --owner=root --group=root --numeric-owner \
-        --mtime="${MTIME}" \
-        -f ${ARCHIVE} ${PREFIX}
-    echo "${ARCHIVE}"
-)

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/bin/jenkins-proton-c-build.sh
----------------------------------------------------------------------
diff --git a/bin/jenkins-proton-c-build.sh b/bin/jenkins-proton-c-build.sh
deleted file mode 100755
index 8b710c1..0000000
--- a/bin/jenkins-proton-c-build.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash -e
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# This is the continuous delivery build script executed after a git
-# extract by the Jenkins build process located at the following URL:
-# https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-c/
-#
-CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_INSTALL_PREFIX=$PWD/build/ship"
-XMLOUTPUT=../testresults/TEST-protonc.xml
-
-echo Arch: `arch` Uname: `uname -a` lsb_release: `lsb_release -a` User: `whoami`
-
-echo =========================
-echo Listing installed packages
-dpkg -l | \
-  awk '/^ii  (cmake |maven |ruby |python |.*jdk |swig[0-9]*)/{print $2, $3}'| \
-  sort
-echo =========================
-
-which python || exit 1
-which swig || exit 1
-
-# if python-pip is available, install the python tox test tool
-RUN_TOX=false
-PIP=$(type -p pip || true)
-if [ -n $PIP ] && [ -x "$PIP" ]; then
-    ldir=$(python -c 'import site; print("%s" % site.USER_BASE)')
-    PATH="$ldir/bin:$PATH"
-    echo "PATH=$PATH"
-    if [ $VIRTUAL_ENV ]; then
-      pip install -U tox
-    else
-      pip install --user -U tox
-    fi
-    RUN_TOX=true
-fi
-
-ls
-
-rm -rf build testresults >/dev/null 2>&1
-mkdir build testresults >/dev/null 2>&1
-
-cd build >/dev/null 2>&1
-
-cmake ${CMAKE_FLAGS} ..
-cmake --build . --target install
-
-echo Running tests
-
-$RUN_TOX && ctest -V -R 'python-tox-test'
-
-source config.sh
-
-# proton-c tests via python
-python ../tests/python/proton-test --xml=${XMLOUTPUT}
-
-# proton-c native c-* tests
-ctest -V -R '^c-*'
-
-echo 'Build completed'

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/bin/record-coverage.sh
----------------------------------------------------------------------
diff --git a/bin/record-coverage.sh b/bin/record-coverage.sh
deleted file mode 100755
index 3d1aa1d..0000000
--- a/bin/record-coverage.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /usr/bin/env bash
-
-# This script collates coverage data already present from running instrumented code.
-#
-# It requires the lcov tool to be installed (this provides the lcov and genhtml commands)
-#
-# It will produce a coverage analysis for gcc or clang compiled builds and currently for
-# C and C++ parts of the build tree.
-#
-# It takes two command line arguments:
-# - The first is the proton source tree: this is mandatory.
-# - The second is the build tree: this is optional and if not specified is assumed to be the
-#   current directory.
-#
-# The output is in the form of an html report which will be found in the generated html directory.
-# - There will also be a number of intermediate files left in the current directory.
-#
-# The typical way to use it would be to use the "Coverage" build type to get instrumented
-# code, then to run the tests then to extract the coverage information from running the
-# tests.
-# Something like:
-#   cmake $PROTON_SRC -DCMAKE_BUILD_TYPE=Coverage
-#   make
-#   make test
-#   make coverage
-
-# set -x
-
-# get full path
-function getpath {
-  pushd -n $1 > /dev/null
-  echo $(dirs -0 -l)
-  popd -n > /dev/null
-}
-
-SRC=${1?}
-BLD=${2:-.}
-
-BLDPATH=$(getpath $BLD)
-SRCPATH=$(getpath $SRC)
-
-# Get base profile
-# - this initialises 0 counts for every profiled file
-#   without this step any file with no counts at all wouldn't
-#   show up on the final output.
-lcov -c -i -d $BLDPATH -o proton-base.info
-
-# Get actual coverage data
-lcov -c -d $BLDPATH -o proton-ctest.info
-
-# Total them up
-lcov --add proton-base.info --add proton-ctest.info > proton-total-raw.info
-
-# Snip out stuff in /usr (we don't care about coverage in system code)
-lcov --remove proton-total-raw.info "/usr/include*" "/usr/share*" > proton-total.info
-
-# Generate report
-rm -rf html
-genhtml -p $SRCPATH -p $BLDPATH proton-total.info --title "Proton CTest Coverage" --demangle-cpp -o html
-

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/bin/release.sh
----------------------------------------------------------------------
diff --git a/bin/release.sh b/bin/release.sh
deleted file mode 100755
index 0c57d30..0000000
--- a/bin/release.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# release.sh - Creates a release.
-
-ME=$(basename ${0})
-CURRDIR=$PWD
-SRC=$(dirname $(dirname $(readlink -f $0)))
-
-usage()
-{
-    echo "Usage: ${ME} VERSION TAG"
-    exit 1
-}
-
-if [ $# == 2 ]; then
-    VERSION=$1
-    TAG=$2
-else
-    usage
-fi
-
-die()
-{
-    printf "ERROR: %s\n" "$*"
-    exit 1
-}
-
-##
-## Create the tag
-##
-(
-    cd ${SRC}
-    if [ -n "$(git status -uno --porcelain)" ]; then
-        die must release from a clean checkout
-    fi
-    BRANCH=$(git symbolic-ref -q --short HEAD)
-    if [ -n "${BRANCH}" ]; then
-        REMOTE=$(git config branch.${BRANCH}.remote)
-    else
-        REMOTE="origin"
-    fi
-    git checkout --detach && \
-        bin/version.sh $VERSION && \
-        git commit -a -m "Release $VERSION" && \
-        git tag -m "Release $VERSION" $TAG && \
-        echo "Run 'git push ${REMOTE} ${TAG}' to push the tag upstream."
-)

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/bin/version.sh
----------------------------------------------------------------------
diff --git a/bin/version.sh b/bin/version.sh
deleted file mode 100755
index d6f5126..0000000
--- a/bin/version.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# version.sh - Sets the version of the proton source tree to the given
-#              value.
-
-ME=$(basename ${0})
-usage()
-{
-    echo "Usage: ${ME} [SRC] VERSION"
-    exit 1
-}
-
-if [ $# == 2 ]; then
-    SRC=$1
-    VERSION=$2
-elif [ $# == 1 ]; then
-    SRC=$(dirname $(dirname $(readlink -f $0)))
-    VERSION=$1
-else
-    usage
-fi
-
-echo ${VERSION} > ${SRC}/version.txt

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/c/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt
new file mode 100644
index 0000000..40b5037
--- /dev/null
+++ b/c/CMakeLists.txt
@@ -0,0 +1,681 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+include (versions.cmake)
+
+if(WIN32 AND NOT CYGWIN)
+  # linking against Windows native libraries, including mingw
+  set (PN_WINAPI TRUE)
+endif(WIN32 AND NOT CYGWIN)
+
+set(ssl_impl, none)
+if(PN_WINAPI)
+  set(ssl_impl schannel)
+  set(ssl_providers "'none','schannel','openssl'")
+else(PN_WINAPI)
+  if (OPENSSL_FOUND AND Threads_FOUND)
+    set(ssl_impl openssl)
+  endif ()
+  set(ssl_providers "'none','openssl'")
+endif(PN_WINAPI)
+set(SSL_IMPL ${ssl_impl} CACHE STRING "Library to use for SSL/TLS support. Valid values: ${ssl_providers}")
+
+set(sasl_providers cyrus none)
+if (CYRUSSASL_FOUND AND Threads_FOUND)
+  set (sasl_impl cyrus)
+else ()
+  set (sasl_impl none)
+endif ()
+set(SASL_IMPL ${sasl_impl} CACHE STRING "Library to use for SASL support. Valid values: ${sasl_providers}")
+
+configure_file (
+  "${CMAKE_CURRENT_SOURCE_DIR}/include/proton/version.h.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/include/proton/version.h"
+  )
+
+file (GLOB headers "include/proton/*.[hi]")
+
+foreach (sfile ${headers})
+  file (RELATIVE_PATH rfile ${CMAKE_CURRENT_SOURCE_DIR} ${sfile})
+  configure_file (${sfile} ${CMAKE_CURRENT_BINARY_DIR}/${rfile} COPYONLY)
+endforeach ()
+
+include_directories (
+  ${PN_C_INCLUDE_DIR}
+  "${CMAKE_CURRENT_BINARY_DIR}/src"
+  "${CMAKE_CURRENT_SOURCE_DIR}/src"
+  )
+
+add_custom_command (
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
+  COMMAND ${PN_ENV_SCRIPT} PYTHONPATH=${CMAKE_SOURCE_DIR}/tools/python ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py
+  )
+
+add_custom_command (
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
+  COMMAND ${PN_ENV_SCRIPT} PYTHONPATH=${CMAKE_SOURCE_DIR}/tools/python ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py
+  )
+
+add_custom_target(
+  generated_c_files
+  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
+  )
+
+file (GLOB_RECURSE source_files "src/*.[ch]")
+
+foreach (sfile ${source_files})
+  file (RELATIVE_PATH rfile ${CMAKE_CURRENT_SOURCE_DIR} ${sfile})
+  configure_file (${sfile} ${CMAKE_CURRENT_BINARY_DIR}/${rfile} COPYONLY)
+endforeach ()
+
+# Select IO impl
+if(PN_WINAPI)
+  set (pn_io_impl src/reactor/io/windows/io.c src/reactor/io/windows/iocp.c src/reactor/io/windows/write_pipeline.c)
+  set (pn_selector_impl src/reactor/io/windows/selector.c)
+else(PN_WINAPI)
+  set (pn_io_impl src/reactor/io/posix/io.c)
+  set (pn_selector_impl src/reactor/io/posix/selector.c)
+endif(PN_WINAPI)
+
+# Link in SASL if present
+if (SASL_IMPL STREQUAL cyrus)
+  set(pn_sasl_impl src/sasl/sasl.c src/sasl/default_sasl.c src/sasl/cyrus_sasl.c)
+  include_directories (${CYRUS_SASL_INCLUDE_DIR})
+  set(SASL_LIB ${CYRUS_SASL_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
+elseif (SASL_IMPL STREQUAL none)
+  set(pn_sasl_impl src/sasl/sasl.c src/sasl/default_sasl.c src/sasl/cyrus_stub.c)
+endif ()
+
+# Set Compiler extra flags for Solaris when using SunStudio
+if(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro" )
+  set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mt" )
+endif()
+
+if(CMAKE_C_COMPILER_ID STREQUAL "SunPro" )
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mt")
+endif()
+
+# Link in openssl if present
+if (SSL_IMPL STREQUAL openssl)
+  set (pn_ssl_impl src/ssl/openssl.c)
+  include_directories (${OPENSSL_INCLUDE_DIR})
+  set (SSL_LIB ${OPENSSL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+elseif (SSL_IMPL STREQUAL schannel)
+  set (pn_ssl_impl src/ssl/schannel.c)
+  set (SSL_LIB Crypt32.lib Secur32.lib)
+else ()
+  set (pn_ssl_impl src/ssl/ssl_stub.c)
+endif ()
+
+# First check whether we get clock_gettime without any special library linked
+CHECK_SYMBOL_EXISTS(clock_gettime "time.h" CLOCK_GETTIME_IN_LIBC)
+if (CLOCK_GETTIME_IN_LIBC)
+  list(APPEND PLATFORM_DEFINITIONS "USE_CLOCK_GETTIME")
+else (CLOCK_GETTIME_IN_LIBC)
+  CHECK_LIBRARY_EXISTS (rt clock_gettime "" CLOCK_GETTIME_IN_RT)
+  if (CLOCK_GETTIME_IN_RT)
+    set (TIME_LIB rt)
+    list(APPEND PLATFORM_DEFINITIONS "USE_CLOCK_GETTIME")
+  else (CLOCK_GETTIME_IN_RT)
+    CHECK_SYMBOL_EXISTS(GetSystemTimeAsFileTime "windows.h" WINDOWS_FILETIME)
+    if (WINDOWS_FILETIME)
+      list(APPEND PLATFORM_DEFINITIONS "USE_WIN_FILETIME")
+    else (WINDOWS_FILETIME)
+      list(APPEND PLATFORM_DEFINITIONS "USE_GETTIMEOFDAY")
+    endif (WINDOWS_FILETIME)
+  endif (CLOCK_GETTIME_IN_RT)
+endif (CLOCK_GETTIME_IN_LIBC)
+
+if (PN_WINAPI)
+  CHECK_SYMBOL_EXISTS(strerror_s "string.h" STRERROR_S_IN_WINAPI)
+  if (STRERROR_S_IN_WINAPI)
+    list(APPEND PLATFORM_DEFINITIONS "USE_STRERROR_S")
+  else (STRERROR_S_IN_WINAPI)
+    if (MINGW)
+      message (STATUS, "NOTE: your MinGW version lacks a thread safe strerror")
+      list(APPEND PLATFORM_DEFINITIONS "USE_OLD_STRERROR")
+    endif (MINGW)
+  endif (STRERROR_S_IN_WINAPI)
+else (PN_WINAPI)
+  CHECK_SYMBOL_EXISTS(strerror_r "string.h" STRERROR_R_IN_LIBC)
+  if (STRERROR_R_IN_LIBC)
+    list(APPEND PLATFORM_DEFINITIONS "USE_STRERROR_R")
+  endif (STRERROR_R_IN_LIBC)
+endif (PN_WINAPI)
+
+CHECK_SYMBOL_EXISTS(atoll "stdlib.h" C99_ATOLL)
+if (C99_ATOLL)
+  list(APPEND PLATFORM_DEFINITIONS "USE_ATOLL")
+else (C99_ATOLL)
+  CHECK_SYMBOL_EXISTS(_atoi64 "stdlib.h" WINAPI_ATOI64)
+  if (WINAPI_ATOI64)
+    list(APPEND PLATFORM_DEFINITIONS "USE_ATOI64")
+  else (WINAPI_ATOI64)
+    message(FATAL_ERROR "No atoll API found")
+  endif (WINAPI_ATOI64)
+endif (C99_ATOLL)
+
+if (PN_WINAPI)
+  set (PLATFORM_LIBS ws2_32 Rpcrt4)
+  list(APPEND PLATFORM_DEFINITIONS "PN_WINAPI")
+endif (PN_WINAPI)
+
+# Try to keep any platform specific overrides together here:
+
+# MacOS has a bunch of differences in build tools and process and so we have to turn some things
+# off if building there:
+if (APPLE)
+  set (NOENABLE_WARNING_ERROR ON)
+  set (NOENABLE_UNDEFINED_ERROR ON)
+  # TODO: Currently segfaults on MacOS - fix bug and re-enable
+  set (NOENABLE_FUZZ_TESTING ON)
+endif (APPLE)
+
+# TODO: Can't build fuzz tests/or run regression tests on MSVC currently
+# (due to limit on command line length)
+if (MSVC)
+  set (NOENABLE_FUZZ_TESTING ON)
+endif (MSVC)
+
+# Make LTO default to off until we can figure out the valgrind issues
+set (NOENABLE_LINKTIME_OPTIMIZATION ON)
+
+# Add options here called <whatever> they will turn into "ENABLE_<whatever" and can be
+# overridden on a platform specific basis above by NOENABLE_<whatever>
+set (OPTIONS WARNING_ERROR UNDEFINED_ERROR LINKTIME_OPTIMIZATION HIDE_UNEXPORTED_SYMBOLS FUZZ_TESTING)
+
+foreach (OPTION ${OPTIONS})
+  if (NOT NOENABLE_${OPTION})
+    set ("DEFAULT_${OPTION}" ON)
+  endif ()
+endforeach (OPTION)
+
+# And add the option here too with help text
+option(ENABLE_WARNING_ERROR "Consider compiler warnings to be errors" ${DEFAULT_WARNING_ERROR})
+option(ENABLE_UNDEFINED_ERROR "Check for unresolved library symbols" ${DEFAULT_UNDEFINED_ERROR})
+option(ENABLE_LINKTIME_OPTIMIZATION "Perform link time optimization" ${DEFAULT_LINKTIME_OPTIMIZATION})
+option(ENABLE_HIDE_UNEXPORTED_SYMBOLS "Only export library symbols that are explicitly requested" ${DEFAULT_HIDE_UNEXPORTED_SYMBOLS})
+option(ENABLE_FUZZ_TESTING "Enable building fuzzers and regression testing with libFuzzer" ${DEFAULT_FUZZ_TESTING})
+
+# Set any additional compiler specific flags
+if (CMAKE_COMPILER_IS_GNUCC)
+  if (ENABLE_WARNING_ERROR)
+    set (WERROR "-Werror")
+  endif (ENABLE_WARNING_ERROR)
+  set (COMPILE_WARNING_FLAGS "${WERROR} -Wall -pedantic-errors")
+  # C++ allow "%z" format specifier and variadic macros
+  set (CXX_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wno-format -Wno-variadic-macros")
+  if (NOT BUILD_WITH_CXX)
+    set (COMPILE_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wstrict-prototypes -Wc++-compat -Wvla -Wsign-compare -Wwrite-strings")
+    set (COMPILE_LANGUAGE_FLAGS "-std=c99")
+    set (COMPILE_PLATFORM_FLAGS "-std=gnu99")
+  else (NOT BUILD_WITH_CXX)
+    set (COMPILE_WARNING_FLAGS "${CXX_WARNING_FLAGS}")
+  endif (NOT BUILD_WITH_CXX)
+
+  if (ENABLE_UNDEFINED_ERROR)
+    set (CATCH_UNDEFINED "-Wl,--no-undefined")
+    set (ALLOW_UNDEFINED "-Wl,--allow-shlib-undefined")
+  endif (ENABLE_UNDEFINED_ERROR)
+
+  if (ENABLE_LINKTIME_OPTIMIZATION)
+    set (LTO "-flto")
+  endif (ENABLE_LINKTIME_OPTIMIZATION)
+
+  if (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
+  endif (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
+elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
+  if (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -xldscope=hidden")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xldscope=hidden")
+  endif (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
+endif (CMAKE_COMPILER_IS_GNUCC)
+
+if (CMAKE_C_COMPILER_ID MATCHES "Clang")
+  set (COMPILE_WARNING_FLAGS  "-Wall -pedantic")
+  set (COMPILE_LANGUAGE_FLAGS "-std=c99")
+  if (ENABLE_WARNING_ERROR)
+    set (COMPILE_WARNING_FLAGS "-Werror ${COMPILE_WARNING_FLAGS}")
+  endif (ENABLE_WARNING_ERROR)
+  # TODO aconway 2016-01-06: we should be able to clean up the code and turn on
+  # some of these warnings.
+  set (CXX_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-float-equal -Wno-padded -Wno-sign-conversion -Wno-switch-enum -Wno-weak-vtables -Wno-exit-time-destructors -Wno-global-constructors -Wno-shorten-64-to-32 -Wno-documentation -Wno-documentation-unknown-command -Wno-old-style-cast -Wno-missing-noreturn")
+endif()
+
+# Sanitizer flags apply to to both GNU and clang, C and C++
+if(ENABLE_SANITIZERS)
+  set(SANITIZE_FLAGS "-g -fno-omit-frame-pointer -fsanitize=address -fsanitize=leak -fsanitize=undefined")
+endif()
+if(ENABLE_TSAN)
+  set(SANITIZE_FLAGS "-g -fno-omit-frame-pointer -fsanitize=thread")
+endif()
+if (SANITIZE_FLAGS)
+  mark_as_advanced(SANITIZE_FLAGS)
+  if(CMAKE_C_COMPILER_ID MATCHES "Clang|GNU")
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SANITIZE_FLAGS}")
+  endif()
+  if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SANITIZE_FLAGS}")
+  endif()
+endif()
+
+# Flags for example self-test build, CACHE INTERNAL for visibility
+set(C_EXAMPLE_FLAGS "${COMPILE_WARNING_FLAGS} ${CMAKE_C_FLAGS}" CACHE INTERNAL "")
+set(C_EXAMPLE_LINK_FLAGS "${SANITIZE_FLAGS}" CACHE INTERNAL "")
+
+if (CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_COMPILER_IS_GNUCC)
+  # Ensure that examples build with c90, to deal with older c++03-as-c compilers.
+  set(C_EXAMPLE_FLAGS "${C_EXAMPLE_FLAGS} -std=iso9899:1990 -pedantic")
+endif()
+
+if (MSVC)
+    set(CMAKE_DEBUG_POSTFIX "d")
+    add_definitions(
+        /wd4244
+        /wd4267
+        /wd4800
+        /wd4996
+    )
+    set (qpid-proton-platform src/compiler/msvc/snprintf.c)
+endif (MSVC)
+
+# for full source distribution:
+set (qpid-proton-platform-all
+  src/platform/platform.c
+  src/reactor/io/windows/io.c
+  src/reactor/io/windows/iocp.c
+  src/reactor/io/windows/write_pipeline.c
+  src/reactor/io/windows/selector.c
+  src/reactor/io/posix/io.c
+  src/reactor/io/posix/selector.c
+  )
+
+# platform specific library build:
+set (qpid-proton-platform-io
+  src/platform/platform.c
+  ${pn_io_impl}
+  ${pn_selector_impl}
+  )
+
+# for full source distribution:
+set (qpid-proton-layers-all
+  src/sasl/sasl.c
+  src/sasl/default_sasl.c
+  src/sasl/cyrus_sasl.c
+  src/sasl/cyrus_stub.c
+  src/ssl/openssl.c
+  src/ssl/schannel.c
+  src/ssl/ssl_stub.c
+  )
+
+# for current build system's environment:
+set (qpid-proton-layers
+  ${pn_sasl_impl}
+  ${pn_ssl_impl}
+  )
+
+set (qpid-proton-core
+  src/core/object/object.c
+  src/core/object/list.c
+  src/core/object/map.c
+  src/core/object/string.c
+  src/core/object/iterator.c
+  src/core/object/record.c
+
+  src/core/log.c
+  src/core/util.c
+  src/core/error.c
+  src/core/buffer.c
+  src/core/types.c
+
+  src/core/framing.c
+
+  src/core/codec.c
+  src/core/decoder.c
+  src/core/encoder.c
+
+  src/core/dispatcher.c
+  src/core/connection_driver.c
+  src/core/engine.c
+  src/core/event.c
+  src/core/autodetect.c
+  src/core/transport.c
+  src/core/message.c
+  )
+
+set (qpid-proton-include-generated
+  ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
+  ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
+  ${CMAKE_CURRENT_BINARY_DIR}/include/proton/version.h
+  )
+
+set (qpid-proton-private-includes
+  src/messenger/store.h
+  src/messenger/subscription.h
+  src/messenger/messenger.h
+  src/messenger/transform.h
+  src/ssl/ssl-internal.h
+  src/sasl/sasl-internal.h
+  src/core/autodetect.h
+  src/core/log_private.h
+  src/core/config.h
+  src/core/encoder.h
+  src/core/dispatch_actions.h
+  src/core/engine-internal.h
+  src/core/transport.h
+  src/core/framing.h
+  src/core/buffer.h
+  src/core/util.h
+  src/core/dispatcher.h
+  src/core/data.h
+  src/core/decoder.h
+  src/core/max_align.h
+  src/core/message-internal.h
+  src/reactor/io/windows/iocp.h
+  src/reactor/selector.h
+  src/reactor/io.h
+  src/reactor/reactor.h
+  src/reactor/selectable.h
+  src/platform/platform.h
+  src/platform/platform_fmt.h
+  src/proactor/proactor-internal.h
+  )
+
+set (qpid-proton-extra
+  src/extra/url.c
+
+  src/reactor/reactor.c
+  src/reactor/handler.c
+  src/reactor/connection.c
+  src/reactor/acceptor.c
+  src/reactor/selectable.c
+  src/reactor/timer.c
+
+  src/handlers/handshaker.c
+  src/handlers/iohandler.c
+  src/handlers/flowcontroller.c
+
+  src/messenger/messenger.c
+  src/messenger/subscription.c
+  src/messenger/store.c
+  src/messenger/transform.c
+  )
+
+set (qpid-proton-include
+  include/proton/cid.h
+  include/proton/codec.h
+  include/proton/condition.h
+  include/proton/connection.h
+  include/proton/connection_driver.h
+  include/proton/delivery.h
+  include/proton/disposition.h
+  include/proton/engine.h
+  include/proton/error.h
+  include/proton/event.h
+  include/proton/import_export.h
+  include/proton/link.h
+  include/proton/listener.h
+  include/proton/log.h
+  include/proton/message.h
+  include/proton/netaddr.h
+  include/proton/object.h
+  include/proton/proactor.h
+  include/proton/sasl.h
+  include/proton/sasl-plugin.h
+  include/proton/session.h
+  include/proton/ssl.h
+  include/proton/terminus.h
+  include/proton/transport.h
+  include/proton/type_compat.h
+  include/proton/types.h
+  )
+
+set (qpid-proton-include-extra
+  include/proton/handlers.h
+  include/proton/messenger.h
+  include/proton/reactor.h
+  include/proton/selectable.h
+  include/proton/url.h
+  )
+
+#
+# Choose a proactor: user can set PROACTOR, or if not set pick a default.
+# The default is the first one that passes its build test, in order listed below.
+# "none" disables the proactor even if a default is available.
+#
+set(PROACTOR "" CACHE STRING "Override default proactor, one of: epoll, libuv, iocp, none")
+string(TOLOWER "${PROACTOR}" PROACTOR)
+
+if (PROACTOR STREQUAL "epoll" OR (NOT PROACTOR AND NOT BUILD_PROACTOR))
+  check_symbol_exists(epoll_wait "sys/epoll.h" HAVE_EPOLL)
+  if (HAVE_EPOLL)
+    set (PROACTOR_OK epoll)
+    set (qpid-proton-proactor src/proactor/epoll.c src/proactor/proactor-internal.c)
+    set (PROACTOR_LIBS -lpthread)
+    set_source_files_properties (${qpid-proton-proactor} PROPERTIES
+      COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_LANGUAGE_FLAGS} ${LTO}"
+      )
+  endif()
+endif()
+
+if (PROACTOR STREQUAL "iocp" OR (NOT PROACTOR AND NOT PROACTOR_OK))
+  if(WIN32 AND NOT CYGWIN)
+    set (PROACTOR_OK iocp)
+    set (qpid-proton-proactor src/proactor/win_iocp.c src/proactor/proactor-internal.c)
+    set_source_files_properties (${qpid-proton-proactor} PROPERTIES
+      COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS} ${LTO}"
+      COMPILE_DEFINITIONS "${PLATFORM_DEFINITIONS}"
+      )
+  endif(WIN32 AND NOT CYGWIN)
+endif()
+
+if (PROACTOR STREQUAL "libuv" OR (NOT PROACTOR AND NOT PROACTOR_OK))
+  find_package(Libuv)
+  if (LIBUV_FOUND)
+    set (PROACTOR_OK libuv)
+    set (qpid-proton-proactor src/proactor/libuv.c src/proactor/proactor-internal.c)
+    set (PROACTOR_LIBS ${Libuv_LIBRARIES})
+    set_source_files_properties (${qpid-proton-proactor} PROPERTIES
+      COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_LANGUAGE_FLAGS} ${LTO}"
+      )
+    include_directories(${Libuv_INCLUDE_DIRS})
+  endif()
+endif()
+
+if (PROACTOR_OK)
+  message(STATUS "Building the ${PROACTOR_OK} proactor")
+elseif (PROACTOR AND NOT PROACTOR STREQUAL "none")
+  message(FATAL_ERROR "Cannot build the ${PROACTOR} proactor")
+endif()
+
+source_group("API Header Files" FILES ${qpid-proton-include} ${qpid-proton-include-extra})
+
+set_source_files_properties (
+  ${qpid-proton-core}
+  ${qpid-proton-layers}
+  ${qpid-proton-extra}
+  PROPERTIES
+  COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_LANGUAGE_FLAGS} ${LTO}"
+  )
+
+set_source_files_properties (
+  ${qpid-proton-platform}
+  ${qpid-proton-platform-io}
+  PROPERTIES
+  COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS} ${LTO}"
+  COMPILE_DEFINITIONS "${PLATFORM_DEFINITIONS}"
+  )
+
+if (BUILD_WITH_CXX)
+  set_source_files_properties (
+    ${qpid-proton-core}
+    ${qpid-proton-proactor}
+    ${qpid-proton-layers}
+    ${qpid-proton-extra}
+    ${qpid-proton-platform}
+    ${qpid-proton-platform-io}
+    PROPERTIES LANGUAGE CXX
+    )
+endif (BUILD_WITH_CXX)
+
+add_library (
+  qpid-proton-core SHARED
+  ${qpid-proton-core}
+  ${qpid-proton-layers}
+  ${qpid-proton-platform}
+  ${qpid-proton-include}
+  ${qpid-proton-include-generated}
+  )
+add_dependencies(qpid-proton-core generated_c_files)
+
+target_link_libraries (qpid-proton-core ${UUID_LIB} ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS})
+
+set_target_properties (
+  qpid-proton-core
+  PROPERTIES
+  VERSION   "${PN_LIB_CORE_VERSION}"
+  SOVERSION "${PN_LIB_CORE_MAJOR_VERSION}"
+  LINK_FLAGS "${CATCH_UNDEFINED} ${LTO}"
+  )
+
+add_library(
+  qpid-proton SHARED
+  # Proton Core
+  ${qpid-proton-core}
+  ${qpid-proton-layers}
+  ${qpid-proton-platform}
+  ${qpid-proton-include}
+  ${qpid-proton-include-generated}
+  # Proactor
+  ${qpid-proton-proactor}
+  # Proton Reactor/Messenger
+  ${qpid-proton-extra}
+  ${qpid-proton-platform-io}
+  ${qpid-proton-include-extra}
+  )
+add_dependencies(qpid-proton generated_c_files)
+
+if (MSVC)
+  # Add a phony dependency for Windows builds to serialize creation
+  # of generated files. See issue PROTON-1376.
+  # When a Windows build creates src/encodings.h and src/protocol.h
+  # only once then this can be removed.
+  add_dependencies(qpid-proton qpid-proton-core)
+endif (MSVC)
+
+target_link_libraries (qpid-proton LINK_PRIVATE ${UUID_LIB} ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS} ${PROACTOR_LIBS})
+
+set_target_properties (
+  qpid-proton
+  PROPERTIES
+  VERSION   "${PN_LIB_LEGACY_VERSION}"
+  SOVERSION "${PN_LIB_LEGACY_MAJOR_VERSION}"
+  LINK_FLAGS "${CATCH_UNDEFINED} ${LTO}"
+  )
+
+if (MSVC)
+  # guard against use of C99 violating functions on Windows
+  include(WindowsC99CheckDef)
+endif(MSVC)
+
+if (qpid-proton-proactor)
+  # Bizarre CMake variable setting
+  set(HAS_PROACTOR True)
+  add_library (
+    qpid-proton-proactor SHARED ${qpid-proton-proactor})
+  target_link_libraries (qpid-proton-proactor  LINK_PUBLIC qpid-proton-core)
+  target_link_libraries (qpid-proton-proactor  LINK_PRIVATE ${PLATFORM_LIBS} ${PROACTOR_LIBS})
+  list(APPEND LIB_TARGETS qpid-proton-proactor)
+  set_target_properties (
+    qpid-proton-proactor
+    PROPERTIES
+    VERSION   "${PN_LIB_PROACTOR_VERSION}"
+    SOVERSION "${PN_LIB_PROACTOR_MAJOR_VERSION}"
+    LINK_FLAGS "${CATCH_UNDEFINED} ${LTO}"
+    )
+endif()
+
+# Install executables and libraries
+install(TARGETS qpid-proton qpid-proton-core ${LIB_TARGETS}
+  EXPORT  proton
+  RUNTIME DESTINATION bin
+  ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+  LIBRARY DESTINATION ${LIB_INSTALL_DIR})
+
+# Install windows qpid-proton pdb files
+if (MSVC)
+  install(FILES $<TARGET_PDB_FILE:qpid-proton>
+    DESTINATION bin
+    CONFIGURATIONS RelWithDebInfo Debug
+    OPTIONAL)
+endif (MSVC)
+
+# Install header files
+file(GLOB headers "${CMAKE_CURRENT_BINARY_DIR}/include/proton/*.[hi]")
+install (FILES ${headers} DESTINATION ${INCLUDE_INSTALL_DIR}/proton)
+
+# Set ${VAR}/${VAR}DEBUG variables, configure and install the packageconf files for LIB
+macro(configure_lib VAR LIB)
+  if(DEFINED CMAKE_IMPORT_LIBRARY_PREFIX)
+    set(LIB_PREFIX ${CMAKE_IMPORT_LIBRARY_PREFIX})
+    set(LIB_SUFFIX ${CMAKE_IMPORT_LIBRARY_SUFFIX})
+  else()
+    set(LIB_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX})
+    set(LIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
+  endif()
+  set(${VAR} ${LIB_PREFIX}${LIB}${LIB_SUFFIX})
+  set("${VAR}DEBUG" ${LIB_PREFIX}${LIB}${CMAKE_DEBUG_POSTFIX}${LIB_SUFFIX})
+  configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/lib${LIB}.pc.in
+    ${CMAKE_CURRENT_BINARY_DIR}/lib${LIB}.pc @ONLY)
+  install (FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${LIB}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+endmacro()
+
+configure_lib(PROTONLIB qpid-proton)
+configure_lib(PROTONCORELIB qpid-proton-core)
+if(HAS_PROACTOR)
+  configure_lib(PROTONPROACTORLIB qpid-proton-proactor)
+endif(HAS_PROACTOR)
+
+include(WriteBasicConfigVersionFile)
+
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/src/ProtonConfig.cmake.in
+  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfig.cmake @ONLY)
+write_basic_config_version_file(
+  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfigVersion.cmake
+  VERSION ${PN_VERSION}
+  COMPATIBILITY AnyNewerVersion)
+install (FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfig.cmake
+  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfigVersion.cmake
+  DESTINATION ${LIB_INSTALL_DIR}/cmake/Proton)
+
+add_subdirectory(docs)
+add_subdirectory(examples)
+add_subdirectory(tests)
+add_subdirectory(tools)
+
+install (DIRECTORY examples/
+         DESTINATION "${PROTON_SHARE}/examples/c"
+         PATTERN ProtonConfig.cmake EXCLUDE)

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/c/docs/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/c/docs/CMakeLists.txt b/c/docs/CMakeLists.txt
new file mode 100644
index 0000000..7756e48
--- /dev/null
+++ b/c/docs/CMakeLists.txt
@@ -0,0 +1,34 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+find_package(Doxygen)
+if (DOXYGEN_FOUND)
+  configure_file (${CMAKE_CURRENT_SOURCE_DIR}/user.doxygen.in
+                  ${CMAKE_CURRENT_BINARY_DIR}/user.doxygen)
+  add_custom_target (docs-c COMMAND ${DOXYGEN_EXECUTABLE} user.doxygen)
+  add_dependencies (docs docs-c)
+
+  # HTML files are generated to ./html - put those in the install.
+  install (DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html/"
+           DESTINATION "${PROTON_SHARE}/docs/api-c"
+           COMPONENT documentation
+           OPTIONAL)
+
+  set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES html)
+endif (DOXYGEN_FOUND)

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/c/docs/io.md
----------------------------------------------------------------------
diff --git a/c/docs/io.md b/c/docs/io.md
new file mode 100644
index 0000000..7cc071f
--- /dev/null
+++ b/c/docs/io.md
@@ -0,0 +1,16 @@
+## IO integration {#io_page}
+
+**Unsettled API** - The IO interfaces are new and remain subject to
+change.
+
+The @ref proactor is a portable, proactive, asynchronous API for
+single- or multithreaded applications. It associates AMQP @ref
+connection "connections" with network connections (@ref transport
+"transports") and allows one or more threads to handle @ref event
+"events".
+
+The @ref connection\_driver is a low-level SPI to feed byte streams
+from any source to the protocol engine. You can use it to integrate
+Proton directly with a foreign event loop or IO library, or to
+implement your own @ref proactor to transparently replace Proton's IO
+layer.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/c/docs/main.md
----------------------------------------------------------------------
diff --git a/c/docs/main.md b/c/docs/main.md
new file mode 100644
index 0000000..74cdb76
--- /dev/null
+++ b/c/docs/main.md
@@ -0,0 +1,33 @@
+# Introduction {#mainpage}
+
+The Qpid Proton C API enables writing clients and servers that send
+and receive messages using the AMQP protocol. It is part of the
+[Qpid Proton](https://qpid.apache.org/proton/index.html) suite of
+messaging APIs.
+
+## Modules
+
+The @ref core module is a collection of types and functions
+representing AMQP concepts and key elements of the API.  Together they
+form a "protocol engine" API to create AMQP @ref connection
+"connections" and @ref link "links", handle @ref event "events", and
+send and receive @ref message "messages".
+
+The @ref types module contains C types and functions for handling
+AMQP- and API-specific data types.
+
+The @ref codec module has functions for AMQP data encoding and
+decoding.
+
+The @ref io module contains interfaces for integrating with
+platform-native network IO.  See @ref io_page for more information.
+
+## Conventions
+
+Elements of the API marked as **Unsettled API**, including any
+elements contained within them, are still evolving and thus are
+subject to change.  They are available to use, but newer versions of
+Proton may require changes to your application source code.
+
+Elements marked **Deprecated** are slated for removal in a future
+release.

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/37136940/c/docs/user.doxygen.in
----------------------------------------------------------------------
diff --git a/c/docs/user.doxygen.in b/c/docs/user.doxygen.in
new file mode 100644
index 0000000..96c272c
--- /dev/null
+++ b/c/docs/user.doxygen.in
@@ -0,0 +1,91 @@
+##
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##   http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+
+# Project options
+
+PROJECT_NAME            = "Qpid Proton C"
+PROJECT_NUMBER          = @PN_VERSION_MAJOR@.@PN_VERSION_MINOR@.@PN_VERSION_POINT@
+OUTPUT_DIRECTORY        = .
+OUTPUT_LANGUAGE         = English
+BRIEF_MEMBER_DESC       = YES
+REPEAT_BRIEF            = YES
+ALWAYS_DETAILED_SEC     = NO
+INLINE_INHERITED_MEMB   = YES
+JAVADOC_AUTOBRIEF       = YES
+INHERIT_DOCS            = YES
+INLINE_SIMPLE_STRUCTS   = YES
+HIDE_UNDOC_CLASSES      = YES
+HIDE_COMPOUND_REFERENCE = YES
+HIDE_SCOPE_NAMES        = YES
+MAX_INITIALIZER_LINES   = 0
+ALPHABETICAL_INDEX      = NO
+SORT_MEMBER_DOCS        = NO
+
+# Redefine protected as private and strip out the PN_EXTERN and
+# PNX_EXTERN macros
+
+ENABLE_PREPROCESSING    = YES
+MACRO_EXPANSION         = YES
+EXPAND_ONLY_PREDEF      = YES
+PREDEFINED              = PN_EXTERN= PNX_EXTERN=
+
+# Configuration options related to warning and progress messages
+
+QUIET                   = YES
+WARNINGS                = YES
+
+# Configuration options related to the input files
+
+INPUT                   = @CMAKE_SOURCE_DIR@/c/include \
+                          @CMAKE_SOURCE_DIR@/c/examples
+FILE_PATTERNS           = *.h *.md *.dox
+EXCLUDE_PATTERNS        = @CMAKE_SOURCE_DIR@/c/examples/*.c \
+                          @CMAKE_SOURCE_DIR@/c/examples/*.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/cid.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/engine.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/handlers.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/import_export.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/log.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/object.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/reactor.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/sasl-plugin.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/selectable.h \
+                          @CMAKE_SOURCE_DIR@/c/include/proton/type_compat.h
+FULL_PATH_NAMES         = YES
+RECURSIVE               = YES
+STRIP_FROM_PATH         = @CMAKE_SOURCE_DIR@/c/include
+EXAMPLE_PATH            = @CMAKE_SOURCE_DIR@/c/examples
+EXAMPLE_RECURSIVE       = YES
+
+# View and list options
+
+DISABLE_INDEX           = YES
+GENERATE_TREEVIEW       = YES
+GENERATE_TODOLIST       = NO
+GENERATE_TESTLIST       = NO
+GENERATE_BUGLIST        = NO
+GENERATE_DEPRECATEDLIST = NO
+IGNORE_PREFIX           = pn_ PN_
+
+# Configuration options related to the output format
+
+GENERATE_HTML           = YES
+HTML_OUTPUT             = html
+HTML_FILE_EXTENSION     = .html
+GENERATE_LATEX          = NO


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org