Skip to content
Snippets Groups Projects
  1. Oct 18, 2019
  2. Oct 06, 2019
  3. Oct 01, 2019
  4. Sep 28, 2019
    • Isabella Muerte's avatar
      :sparkles: Update CMake to modern approach · 1c5a0bb3
      Isabella Muerte authored
      New Features:
      
      pugixml-shared and pugixml-static are "always" available, but not always
      built. This allows downstream projects to still use them, and to make
      sure our configurations are correct regardless of if they are being
      built. They are not always installed however.
      
      pugixml-shared and pugixml-static have ALIAS libraries of
      pugixml::shared and pugixml::static respectively. These names are also
      respected in the `find_package(pugixml CONFIG)` generated files, so its
      safe to use pugixml in a CMake project regardless of whether it is
      installed locally, or if its a subproject via `add_subdirectory`.
      
      pugixml will automatically select the correct library type based on
      BUILD_SHARED_LIBS. A pugixml::pugixml ALIAS is also available.
      
      CMAKE_MSVC_RUNTIME_LIBRARY from CMake 3.15 has been backported.
      
      CMake will now rely on generator expressions (a powerful abstraction in
      large projects with many subdirectories) for most work. This offloads
      work from the single-threaded configure stage to the multithreaded
      generation stage.
      
      pugixml now uses CTest as the runner.
      
      Some settings are automatically disabled if pugixml is used as a
      subdirectory. These are still able to be manually set, but are hidden
      from folks who choose to use CMake GUI.
      1c5a0bb3
    • Isabella Muerte's avatar
      :construction: Begin moving pugixml to modern(ish) CMake · 195dfe1d
      Isabella Muerte authored
      :arrow_up: Bump CMake minimum to 3.4
      :bug: pugixml no longer requires a C compiler to be found or set to
      compile correctly. This speeds up configuration and building on windows.
      :construction: Begin laying groundwork to backport MSVC_RUNTIME_LIBRARY
      property
      195dfe1d
  5. Sep 22, 2019
  6. Sep 21, 2019
    • Arseny Kapoulkine's avatar
      Move pugixml.rc to scripts/ · 6934b123
      Arseny Kapoulkine authored
      This keeps src/ folder clean of auxiliary files only required for
      special builds; note that CMakeLists.txt already depends on scripts/
      (specifically for pkgconfig setup).
      6934b123
  7. Sep 19, 2019
  8. Sep 18, 2019
  9. Sep 16, 2019
  10. Sep 12, 2019
  11. Sep 09, 2019
    • Joel Andres Granados's avatar
      Update nuget creation to VS2019 (#291) · 84e32273
      Joel Andres Granados authored
      Create visual studio projects that are vs2019 compliant.
      * nuget_build.ps1 :
      Introduce a new argument that will define how we implement the nuget
      build. For now we accept 201{9,7.5.3} as possible argument values.
      
      * pugixml_vs2019{,_static}.vcxproj :
      Add two visual studio projects that build pugi with the latest SDK and
      build tools
      
      * appveyor.yml
      - Add Visual Studio 2019 to build targets
      - Add Visual Studio 201{9,3,5} to build_scripts. And call
        nuget_build.ps1 with a new argument.
      - Add Visual Studio 2019 to the test_scripts.
      84e32273
  12. Aug 21, 2019
  13. Aug 04, 2019
    • Matan Nassau's avatar
      fix cmake option USE_POSTFIX (#283) · 4f6e7454
      Matan Nassau authored
      appending the suffix to the build product need not be a function of
      whether CMAKE_CONFIGURATION_TYPES is set.  for example, having two ninja
      build trees---one for debug and another for release---is a fine use-case
      for USE_POSTFIX.
      4f6e7454
  14. Jul 26, 2019
  15. Jun 19, 2019
  16. Jun 09, 2019
  17. Mar 17, 2019
  18. Mar 14, 2019
    • Arseny Kapoulkine's avatar
      29f3177d
    • Arseny Kapoulkine's avatar
      Remove contrib folder · 434c4a4d
      Arseny Kapoulkine authored
      This change removes contrib folder since it doesn't seem very useful;
      Natvis scripts can and should go to scripts/ along with project files.
      
      foreach.hpp is supporting a severely outdated BOOST_FOREACH construct;
      in C++11 ranged for loop can be used with xml_node::children/attributes,
      and BOOST_FOREACH can work with these as well.
      
      foreach.hpp was also accidentally licensed as public domain which isn't
      very helpful when the actual library is MIT. We could fix the license
      but it seems better to just remove it.
      
      Fixes #264.
      434c4a4d
  19. Mar 09, 2019
  20. Mar 08, 2019
  21. Mar 07, 2019
  22. Feb 28, 2019
  23. Feb 27, 2019
    • Arseny Kapoulkine's avatar
      tests: Expand out-of-memory union tests · 12e8b699
      Arseny Kapoulkine authored
      We now have two tests: one tests behavior when we run out of space when
      appending the node set (in which case the append fails), another one
      tests behavior when we run out of space when filtering the node set (in
      which case the set still contains redundant data).
      12e8b699
    • Arseny Kapoulkine's avatar
      XPath: Make remove_duplicates generate stable order · c55ea3bc
      Arseny Kapoulkine authored
      Given an unsorted sequence, remove_duplicates would sort it using the
      pointer value of attributes/nodes and then remove consecutive
      duplicates.
      
      This was problematic because it meant that the result of XPath queries
      was dependent on the memory allocation pattern. While it's technically
      incorrect to rely on the order, this results in easy to miss bugs.
      
      This is particularly common when XPath queries use union operators -
      although we also will call remove_duplicates in other cases.
      
      This change reworks the code to use a hash set instead, using the same
      hash function we use for compact storage. To make sure it performs well,
      we allocate enough buckets for count * 1.5 (assuming all elements are
      unique); since each bucket is a single pointer unlike xpath_node which
      is two pointers, we need somewhere between size * 0.75 and size * 1.5
      temporary storage.
      
      The resulting filtering is stable - we remove elements that we have seen
      before but we don't change the order - and is actually significantly
      faster than sorting was.
      
      With a large union operation, before this change it took ~56 ms per 100
      query invocations to remove duplicates, and after this change it takes
      ~20ms.
      
      Fixes #254.
      c55ea3bc
    • Arseny Kapoulkine's avatar
      tests: Disable flaky test · 930a701f
      Arseny Kapoulkine authored
      This test is very sensitive to the particular implementation of union
      aggregation; for now lets disable this.
      
      We need a more robust way to test union allocation failures.
      930a701f
Loading