1. 30 Apr, 2017 3 commits
    • Harris Hancock's avatar
      Use target_compile_features to request C++11 · 757387f4
      Harris Hancock authored
      Projects which use Cap'n Proto require C++11, because they must be able to
      compile our headers. Old gcc defaults to C++98, forcing users to manually
      specify the -std=gnu++11 flag in their CMake projects. CMake 3.1
      introduced the target_compile_features command which removes this
      necessity by automatically communicating the C++ standard level
      requirement to client projects.
      
      Specifically, if target `kj` requires a C++11 feature publicly, then all
      targets which link to `kj` will also require that C++11 feature, and get
      the -std=gnu++11 flag for free. If that target is a library, such as
      `kj-async`, and `kj-async` links publicly to `kj`, the requirement is also
      transitive to all targets which link to `kj-async`.
      
      Note that CMake's default behavior is to request compiler-specific
      extensions, such as those provided by the -std=gnu++11 flag. You must
      specifically opt out of these extensions. I'm not aware of any way to
      propagate this nuance in CMake, but added a check to at least prevent
      users from compiling Cap'n Proto without extensions.
      
      With this change, the c++/samples/CMakeLists.txt will build with MinGW
      with no change beyond requiring a later version of CMake.
      757387f4
    • Harris Hancock's avatar
      Hack around VS2017 ICE · 73c8a7f2
      Harris Hancock authored
      VS2015 only barely compiled ~NullableValue's noexcept specifier
      expression. VS2017 can't at all, so we're going with noexcept(false) for
      MSVC for now.
      73c8a7f2
    • Harris Hancock's avatar
      Fix whitespace · d872161d
      Harris Hancock authored
      d872161d
  2. 29 Apr, 2017 6 commits
  3. 28 Apr, 2017 23 commits
  4. 27 Apr, 2017 3 commits
  5. 26 Apr, 2017 5 commits