Skip to contentSkip to conversation

add new library: libpugixml

PATCH In review Theo Debrouwere 7 participants 17 messages Sep 4, 2016 – Sep 12, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 add new library: libpugixml

From: Theo Debrouwere <[email protected]>

pugixml is a light-weight C++ XML processing library. It features:
* DOM-like interface with rich traversal/modification capabilities
* Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
* XPath 1.0 implementation for complex data-driven tree queries
* Full Unicode support with Unicode interface variants and automatic encoding conversions

Homepage: http://pugixml.org/
Repository: https://github.com/zeux/pugixml

---
 package/Config.in                  |  1 +
 package/libpugixml/Config.in       | 15 +++++++++++++++
 package/libpugixml/libpugixml.hash |  2 ++
 package/libpugixml/libpugixml.mk   | 19 +++++++++++++++++++
 4 files changed, 37 insertions(+)
 create mode 100644 package/libpugixml/Config.in
 create mode 100644 package/libpugixml/libpugixml.hash
 create mode 100644 package/libpugixml/libpugixml.mk
package/Config.in +1 -0
index 1e51a45..d0198ce 100644
@@ -1092,6 +1092,7 @@ menu "JSON/XML"
 	source "package/libxslt/Config.in"
 	source "package/libyaml/Config.in"
 	source "package/mxml/Config.in"
+	source "package/libpugixml/Config.in"
 	source "package/rapidjson/Config.in"
 	source "package/rapidxml/Config.in"
 	source "package/raptor/Config.in"
package/libpugixml/Config.in new file +15 -0
new file mode 100644
index 0000000..17c6eec
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_LIBPUGIXML
+	bool "libpugixml"
+	help
+	  Light-weight, simple and fast XML parser for C++ with XPath support
+
+	  Features:
+	  * DOM-like interface with rich traversal/modification capabilities
+	  * Extremely fast non-validating XML parser which constructs the DOM tree
+	    from an XML file/buffer
+	  * XPath 1.0 implementation for complex data-driven tree queries
+	  * Full Unicode support with Unicode interface variants and automatic
+	    encoding conversions
+
+	  http://pugixml.org/
+	  https://github.com/zeux/pugixml
package/libpugixml/libpugixml.hash new file +2 -0
new file mode 100644
index 0000000..9007f7c
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256  fbe10d46f61d769f7d92a296102e4e2bd3ee16130f11c5b10a1aae590ea1f5ca  pugixml-1.7.tar.gz
package/libpugixml/libpugixml.mk new file +19 -0
new file mode 100644
index 0000000..3c9987e
@@ -0,0 +1,19 @@
+################################################################################
+#
+# libpugixml
+#
+################################################################################
+
+LIBPUGIXML_VERSION = 1.7
+LIBPUGIXML_SOURCE = pugixml-$(LIBPUGIXML_VERSION).tar.gz
+LIBPUGIXML_SITE = http://github.com/zeux/pugixml/releases/download/v$(LIBPUGIXML_VERSION)
+LIBPUGIXML_LICENSE = MIT
+LIBPUGIXML_LICENSE_FILES = docs/manual.html
+LIBPUGIXML_INSTALL_STAGING = YES
+
+LIBPUGIXML_SUBDIR = scripts
+
+# build libpugixml as a shared library
+LIBPUGIXML_CONF_OPTS = -DBUILD_SHARED_LIBS=ON
+
+$(eval $(cmake-package))
Signature · 1 line
2.9.3
#1 lore raw

PATCH 1/1 add new library: libpugixml

Hi Theo, all,

Thanks for this contribution. Hereafter few comments inlined.

The subject should be: "libpugixml: new package"

Quoted 27 lines · Theo Debrouwere

From: Theo Debrouwere <[email protected]>

pugixml is a light-weight C++ XML processing library. It features:
* DOM-like interface with rich traversal/modification capabilities
* Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
* XPath 1.0 implementation for complex data-driven tree queries
* Full Unicode support with Unicode interface variants and automatic encoding conversions

Homepage: http://pugixml.org/
Repository: https://github.com/zeux/pugixml

---
 package/Config.in                  |  1 +
 package/libpugixml/Config.in       | 15 +++++++++++++++
 package/libpugixml/libpugixml.hash |  2 ++
 package/libpugixml/libpugixml.mk   | 19 +++++++++++++++++++
 4 files changed, 37 insertions(+)
 create mode 100644 package/libpugixml/Config.in
 create mode 100644 package/libpugixml/libpugixml.hash
 create mode 100644 package/libpugixml/libpugixml.mk
package/Config.in +0 -0
index 1e51a45..d0198ce 100644

package/Config.in menu "JSON/XML" · line 1095

Quoted 4 lines
package/Config.in +1 -0
@@ -1092,6 +1092,7 @@ menu "JSON/XML"
        source "package/libxslt/Config.in"
        source "package/libyaml/Config.in"
        source "package/mxml/Config.in"
+       source "package/libpugixml/Config.in"

Keep package list alphabetically sorted please.

package/libpugixml/Config.in line 2

Quoted 11 lines
package/Config.in +0 -0
        source "package/rapidjson/Config.in"
        source "package/rapidxml/Config.in"
        source "package/raptor/Config.in"
package/libpugixml/Config.in new file +2 -0
new file mode 100644
index 0000000..17c6eec
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_LIBPUGIXML
+       bool "libpugixml"

Since it is a C++ project, it should depend on BR2_INSTALL_LIBSTDCPP, see [1].

Quoted 34 lines
package/libpugixml/Config.in new file +13 -0
+       help
+         Light-weight, simple and fast XML parser for C++ with XPath support
+
+         Features:
+         * DOM-like interface with rich traversal/modification capabilities
+         * Extremely fast non-validating XML parser which constructs the DOM tree
+           from an XML file/buffer
+         * XPath 1.0 implementation for complex data-driven tree queries
+         * Full Unicode support with Unicode interface variants and automatic
+           encoding conversions
+
+         http://pugixml.org/
+         https://github.com/zeux/pugixml
package/libpugixml/libpugixml.hash new file +2 -0
new file mode 100644
index 0000000..9007f7c
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256  fbe10d46f61d769f7d92a296102e4e2bd3ee16130f11c5b10a1aae590ea1f5ca  pugixml-1.7.tar.gz
package/libpugixml/libpugixml.mk new file +7 -0
new file mode 100644
index 0000000..3c9987e
@@ -0,0 +1,19 @@
+################################################################################
+#
+# libpugixml
+#
+################################################################################
+
+LIBPUGIXML_VERSION = 1.7

package/libpugixml/libpugixml.mk line 17

Quoted 10 lines
package/libpugixml/libpugixml.mk new file +10 -0
+LIBPUGIXML_SOURCE = pugixml-$(LIBPUGIXML_VERSION).tar.gz
+LIBPUGIXML_SITE = http://github.com/zeux/pugixml/releases/download/v$(LIBPUGIXML_VERSION)
+LIBPUGIXML_LICENSE = MIT
+LIBPUGIXML_LICENSE_FILES = docs/manual.html
+LIBPUGIXML_INSTALL_STAGING = YES
+
+LIBPUGIXML_SUBDIR = scripts
+
+# build libpugixml as a shared library
+LIBPUGIXML_CONF_OPTS = -DBUILD_SHARED_LIBS=ON

Please do not do that, this will break static only build. This flag is automatically driven by the cmake infrastructure depending on kind of build (shared lib only, shared + static lib or static lib only), check the cmake infrastructure reference section in the manual [2].
Note that, in case of shared + static lib build, if the build-system supports building only one kind of libs, shared libs is prefered (see [3]).

If you really want to forbid the static build of the library, then consider using "depends on !BR2_STATIC_LIBS", see the package section in the manual [1].

Quoted 9 lines
package/libpugixml/libpugixml.mk new file +2 -1
+
+$(eval $(cmake-package))
--

2.9.3

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

[1] http://nightly.buildroot.org/manual.html#dependencies-target-toolchain-options
[2] http://nightly.buildroot.org/manual.html#cmake-package-reference
[3] https://github.com/buildroot/buildroot/blob/master/package/pkg-cmake.mk#L100

Regards,

Signature · 1 line
Samuel
#2 lore raw

PATCH 1/1 add new library: libpugixml

In reply to Theo Debrouwere

Hello,

Thanks for your contribution!

This review is in addition to what Samuel Martin already said on the same patch.

package/libpugixml/libpugixml.mk line 8

Quoted 2 lines · Theo Debrouwere
package/libpugixml/libpugixml.mk new file +2 -0
+LIBPUGIXML_VERSION = 1.7
+LIBPUGIXML_SOURCE = pugixml-$(LIBPUGIXML_VERSION).tar.gz

Please use pugixml for the package name, since it's the upstream name. Then you can drop this line as the value will be the default.

package/libpugixml/libpugixml.mk line 11

Quoted 3 lines
package/libpugixml/libpugixml.mk new file +3 -0
+LIBPUGIXML_SITE = http://github.com/zeux/pugixml/releases/download/v$(LIBPUGIXML_VERSION)
+LIBPUGIXML_LICENSE = MIT
+LIBPUGIXML_LICENSE_FILES = docs/manual.html

Using an HTML file here is not really appropriate, as we concatenate all license files into a big text file, so it's not really going to look nice :/

The readme.txt is good enough as a license file.

package/libpugixml/libpugixml.mk line 14

Quoted 3 lines
package/libpugixml/libpugixml.mk new file +3 -0
+LIBPUGIXML_INSTALL_STAGING = YES
+
+LIBPUGIXML_SUBDIR = scripts

Hum, why?

package/libpugixml/libpugixml.mk line 19

Quoted 5 lines
package/libpugixml/libpugixml.mk new file +5 -0
+
+# build libpugixml as a shared library
+LIBPUGIXML_CONF_OPTS = -DBUILD_SHARED_LIBS=ON
+
+$(eval $(cmake-package))

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#3 lore raw

PATCH 1/1 add new library: libpugixml

Hi,

Thanks for the pointers.
I'm cleaning up the patches & I'll resubmit them.

One question though:

Quoted 7 lines

The readme.txt is good enough as a license file.

package/libpugixml/libpugixml.mk line 14

Quoted 3 lines
package/libpugixml/libpugixml.mk new file +3 -0
+LIBPUGIXML_INSTALL_STAGING = YES
+
+LIBPUGIXML_SUBDIR = scripts

Hum, why?

Is this about the SUBDIR option?

The CMakeLists.txt file is in a subfolder called scripts, so, it seems that I need this? Is there another option/setting?

Or should I add a comment about it?

I'm not sure what you are asking?

Theo

#4 lore raw

PATCH 1/1 add new library: libpugixml

Hello,

Quoted 8 lines · Theo Debrouwere
Quoted 7 lines

The readme.txt is good enough as a license file.

package/libpugixml/libpugixml.mk line 14

Quoted 3 lines
package/libpugixml/libpugixml.mk new file +3 -0
+LIBPUGIXML_INSTALL_STAGING = YES
+
+LIBPUGIXML_SUBDIR = scripts  

Hum, why?

Quoted 8 lines

Is this about the SUBDIR option?

The CMakeLists.txt file is in a subfolder called scripts, so, it seems that I need this? Is there another option/setting?

Or should I add a comment about it?

I'm not sure what you are asking?

What confused me is that in the latest version of pugixml (i.e master branch), the CMakeLists.txt is directly at the root of the project:

https://github.com/zeux/pugixml

However, since you are packaging the 1.7 version, which is a bit older than the master branch, the CMakeLists.txt is indeed inside the scripts/ subdirectory:

https://github.com/zeux/pugixml/tree/v1.7

So, it makes complete sense to use the SUBDIR option in this case. It's just that I was confused when looking at the Github repository, as I was looking at the master branch.

Thanks for your contribution!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#5 lore raw

PATCH 1/1 add new library: libpugixml

In reply to Theo Debrouwere

Hi Theo,

In addition to what the other two have commented...

Quoted 3 lines · Theo Debrouwere

From: Theo Debrouwere <[email protected]>

pugixml is a light-weight C++ XML processing library. It features:

Since upstream calls it pugixml (without lib- prefix), the buildroot package
should be named the same.

Quoted 24 lines

* DOM-like interface with rich traversal/modification capabilities
* Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
* XPath 1.0 implementation for complex data-driven tree queries
* Full Unicode support with Unicode interface variants and automatic encoding conversions

Homepage: http://pugixml.org/
Repository: https://github.com/zeux/pugixml

---
 package/Config.in                  |  1 +
 package/libpugixml/Config.in       | 15 +++++++++++++++
 package/libpugixml/libpugixml.hash |  2 ++
 package/libpugixml/libpugixml.mk   | 19 +++++++++++++++++++
 4 files changed, 37 insertions(+)
 create mode 100644 package/libpugixml/Config.in
 create mode 100644 package/libpugixml/libpugixml.hash
 create mode 100644 package/libpugixml/libpugixml.mk
package/Config.in +0 -0
index 1e51a45..d0198ce 100644

package/Config.in menu "JSON/XML" · line 1095

Quoted 4 lines
package/Config.in +1 -0
@@ -1092,6 +1092,7 @@ menu "JSON/XML"
 	source "package/libxslt/Config.in"
 	source "package/libyaml/Config.in"
 	source "package/mxml/Config.in"
+	source "package/libpugixml/Config.in"

... and then it's in the right place here :-)

Quoted 38 lines
package/Config.in +0 -0
 	source "package/rapidjson/Config.in"
 	source "package/rapidxml/Config.in"
 	source "package/raptor/Config.in"
package/libpugixml/Config.in new file +15 -0
new file mode 100644
index 0000000..17c6eec
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_LIBPUGIXML
+	bool "libpugixml"
+	help
+	  Light-weight, simple and fast XML parser for C++ with XPath support
+
+	  Features:
+	  * DOM-like interface with rich traversal/modification capabilities
+	  * Extremely fast non-validating XML parser which constructs the DOM tree
+	    from an XML file/buffer
+	  * XPath 1.0 implementation for complex data-driven tree queries
+	  * Full Unicode support with Unicode interface variants and automatic
+	    encoding conversions
+
+	  http://pugixml.org/
+	  https://github.com/zeux/pugixml
package/libpugixml/libpugixml.hash new file +2 -0
new file mode 100644
index 0000000..9007f7c
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256  fbe10d46f61d769f7d92a296102e4e2bd3ee16130f11c5b10a1aae590ea1f5ca  pugixml-1.7.tar.gz
package/libpugixml/libpugixml.mk new file +0 -0
new file mode 100644
index 0000000..3c9987e

package/libpugixml/libpugixml.mk line 8

Quoted 8 lines
package/libpugixml/libpugixml.mk new file +8 -0
@@ -0,0 +1,19 @@
+################################################################################
+#
+# libpugixml
+#
+################################################################################
+
+LIBPUGIXML_VERSION = 1.7
+LIBPUGIXML_SOURCE = pugixml-$(LIBPUGIXML_VERSION).tar.gz

If the package is called pugixml, this line isn't needed.

Regards,
Arnout

Quoted 12 lines
package/libpugixml/libpugixml.mk new file +11 -0
+LIBPUGIXML_SITE = http://github.com/zeux/pugixml/releases/download/v$(LIBPUGIXML_VERSION)
+LIBPUGIXML_LICENSE = MIT
+LIBPUGIXML_LICENSE_FILES = docs/manual.html
+LIBPUGIXML_INSTALL_STAGING = YES
+
+LIBPUGIXML_SUBDIR = scripts
+
+# build libpugixml as a shared library
+LIBPUGIXML_CONF_OPTS = -DBUILD_SHARED_LIBS=ON
+
+$(eval $(cmake-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#6 lore raw

[Buildroot] pugixml: new package

In reply to Theo Debrouwere

I fixed all the mentioned issues, except:

Quoted 1 line

+LIBPUGIXML_SUBDIR = scripts

In this release, CMakelists.txt is located in a subfolder.

This has been fixed in the git tree, but that hasn't been released yet.

#7 lore raw

[Buildroot] pugixml: new package

In reply to Theo Debrouwere

I've fixed the remarks, except:

LIBPUGIXML_SUBDIR = scripts

The location of the current release is inside a subfolder.
This has been fixed in the git tree, but isn't present in the release itself.

Theo

#8 lore raw

PATCH 1/1 pugixml: new package

From: Theo Debrouwere <[email protected]>

pugixml is a light-weight C++ XML processing library. It features:
* DOM-like interface with rich traversal/modification capabilities
* Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
* XPath 1.0 implementation for complex data-driven tree queries
* Full Unicode support with Unicode interface variants and automatic encoding conversions

Homepage: http://pugixml.org/
Repository: https://github.com/zeux/pugixml

---
 package/Config.in            |  1 +
 package/pugixml/Config.in    | 16 ++++++++++++++++
 package/pugixml/pugixml.hash |  2 ++
 package/pugixml/pugixml.mk   | 15 +++++++++++++++
 4 files changed, 34 insertions(+)
 create mode 100644 package/pugixml/Config.in
 create mode 100644 package/pugixml/pugixml.hash
 create mode 100644 package/pugixml/pugixml.mk
package/Config.in +1 -0
index 1e51a45..8d864bc 100644
@@ -1092,6 +1092,7 @@ menu "JSON/XML"
 	source "package/libxslt/Config.in"
 	source "package/libyaml/Config.in"
 	source "package/mxml/Config.in"
+	source "package/pugixml/Config.in"
 	source "package/rapidjson/Config.in"
 	source "package/rapidxml/Config.in"
 	source "package/raptor/Config.in"
package/pugixml/Config.in new file +16 -0
new file mode 100644
index 0000000..5310b10
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_PUGIXML
+	bool "pugixml"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  Light-weight, simple and fast XML parser for C++ with XPath support
+
+	  Features:
+	  * DOM-like interface with rich traversal/modification capabilities
+	  * Extremely fast non-validating XML parser which constructs the DOM tree
+	    from an XML file/buffer
+	  * XPath 1.0 implementation for complex data-driven tree queries
+	  * Full Unicode support with Unicode interface variants and automatic
+	    encoding conversions
+
+	  http://pugixml.org/
+	  https://github.com/zeux/pugixml
package/pugixml/pugixml.hash new file +2 -0
new file mode 100644
index 0000000..9007f7c
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256  fbe10d46f61d769f7d92a296102e4e2bd3ee16130f11c5b10a1aae590ea1f5ca  pugixml-1.7.tar.gz
package/pugixml/pugixml.mk new file +15 -0
new file mode 100644
index 0000000..2e4f0ce
@@ -0,0 +1,15 @@
+################################################################################
+#
+# pugixml
+#
+################################################################################
+
+PUGIXML_VERSION = 1.7
+PUGIXML_SITE = http://github.com/zeux/pugixml/releases/download/v$(PUGIXML_VERSION)
+PUGIXML_LICENSE = MIT
+PUGIXML_LICENSE_FILES = readme.txt
+PUGIXML_INSTALL_STAGING = YES
+
+PUGIXML_SUBDIR = scripts
+
+$(eval $(cmake-package))
Signature · 1 line
2.8.1
#9 lore raw

PATCH 1/1 pugixml: new package

Quoted 9 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Theo" == Theo Debrouwere <[email protected]> writes:

From: Theo Debrouwere <[email protected]>
pugixml is a light-weight C++ XML processing library. It features:
* DOM-like interface with rich traversal/modification capabilities
* Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
* XPath 1.0 implementation for complex data-driven tree queries
* Full Unicode support with Unicode interface variants and automatic encoding conversions

Quoted 4 lines

Homepage: http://pugixml.org/
Repository: https://github.com/zeux/pugixml

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#10 lore raw

PATCH 1/1 pugixml: new package

In reply to Theo Debrouwere

Hello,

Quoted 8 lines · Theo Debrouwere

From: Theo Debrouwere <[email protected]>

pugixml is a light-weight C++ XML processing library. It features:
* DOM-like interface with rich traversal/modification capabilities
* Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
* XPath 1.0 implementation for complex data-driven tree queries
* Full Unicode support with Unicode interface variants and automatic encoding conversions

Quoted 4 lines

Homepage: http://pugixml.org/
Repository: https://github.com/zeux/pugixml

This new package is causing a number of build failures. See:

http://autobuild.buildroot.net/?reason=pugixml-1.7

Could you have a look?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#11 lore raw

PATCH 1/1 pugixml: new package

Hello,

Quoted 5 lines

This new package is causing a number of build failures. See:

http://autobuild.buildroot.net/?reason=pugixml-1.7

Could you have a look?

The bfin issues seems to be caused by a fault in the CMakelist.txt file. Which seems to have been solved in the upstream git repo.
I will test the fix & verify that it solves the issue.

If it does, I'll provide the fix as a patch on 1.7, unless you/someone else prefers bumping to an unreleased git commit.

The arc issue: the compiler complains about an internal error. I'm not sure if this is a pugimxl issue, but I'll reproduce it tomorrow. (currently building bfin)

Theo

#12 lore raw

PATCH 1/1 pugixml: new package

Quoted 9 lines · Theo Debrouwere

Hello,

Quoted 5 lines

This new package is causing a number of build failures. See:

http://autobuild.buildroot.net/?reason=pugixml-1.7

Could you have a look?

Quoted 6 lines

The bfin issues seems to be caused by a fault in the CMakelist.txt file. Which seems to have been solved in the upstream git repo.
I will test the fix & verify that it solves the issue.

If it does, I'll provide the fix as a patch on 1.7, unless you/someone else prefers bumping to an unreleased git commit.

No, better cherry-pick the patch. If the upstream patch can be applied as-is,
we prefer pointing PUGIXML_PATCH to the upstream commit (and adding it to the hash file) rather than saving a copy in buildroot.

Quoted 5 lines

The arc issue: the compiler complains about an internal error. I'm not sure if this is a pugimxl issue, but I'll reproduce it tomorrow. (currently building bfin)

Compiler errors on ARC are handled pretty quickly by the ARC team. Just to be
sure, I'm adding Vlad in Cc.

Regards,
Arnout

Quoted 10 lines

Theo

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#13 lore raw

PATCH 1/1 pugixml: new package

Hi all,

Quoted 31 lines · Arnout Vandecappelle
Quoted 11 lines · Theo Debrouwere

Hello,

Quoted 6 lines

This new package is causing a number of build failures. See:

? http://autobuild.buildroot.net/?reason=pugixml-1.7

Could you have a look?

Quoted 6 lines

The bfin issues seems to be caused by a fault in the CMakelist.txt file. Which seems to have been solved in the upstream git repo.
I will test the fix & verify that it solves the issue.

If it does, I'll provide the fix as a patch on 1.7, unless you/someone else prefers bumping to an unreleased git commit.

?No, better cherry-pick the patch. If the upstream patch can be applied as-is, we prefer pointing PUGIXML_PATCH to the upstream commit (and adding it to the hash file) rather than saving a copy in buildroot.

Quoted 6 lines

The arc issue: the compiler complains about an internal error. I'm not sure if this is a pugimxl issue, but I'll reproduce it tomorrow. (currently building bfin)

Quoted 19 lines

?Compiler errors on ARC are handled pretty quickly by the ARC team. Just to be sure, I'm adding Vlad in Cc.

?Regards,
?Arnout

Quoted 11 lines

Theo

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

We know about that ARC compiler issue and working on it.? I hope we will provide a fix soon.?

Signature · 2 lines
Best regards,
Vlad Zakharov <[email protected]>
#14 lore raw

PATCH 1/1 pugixml: new package

In reply to Theo Debrouwere

Hello,

Thanks for having looked into this!

Quoted 6 lines · Theo Debrouwere

The bfin issues seems to be caused by a fault in the CMakelist.txt file. Which seems to have been solved in the upstream git repo.
I will test the fix & verify that it solves the issue.

If it does, I'll provide the fix as a patch on 1.7, unless you/someone else prefers bumping to an unreleased git commit.

The fix as a patch on 1.7 is probably the best solution for now, until upstream makes a new release that includes the fix.

Quoted 3 lines

The arc issue: the compiler complains about an internal error. I'm not sure if this is a pugimxl issue, but I'll reproduce it tomorrow. (currently building bfin)

The ARC issue is indeed a compiler problem, which is not directly related to pugixml. The people taking care of the ARC architecture have been notified of this build failure, and they regularly provide updates to the ARC toolchain support in Buildroot.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#15 lore raw

PATCH 1/1 package/pugixml: Fix CMakelists.txt cxx_long_long_type bug.

CMakelist.txt tries to enable the cxx_long_long_type option, even if the feature isn't available. (Which causes some builds to fail)

The included patch checks if the option is present before applying it.

The patch was backported from:
https://github.com/zeux/pugixml/commit/4dbb5646196a4a3cc94097f1473ef11d1d44df11

---
 .../0001-check-cxx_long_long_type-existence.patch  | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 package/pugixml/0001-check-cxx_long_long_type-existence.patch
package/pugixml/0001-check-cxx_long_long_type-existence.patch new file +33 -0
new file mode 100644
index 0000000..a53c84a
@@ -0,0 +1,33 @@
+From 6cfd9c14ced26c8220f7f7ea99610cbdbfb9eba7 Mon Sep 17 00:00:00 2001
+From: Theo Debrouwere <[email protected]>
+Date: Mon, 12 Sep 2016 09:38:56 +0200
+Subject: [PATCH] Bugfix: check if cxx_long_long_type is present before
+ applying it.
+
+Check if cxx_long_long_type is present in the list of compiler features
+before adding it as a target_compile_feature.
+
+Patch was backported from
+https://github.com/zeux/pugixml/commit/4dbb5646196a4a3cc94097f1473ef11d1d44df11
+
+Signed-off-by: Theo Debrouwere <[email protected]>
+---
+ scripts/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
+index 40a7ab0..6403753 100644
+--- a/scripts/CMakeLists.txt
++++ b/scripts/CMakeLists.txt
+@@ -26,7 +26,7 @@ else()
+ endif()
+ 
+ # Enable C++11 long long for compilers that are capable of it
+-if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STRLESS 3.1)
++if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STRLESS 3.1 AND ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_long_long_type;")
+ 	target_compile_features(pugixml PUBLIC cxx_long_long_type)
+ endif()
+ 
+-- 
+2.9.3
+
Signature · 1 line
2.8.1
#16 lore raw

PATCH 1/1 package/pugixml: Fix CMakelists.txt cxx_long_long_type bug.

Hello,

Quoted 5 lines · Theo Debrouwere

CMakelist.txt tries to enable the cxx_long_long_type option, even if the feature isn't available. (Which causes some builds to fail)

The included patch checks if the option is present before applying it.

Quoted 8 lines

The patch was backported from:
https://github.com/zeux/pugixml/commit/4dbb5646196a4a3cc94097f1473ef11d1d44df11

---
 .../0001-check-cxx_long_long_type-existence.patch  | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 package/pugixml/0001-check-cxx_long_long_type-existence.patch

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com