Commit Graph

1175 Commits

Author SHA1 Message Date
dota17
d59fd15db6 skip comment node before get text 2020-10-22 15:16:34 +08:00
Dylan Baker
c509d569c0 Add meson build system
Meson is a build system somewhat like cmake, but without all of the
rough edges. It supports many OSes, including all of the major ones, and
a large number of C++ compilers.

My interest isn't really in convincing people to use meson as the
default here, but meson provides a subproject mechanism that can fetch
external projects and build them along with the main project in a single
configure/compile invocation. This is extremely useful for platforms
that lack a (competent) package manager.

As far as I know the meson build does everything the cmake build does,
with one exception: generate the cmake config/version files. meson can
generate these files, but only in simple cases, and not when using
export targets like tinyxml2 does.
2020-10-09 12:21:27 -07:00
David Faure
b5d3b93e05 Add missing defined, detected by -Werror=undef 2020-10-09 09:59:50 +02:00
Mark Mossberg
4001a468b7 cmake: Use a namespace for the tinyxml2 target in local export
Previously in the locally (cmake build dir) exported cmake script,
there was no namespace, so the targets would directly be available
in the global namespace. Users would do something like:

    include(cmake/tinyxml2Targets.cmake)
    target_link_libraries(main tinyxml2)

Now, a namespace is used (just like the cmake export that is exported
to the system at the `install(EXPORT...)` command at the bottom of this
file. Uses will now look like:

    include(cmake/tinyxml2Targets.cmake)
    target_link_libraries(main tinyxml2::tinyxml2)

This is technically a minor breaking change. It will only affect users
that actually use the *locally* export cmake targets script, which I
expect to be fairly few (note that this is different from the system
exported script). Also, it will only affect users that freshly
build at this commit of tinyxml2, and have the cmake for their
downstream project configured to load it. That cmake will need to be
changed from the first snippet to the second snippet above.
2020-09-27 00:50:23 -04:00
Pantelis Lekakis
c87bf8187d reverted the strong typed enum change 2020-09-23 21:59:13 +01:00
Lee Thomason
1aeb57d26b Merge pull request #823 from c72578/2020-06-17_Fix_pkgconfig_lib_postfix
cmake: Fix debug postfix in pkgconfig file
2020-09-17 13:55:47 -07:00
Lee Thomason
a0ce5527ab Merge pull request #789 from offlinemark/mark/cmake-clean
cmake: Refactor targets export variable and improve comments
2020-09-17 13:28:16 -07:00
Lee Thomason
54e1d6b2fa Merge pull request #820 from orudge/fix-symbol-export
cmake: Don't export symbols if building static library
2020-09-17 13:19:14 -07:00
Pantelis Lekakis
6df0cae189 - Allowing TIXMLASERT to be defined before including the main header.
- Fix for enum bitmask usage
2020-09-08 00:41:58 +01:00
ngc92
2c6a41a92e removed overhead of clear error 2020-07-30 23:51:30 +03:00
Lee Thomason
2c5a6bfdd4 reorder 2020-07-02 15:41:27 -07:00
Lee Thomason
51d9f51d1a update readme link 2020-07-02 15:40:30 -07:00
Lee Thomason
4637965335 add test case 2020-07-02 15:23:00 -07:00
Lee Thomason
d34d0ef5e0 Merge pull request #822 from ghost/queryattr
Add QueryAttribute for const char**
2020-07-02 15:18:56 -07:00
Wolfgang Stöggl
1e384d5031 Fix debug postfix in pkgconfig file
CMakeLists.txt uses set(CMAKE_DEBUG_POSTFIX "d") to distinguish
between debug and release lib. Use this postfix also in the
generated tinyxml2.pc file in case of a CMake Debug build.
This results in the following contents of tinyxml2.pc
- Release:
  Libs: -L${libdir} -ltinyxml2
- Debug:
  Libs: -L${libdir} -ltinyxml2d
2020-06-17 06:22:09 +02:00
justnope
5ee20feaf0 Add QueryAttribute for const char** 2020-06-15 00:47:48 +02:00
Lee Thomason
fc89670749 update the docs 2020-06-13 19:02:58 -07:00
Lee Thomason
2e6912bf8a Merge pull request #816 from a-lunkov/master
Suppress UndefinedBehaviorSanitizer warnings
2020-06-13 17:52:03 -07:00
Lee Thomason
098eb37398 Merge branch 'master' of github.com:leethomason/tinyxml2 2020-06-13 17:46:53 -07:00
Lee Thomason
8812f197ac make printer functions virtual 2020-06-13 17:46:44 -07:00
Lee Thomason
6b7effe541 Merge pull request #812 from amai2012/master
Add github action
2020-06-13 17:40:45 -07:00
Lee Thomason
1578df3bf8 Merge pull request #811 from hyperair/fix-first-line-indentation
XMLPrinter: Fix first line indentation
2020-06-13 17:38:20 -07:00
Lee Thomason
98ca9146b4 Merge branch 'netcan-master' 2020-06-13 17:35:35 -07:00
Lee Thomason
18468b8cc4 minor changes to hex parsing 2020-06-13 17:35:21 -07:00
Lee Thomason
c9c9d8cdfa Merge branch 'master' of https://github.com/netcan/tinyxml2 into netcan-master 2020-06-13 17:26:30 -07:00
Owen Rudge
b341e66e3c cmake: Don't export symbols if building static library 2020-06-01 14:57:53 +01:00
a-lunkov
a953b9565d Suppress UndefinedBehaviorSanitizer warnings
I compiled tinyxml2 with the following changes to CMakeLists.txt:
-------------------------------------------------- ------------------------------------------
set (CMAKE_C_COMPILER "/ usr / local / bin / clang10")
set (CMAKE_CXX_COMPILER "/ usr / local / bin / clang ++ 10")
add_compile_options (-g)
add_compile_options (-fsanitize = address, undefined, integer, alignment, bool, builtin, bounds, enum, function, nonnull-attribute, null, object-size, pointer-overflow, return, returns-nonnull-attribute, unreachable, vla-bound , vptr)

set_source_files_properties (tinyxml2.cpp tinyxml2.h
                            PROPERTIES COMPILE_FLAGS -fsanitize = address, undefined, integer, alignment, bool, builtin, bounds, enum, function, nonnull-attribute, null, object-size, pointer-overflow, return, returns-nonnull-attribute, unreachable, vla-bound , vptr)
TARGET_LINK_LIBRARIES (tinyxml2 /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-x86_64.a /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/libang asan_cxx-x86_64.a /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/ libclang_rt.ubsan_standalone_cxx-x86_64.a -lpthread)
-------------------------------------------------- ------------------------------------------
(Sorry for the dirty code.)

And launched the xmltest utility:
-------------------------------------------------- ------------------------------------------
/home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:237:37: runtime error: implicit conversion from type 'char' of value -48 (8-bit, signed) to type 'unsigned char' changed the value to 208 (8-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:237:37 in
/home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:243:40: runtime error: implicit conversion from type 'char' of value -96 (8-bit, signed) to type 'unsigned char' changed the value to 160 (8-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:243:40 in
/home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:1912:39: runtime error: implicit conversion from type 'char' of value -48 (8-bit, signed) to type 'unsigned char' changed the value to 208 (8-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:1912:39 in
-------------------------------------------------- ------------------------------------------
2020-05-13 18:24:08 +03:00
a-lunkov
ba02706e65 Merge pull request #1 from leethomason/master
Switch to master
2020-05-13 18:22:41 +03:00
amai2012
eefc07a739 Rename action 2020-04-23 14:57:35 +02:00
amai2012
064d90da13 Try to install 2020-04-23 14:56:08 +02:00
amai2012
dcc28da4c8 Add macos-latest 2020-04-15 10:45:52 +02:00
amai2012
e3abe1bd0a Remove distcheck 2020-04-14 20:14:05 +02:00
amai2012
e120ee328e Add github action
Run make on ubuntu latest
2020-04-14 20:12:05 +02:00
Lee Thomason
bfbcc0333d Merge pull request #809 from a-lunkov/patch-1
Fix for build with FreeBSD
2020-03-31 15:09:26 -07:00
Lee Thomason
99db0247d6 Merge pull request #807 from jsenn/sharpen-ftell-ifdef
Sharpened check for 64-bit Unix when defining fseek/ftell macros.
2020-03-31 15:08:42 -07:00
Chow Loong Jin
6a514399c2 XMLPrinter: Fix first line indentation
Fix indentation of first line when called with !compactMode.
2020-03-26 17:04:41 +08:00
a-lunkov
63fb154ad3 Update tinyxml2.cpp 2020-03-24 14:30:52 +03:00
John Senneker
1fdee25d11 Sharpened check for 64-bit Unix when defining fseek/ftell macros.
This fixes the issues with VxWorks, as mentioned by @razr in #786.
2020-03-17 14:11:25 -04:00
Lee Thomason
bd5950bb02 Merge pull request #798 from DanRStevens/removeCleanBeforeTest
Remove `clean` before `test` or `check`
2020-03-10 14:28:21 -07:00
Lee Thomason
67271b1fd2 Merge pull request #787 from jsenn/feature/large-file-support
Added support for files larger than ~2GB
2020-03-10 14:21:04 -07:00
John Senneker
a9f29b74d9 Fixed warning caused by sloppy conversion between signed/unsigned types.
Also, the comparison between size_t max and the actual file size is done
as an unsigned long long, since that type is guaranteed to be at least
64 bits, even on a 32-bit architecture.
2020-03-02 11:04:57 -05:00
netcan
dfb45cb73b support IntText(),UnsignedText(),Int64Text() for hex value 2020-03-02 22:26:03 +08:00
Lee Thomason
bf15233ad8 Setting the version to 8.0.0 8.0.0 2020-03-01 17:40:07 -08:00
Lee Thomason
8504195843 fix vs version 2020-03-01 17:23:36 -08:00
Lee Thomason
8db004b74c Merge pull request #802 from LilyWangL/vcpkg-instructions
Add vcpkg installation instructions
2020-03-01 17:20:53 -08:00
Lee Thomason
3d6a5477a7 Merge pull request #797 from DanRStevens/gitIgnoreLinux
Add Makefile outputs to .gitignore
2020-03-01 17:12:24 -08:00
Lee Thomason
bbbb8c9a90 Merge branch 'master' of github.com:leethomason/tinyxml2 2020-03-01 17:11:07 -08:00
Lee Thomason
e444268103 add convenience methods 2020-03-01 17:10:38 -08:00
Lee Thomason
6ac05b2b9a Merge branch 'push' of https://github.com/ngc92/tinyxml2 into ngc92-push 2020-03-01 17:01:33 -08:00
Lee Thomason
655b15c078 Merge pull request #781 from daniel347x/patch-1
Change constants used in 'ToBool' to support MSVC
2020-03-01 16:53:40 -08:00