diff --git a/CMakeLists.txt b/CMakeLists.txt
index cd63da1..86ef865 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,10 +49,37 @@
 set (PN_C_LIBRARY_DIR "${CMAKE_BINARY_DIR}/c")
 set (PN_C_SOURCE_DIR "${CMAKE_BINARY_DIR}/c/src")
 
+## C
+if (DEFINED CMAKE_C_COMPILE_FEATURES)
+  set(CMAKE_C_STANDARD 99)
+  set(CMAKE_C_EXTENSIONS OFF)
+  set(CMAKE_C_STANDARD_REQUIRED ON)
+else()
+  set (C_STANDARD_GCC -std=c99)
+endif()
+
 ## C++
 check_language (CXX)
 if (CMAKE_CXX_COMPILER)
   enable_language(CXX)
+
+  # This effectively checks for cmake version 3.1 or later
+  if (DEFINED CMAKE_CXX_COMPILE_FEATURES)
+    set(CMAKE_CXX_STANDARD 11)
+    set(CMAKE_CXX_EXTENSIONS OFF)
+    # Every supported version of Visual Studio (2015 onwards) supports enough C++11 that we
+    # no longer need to run the individual feature tests
+  else ()
+    include(CheckCXXCompilerFlag)
+    # These flags work with GCC/Clang/SunPro compilers
+    check_cxx_compiler_flag("-std=c++11" ACCEPTS_CXX11)
+    check_cxx_compiler_flag("-std=c++0x" ACCEPTS_CXX0X)
+    if (ACCEPTS_CXX11)
+      set(CXX_STANDARD "-std=c++11")
+    elseif(ACCEPTS_CXX0X)
+      set(CXX_STANDARD "-std=c++0x")
+    endif()
+  endif ()
 endif()
 
 # Build static C and C++ libraries in addition to shared libraries.
@@ -131,11 +158,9 @@
     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")
-  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")
+  set (CXX_WARNING_FLAGS "${COMPILE_WARNING_FLAGS}")
+  set (COMPILE_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wstrict-prototypes -Wvla -Wsign-compare -Wwrite-strings")
+  set (COMPILE_LANGUAGE_FLAGS ${C_STANDARD_GCC})
 
   if (ENABLE_UNDEFINED_ERROR)
     set (CATCH_UNDEFINED "-Wl,--no-undefined")
@@ -159,7 +184,7 @@
 
 if (CMAKE_C_COMPILER_ID MATCHES "Clang")
   set (COMPILE_WARNING_FLAGS  "-Wall -pedantic")
-  set (COMPILE_LANGUAGE_FLAGS "-std=c99")
+  set (COMPILE_LANGUAGE_FLAGS ${C_STANDARD_GCC})
   if (ENABLE_WARNING_ERROR)
     set (COMPILE_WARNING_FLAGS "-Werror ${COMPILE_WARNING_FLAGS}")
   endif (ENABLE_WARNING_ERROR)
diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt
index 797f25d..144cdaf 100644
--- a/c/CMakeLists.txt
+++ b/c/CMakeLists.txt
@@ -351,7 +351,7 @@
     set (PROACTOR_OK iocp)
     set (qpid-proton-proactor src/proactor/win_iocp.cpp ${qpid-proton-proactor-common})
     set_source_files_properties (${qpid-proton-proactor} PROPERTIES
-      COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS} ${LTO}"
+      COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_LANGUAGE_FLAGS} ${LTO}"
       COMPILE_DEFINITIONS "${PLATFORM_DEFINITIONS}"
       )
   endif(WIN32 AND NOT CYGWIN)
@@ -389,7 +389,7 @@
   ${qpid-proton-platform}
   ${qpid-proton-platform-io}
   PROPERTIES
-  COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS} ${LTO}"
+  COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_LANGUAGE_FLAGS} ${LTO}"
   COMPILE_DEFINITIONS "${PLATFORM_DEFINITIONS}"
   )
 
@@ -413,6 +413,16 @@
 target_compile_options    (qpid-proton-core-objects PRIVATE $<TARGET_PROPERTY:qpid-proton-core,COMPILE_OPTIONS>)
 target_include_directories(qpid-proton-core-objects PRIVATE $<TARGET_PROPERTY:qpid-proton-core,INCLUDE_DIRECTORIES>)
 
+add_library (qpid-proton-platform-io-objects OBJECT ${qpid-proton-platform-io})
+set_target_properties(qpid-proton-platform-io-objects PROPERTIES
+  POSITION_INDEPENDENT_CODE ON
+  C_EXTENSIONS ON)
+target_compile_definitions(qpid-proton-platform-io-objects PRIVATE qpid_proton_core_EXPORTS)
+
+target_compile_definitions(qpid-proton-platform-io-objects PRIVATE $<TARGET_PROPERTY:qpid-proton,COMPILE_DEFINITIONS>)
+target_compile_options    (qpid-proton-platform-io-objects PRIVATE $<TARGET_PROPERTY:qpid-proton,COMPILE_OPTIONS>)
+target_include_directories(qpid-proton-platform-io-objects PRIVATE $<TARGET_PROPERTY:qpid-proton,INCLUDE_DIRECTORIES>)
+
 add_library (qpid-proton-core SHARED $<TARGET_OBJECTS:qpid-proton-core-objects>)
 target_link_libraries (qpid-proton-core ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS})
 set_target_properties (qpid-proton-core
@@ -431,11 +441,10 @@
   ${qpid-proton-proactor}
   # Proton Reactor/Messenger
   ${qpid-proton-extra}
-  ${qpid-proton-platform-io}
   ${qpid-proton-include-extra}
 )
 
-add_library (qpid-proton SHARED $<TARGET_OBJECTS:qpid-proton-core-objects> ${qpid-proton-noncore-src})
+add_library (qpid-proton SHARED $<TARGET_OBJECTS:qpid-proton-core-objects> $<TARGET_OBJECTS:qpid-proton-platform-io-objects> ${qpid-proton-noncore-src})
 target_link_libraries (qpid-proton LINK_PRIVATE ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS} ${PROACTOR_LIBS})
 set_target_properties (qpid-proton
   PROPERTIES
@@ -445,7 +454,7 @@
 )
 
 if (BUILD_STATIC_LIBS)
-  add_library(qpid-proton-static STATIC ${qpid-proton-core-src} ${qpid-proton-noncore-src})
+  add_library(qpid-proton-static STATIC ${qpid-proton-core-src} ${qpid-proton-platform-io} ${qpid-proton-noncore-src})
 endif(BUILD_STATIC_LIBS)
 
 if (qpid-proton-proactor)
diff --git a/c/tests/CMakeLists.txt b/c/tests/CMakeLists.txt
index 0f8521c..787bce9 100644
--- a/c/tests/CMakeLists.txt
+++ b/c/tests/CMakeLists.txt
@@ -44,7 +44,7 @@
   macro(add_c_test exe)
     add_executable(${exe} $<TARGET_OBJECTS:test_main> pn_test.cpp ${ARGN})
     set_target_properties(${exe} PROPERTIES
-      COMPILE_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARNING_FLAGS}")
+      COMPILE_FLAGS "${CXX_STANDARD} ${CMAKE_CXX_FLAGS} ${CXX_WARNING_FLAGS}")
     pn_add_test(
       EXECUTABLE
       NAME ${exe}
diff --git a/c/tests/fuzz/CMakeLists.txt b/c/tests/fuzz/CMakeLists.txt
index 163a9db..4997e7e 100644
--- a/c/tests/fuzz/CMakeLists.txt
+++ b/c/tests/fuzz/CMakeLists.txt
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-add_definitions(${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS})
+add_definitions(${COMPILE_WARNING_FLAGS})
 
 option(FUZZ_REGRESSION_TESTS "Run fuzz tests with regression test driver" ON)
 option(FUZZ_LONG_TESTS "Run fuzz tests that take a long time" OFF)
diff --git a/c/tools/CMakeLists.txt b/c/tools/CMakeLists.txt
index d58e4b4..3a60df2 100644
--- a/c/tools/CMakeLists.txt
+++ b/c/tools/CMakeLists.txt
@@ -17,8 +17,6 @@
 # under the License.
 #
 
-include(CheckIncludeFiles)
-
 include_directories (${PN_C_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include)
 
 add_executable(msgr-recv msgr-recv.c msgr-common.c)
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 59b6a01..cdfb415 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -18,6 +18,7 @@
 #
 cmake_minimum_required(VERSION 2.8.12)
 
+include(CMakeDependentOption)
 enable_language(CXX)
 
 set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
@@ -29,7 +30,8 @@
 
 # Check for JSON-CPP support for connection configuration
 find_package(JsonCpp)
-option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" ${JsonCpp_FOUND})
+cmake_dependent_option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" ${JsonCpp_FOUND}
+  "NOT BUILD_CPP_03" OFF)
 if (ENABLE_JSONCPP)
   include_directories(${JsonCpp_INCLUDE_DIRS})
   set(CONNECT_CONFIG_SRC src/connect_config.cpp)
@@ -41,40 +43,24 @@
 # This effectively checks for cmake version 3.1 or later
 if (DEFINED CMAKE_CXX_COMPILE_FEATURES)
   if (BUILD_CPP_03)
-    set(STD 98)
+    set(CMAKE_CXX_STANDARD 98)
   else ()
-    set(STD 11)
-    list(APPEND PLATFORM_LIBS Threads::Threads)
-  endif ()
-  set(CMAKE_CXX_STANDARD ${STD})
-  set(CMAKE_CXX_EXTENSIONS OFF)
-  if (MSVC)  # Compiler feature checks only needed for Visual Studio in this case
-    include(cpp.cmake)
-  elseif (STD EQUAL 11)
     set(CPP_DEFINITIONS "HAS_CPP11")
-  endif()
+  endif ()
 else ()
   if (BUILD_CPP_03)
     set(CXX_STANDARD "-std=c++98")
   else ()
-    include(CheckCXXCompilerFlag)
-    # These flags work with GCC/Clang/SunPro compilers
-    check_cxx_compiler_flag("-std=c++11" ACCEPTS_CXX11)
-    check_cxx_compiler_flag("-std=c++0x" ACCEPTS_CXX0X)
     if (ACCEPTS_CXX11)
-      set(CXX_STANDARD "-std=c++11")
       set(CPP_DEFINITIONS "HAS_CPP11")
-      list(APPEND PLATFORM_LIBS Threads::Threads)
-    elseif(ACCEPTS_CXX0X)
-      set(CXX_STANDARD "-std=c++0x")
-      list(APPEND PLATFORM_LIBS Threads::Threads)
-      include(cpp.cmake) # Compiler checks needed for C++0x as not all C++11 may be supported
     else()
-      include(cpp.cmake) # Compiler checks needed as we have no idea whats going on here!
+      include(cpp.cmake) # Compiler checks needed as not all C++11 may be supported
     endif()
   endif()
 endif ()
 
+list(APPEND PLATFORM_LIBS Threads::Threads)
+
 # Construct #define lines to insert in config_presets.hpp
 foreach(d ${CPP_DEFINITIONS})
   set(presets "${presets}#define PN_CPP_LIB_${d} 1\n")
@@ -167,7 +153,7 @@
 set_source_files_properties (
   ${qpid-proton-cpp-source}
   PROPERTIES
-  COMPILE_FLAGS "${LTO}"
+  COMPILE_OPTIONS "${LTO}"
   )
 
 if (MSVC)
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 710ac05..bdd2b4c 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -41,7 +41,7 @@
 )
 
 swig_add_library(cproton LANGUAGE python SOURCES cproton.i)
-swig_link_libraries(cproton ${BINDING_DEPS} ${PYTHON_LIBRARIES})
+swig_link_libraries(cproton ${BINDING_DEPS} ${PYTHON_LIBRARIES} -lm)
 set_target_properties(${SWIG_MODULE_cproton_REAL_NAME}
     PROPERTIES
     LINK_FLAGS "${CATCH_UNDEFINED}")
