- Jul 06, 2020
-
-
Arseny Kapoulkine authored
PS invocation of code coverage upload gets triggered because of stderr output from curl with progress report when uploading coverage.
-
- Jun 13, 2020
-
-
Arseny Kapoulkine authored
In some MSVC versions on x64 configurations, the hashing function triggers this failure: Run-Time Check Failure #1 - A cast to a smaller data type has caused a loss of data. If this was intentional, you should mask the source of the cast with the appropriate bitmask. This is similar to the integer sanitizer - this code is valid C++ but MSVC decides to warn about this nonetheless. Masking the pointer's low 32 bits fixes the issue. Fixes #357.
-
- May 11, 2020
-
-
Arseny Kapoulkine authored
Use nullptr in pugixml.hpp if available, see #91
-
- May 10, 2020
-
-
Jan Niklas Hasse authored
-
- May 02, 2020
-
-
Arseny Kapoulkine authored
pugixml currently unconditionally accepts documents with multiple top-level element nodes in absence of parse_fragment. This is an unfortunate omission; while it can be corrected, it will result in regressions for some users, and it's trivial to perform the validity check after the parse is done. Because of this, for now we're just going to amend documentation here to both highlight this in the W3C Conformance section, but also to more strongly push users into realizing that there's just a single document element (normally). We might decide to change the behavior here to prohibit such documents by default in the future, but for now a documentation change seems like a better tradeoff. Fixes #337
-
Arseny Kapoulkine authored
Various CMake improvements
-
- Apr 27, 2020
-
-
Kyle Edwards authored
This will allow projects to use pugixml from its build directory rather than having to install it.
-
Arseny Kapoulkine authored
Add "Include pugixml.cpp" and "Header Only" linkage options
-
Kyle Edwards authored
-
Kyle Edwards authored
The old logic for BUILD_SHARED_LIBS and BUILD_SHARED_AND_STATIC_LIBS would produce two targets with the same name and different build rules. The Makefile generator tolerated this, but the Ninja generator raised an error. Fix the logic so that only one shared and one static target gets built, and make the pugixml target an ALIAS of the one dictated by BUILD_SHARED_LIBS.
-
- Apr 25, 2020
-
-
rip.nsk authored
-
- Feb 20, 2020
-
-
Arseny Kapoulkine authored
The loop traverses the source tree and simultaneously builds up a copy of it at destination. Short of race conditions, this code is safe - however, it's not obvious that dit stays inside the destination tree. This change adds a few assertions to help enforce/document these invariants. One particular subtlety is that dit can actually *become* null after we exit out of the loop, but it's guaranteed to only do so once sit goes back to sn. This is only possible when doing a full document copy - for some reason we weren't using this for that (in reset(xml_document)), but we are now. Fixes #314.
-
- Feb 19, 2020
-
-
Arseny Kapoulkine authored
We were previously relying on non-standard comment detection that is supported by gcc/clang to avoid warnings about implicit fallthrough. This can be solved using attributes but using them requires a lot of compiler-specific detection logic because not all versions of gcc/clang support them. We don't *really* need to rely on fallthrough here - the type conversion block can be located *after* the AST type switch instead, which means that any AST type that has type ambiguity can fall back to that in the future. Fixes #331.
-
- Feb 08, 2020
-
-
Arseny Kapoulkine authored
Update CMakeLists.txt to rename the static and shared libraries to pugixml
-
- Feb 07, 2020
-
-
Gianfranco Costamagna authored
Don't call them pugixml-shared or pugixml-static, because this breaks pkgconfig calls and userspace tools.
-
- Feb 01, 2020
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
This makes sure all conversions work as expected (note that no type can be converted to node set so we don't check that).
-
- Dec 20, 2019
-
-
Arseny Kapoulkine authored
Add POSITION_INDEPENDENT_CODE option
-
- Dec 06, 2019
-
-
Arnaud Botella authored
Allow to use the static library in other dynamic librairies. This is a standard cmake option https://cmake.org/cmake/help/v3.11/prop_tgt/POSITION_INDEPENDENT_CODE.html#prop_tgt:POSITION_INDEPENDENT_CODE
-
- Dec 04, 2019
-
-
Arseny Kapoulkine authored
Instead of performing a late null check that is redundant and only needed to silence clang static analysis warning, we pick the context as a root / self node. This way the code is a bit less redundant and the static analyzer is happy.
-
Arseny Kapoulkine authored
Fixing possible null pointer dereference
-
- Dec 02, 2019
-
-
Valeriy Van authored
-
- Nov 27, 2019
-
-
Arseny Kapoulkine authored
explicit casts for -Wconversions warnings in gcc
-
Lucas Amoudruz authored
-
- Oct 18, 2019
-
-
Arseny Kapoulkine authored
Fix incorrect installation location for exported CMake targets
-
Isabella Muerte authored
-
- Oct 06, 2019
-
-
Arseny Kapoulkine authored
Fix install locations for pkgconfig *and* cmake
-
Isabella Muerte authored
-
Arseny Kapoulkine authored
Modernize CMake
-
Isabella Muerte authored
-
- Oct 01, 2019
-
-
Isabella Muerte authored
The block of code can be removed in the future if CMake 3.15 ever becomes the minimum
-
Isabella Muerte authored
Move pugixml-config.cmake.in to scripts/ to prevent polluting the root
-
- Sep 28, 2019
-
-
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.
-
Isabella Muerte authored
Bump CMake minimum to 3.4 pugixml no longer requires a C compiler to be found or set to compile correctly. This speeds up configuration and building on windows. Begin laying groundwork to backport MSVC_RUNTIME_LIBRARY property
-
- Sep 22, 2019
-
-
Tuan Anh Tran authored
Fixes #285
-
- Sep 21, 2019
-
-
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).
-
- Sep 19, 2019
-
-
lady mesh authored
Closes #294
-
- Sep 18, 2019
-
-
Arseny Kapoulkine authored
The newly added tests make sure that during node/attribute destruction we deallocate a few memory pages; this makes sure that we don't read node data after it's being destroyed. Also clean up formatting/style in the remove_* implementation a bit.
-
Tuan Anh Tran authored
These functions remove all attributes / child nodes in bulk which is faster than removing them one at a time.
-
- Sep 16, 2019
-
-
Wolfgang Stöggl authored
-