* [Buildroot] [PATCHv4] package/pugixml: add support for a limited set of configuration options
@ 2019-02-04 10:06 Thomas De Schampheleire
2019-02-04 10:18 ` Matthew Weber
2019-02-04 14:21 ` Arnout Vandecappelle
0 siblings, 2 replies; 3+ messages in thread
From: Thomas De Schampheleire @ 2019-02-04 10:06 UTC (permalink / raw)
To: buildroot
From: Wouter Vermeiren <wouter.vermeiren@nokia.com>
Add config options for a few pugixml configurables.
- Xpath support is enabled by default but has a size impact. Disabling it
reduces the size significantly (it almost halves). Output of 'size' on the
library compiled for x86:
- Xpath support enabled
160374 1244 28 161646 2776e output/target/usr/lib/libpugixml.so.1.7
- Xpath support disabled
92754 880 8 93642 16dca usr/lib/libpugixml.so.1.7
- Compact and header-only modes are not strictly needed for our use case, but we
did the work anyway and may be useful for someone else.
Signed-off-by: Wouter Vermeiren <wouter.vermeiren@nokia.com>
[ThomasDS:
- align with Buildroot coding style
- retain only feature options: xpath, compact mode, header-only]
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
package/pugixml/Config.in | 32 ++++++++++++++++++++++++++++++++
package/pugixml/pugixml.mk | 14 ++++++++++++++
2 files changed, 46 insertions(+)
v4:
- drop options for exceptions, stl, wchar
- drop forced 'long long' support: enabled by C++11 anyway (gcc 4.8+).
v3:
- always enable 'long long' type (feedback Arnout Vandecappelle)
- remove unnecessary 'strip' on PUGIXML_BUILD_DEFINES
v2: (feedback Thomas Petazzoni)
- change 'disable' options into 'enable' and reorder them to be first
- rename 'has-long-long' option
diff --git a/package/pugixml/Config.in b/package/pugixml/Config.in
index c37b1df9e5..6b7d2e3259 100644
--- a/package/pugixml/Config.in
+++ b/package/pugixml/Config.in
@@ -18,5 +18,37 @@ config BR2_PACKAGE_PUGIXML
http://pugixml.org/
https://github.com/zeux/pugixml
+if BR2_PACKAGE_PUGIXML
+
+config BR2_PACKAGE_PUGIXML_XPATH_SUPPORT
+ bool "Enable XPath support"
+ default y
+ help
+ When disabled, both XPath interfaces and XPath implementation
+ are excluded from compilation. This option is provided in case
+ you do not need XPath functionality and need to save code
+ space.
+
+config BR2_PACKAGE_PUGIXML_COMPACT
+ bool "Enable compact mode"
+ help
+ Activates a different internal representation of document
+ storage that is much more memory efficient for documents with
+ a lot of markup (i.e. nodes and attributes), but is slightly
+ slower to parse and access.
+
+ http://pugixml.org/docs/manual.html#dom.memory.compact
+
+config BR2_PACKAGE_PUGIXML_HEADER_ONLY
+ bool "Enable header-only version"
+ help
+ All source code for pugixml will be included in every
+ translation unit that includes pugixml.hpp. This is how most
+ of Boost and STL libraries work.
+
+ http://pugixml.org/docs/manual.html#install.building.header
+
+endif
+
comment "pugixml needs a toolchain w/ C++"
depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/pugixml/pugixml.mk b/package/pugixml/pugixml.mk
index e5188e5f53..acf22604c4 100644
--- a/package/pugixml/pugixml.mk
+++ b/package/pugixml/pugixml.mk
@@ -10,4 +10,18 @@ PUGIXML_LICENSE = MIT
PUGIXML_LICENSE_FILES = readme.txt
PUGIXML_INSTALL_STAGING = YES
+ifeq ($(BR2_PACKAGE_PUGIXML_XPATH_SUPPORT),)
+PUGIXML_BUILD_DEFINES += PUGIXML_NO_XPATH
+endif
+ifeq ($(BR2_PACKAGE_PUGIXML_COMPACT),y)
+PUGIXML_BUILD_DEFINES += PUGIXML_COMPACT
+endif
+ifeq ($(BR2_PACKAGE_PUGIXML_HEADER_ONLY),y)
+PUGIXML_BUILD_DEFINES += PUGIXML_HEADER_ONLY
+endif
+
+ifdef PUGIXML_BUILD_DEFINES
+PUGIXML_CONF_OPTS += -DBUILD_DEFINES="$(subst $(space),;,$(PUGIXML_BUILD_DEFINES))"
+endif
+
$(eval $(cmake-package))
--
2.19.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCHv4] package/pugixml: add support for a limited set of configuration options
2019-02-04 10:06 [Buildroot] [PATCHv4] package/pugixml: add support for a limited set of configuration options Thomas De Schampheleire
@ 2019-02-04 10:18 ` Matthew Weber
2019-02-04 14:21 ` Arnout Vandecappelle
1 sibling, 0 replies; 3+ messages in thread
From: Matthew Weber @ 2019-02-04 10:18 UTC (permalink / raw)
To: buildroot
Thomas De,
On Mon, Feb 4, 2019 at 4:06 AM Thomas De Schampheleire
<patrickdepinguin@gmail.com> wrote:
>
> From: Wouter Vermeiren <wouter.vermeiren@nokia.com>
>
> Add config options for a few pugixml configurables.
>
> - Xpath support is enabled by default but has a size impact. Disabling it
> reduces the size significantly (it almost halves). Output of 'size' on the
> library compiled for x86:
> - Xpath support enabled
> 160374 1244 28 161646 2776e output/target/usr/lib/libpugixml.so.1.7
> - Xpath support disabled
> 92754 880 8 93642 16dca usr/lib/libpugixml.so.1.7
>
> - Compact and header-only modes are not strictly needed for our use case, but we
> did the work anyway and may be useful for someone else.
>
> Signed-off-by: Wouter Vermeiren <wouter.vermeiren@nokia.com>
> [ThomasDS:
> - align with Buildroot coding style
> - retain only feature options: xpath, compact mode, header-only]
> Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Did a build on aarch, adjusted kconfig options and verified build
completed with pugixml CMakeCache.txt showing
"BUILD_DEFINES:STRING=PUGIXML_NO_XPATH;PUGIXML_COMPACT;PUGIXML_HEADER_ONLY"
Tested-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> ---
> package/pugixml/Config.in | 32 ++++++++++++++++++++++++++++++++
> package/pugixml/pugixml.mk | 14 ++++++++++++++
> 2 files changed, 46 insertions(+)
>
> v4:
> - drop options for exceptions, stl, wchar
> - drop forced 'long long' support: enabled by C++11 anyway (gcc 4.8+).
> v3:
> - always enable 'long long' type (feedback Arnout Vandecappelle)
> - remove unnecessary 'strip' on PUGIXML_BUILD_DEFINES
> v2: (feedback Thomas Petazzoni)
> - change 'disable' options into 'enable' and reorder them to be first
> - rename 'has-long-long' option
>
>
> diff --git a/package/pugixml/Config.in b/package/pugixml/Config.in
> index c37b1df9e5..6b7d2e3259 100644
> --- a/package/pugixml/Config.in
> +++ b/package/pugixml/Config.in
> @@ -18,5 +18,37 @@ config BR2_PACKAGE_PUGIXML
> http://pugixml.org/
> https://github.com/zeux/pugixml
>
> +if BR2_PACKAGE_PUGIXML
> +
> +config BR2_PACKAGE_PUGIXML_XPATH_SUPPORT
> + bool "Enable XPath support"
> + default y
> + help
> + When disabled, both XPath interfaces and XPath implementation
> + are excluded from compilation. This option is provided in case
> + you do not need XPath functionality and need to save code
> + space.
> +
> +config BR2_PACKAGE_PUGIXML_COMPACT
> + bool "Enable compact mode"
> + help
> + Activates a different internal representation of document
> + storage that is much more memory efficient for documents with
> + a lot of markup (i.e. nodes and attributes), but is slightly
> + slower to parse and access.
> +
> + http://pugixml.org/docs/manual.html#dom.memory.compact
> +
> +config BR2_PACKAGE_PUGIXML_HEADER_ONLY
> + bool "Enable header-only version"
> + help
> + All source code for pugixml will be included in every
> + translation unit that includes pugixml.hpp. This is how most
> + of Boost and STL libraries work.
> +
> + http://pugixml.org/docs/manual.html#install.building.header
> +
> +endif
> +
> comment "pugixml needs a toolchain w/ C++"
> depends on !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/pugixml/pugixml.mk b/package/pugixml/pugixml.mk
> index e5188e5f53..acf22604c4 100644
> --- a/package/pugixml/pugixml.mk
> +++ b/package/pugixml/pugixml.mk
> @@ -10,4 +10,18 @@ PUGIXML_LICENSE = MIT
> PUGIXML_LICENSE_FILES = readme.txt
> PUGIXML_INSTALL_STAGING = YES
>
> +ifeq ($(BR2_PACKAGE_PUGIXML_XPATH_SUPPORT),)
> +PUGIXML_BUILD_DEFINES += PUGIXML_NO_XPATH
> +endif
> +ifeq ($(BR2_PACKAGE_PUGIXML_COMPACT),y)
> +PUGIXML_BUILD_DEFINES += PUGIXML_COMPACT
> +endif
> +ifeq ($(BR2_PACKAGE_PUGIXML_HEADER_ONLY),y)
> +PUGIXML_BUILD_DEFINES += PUGIXML_HEADER_ONLY
> +endif
> +
> +ifdef PUGIXML_BUILD_DEFINES
> +PUGIXML_CONF_OPTS += -DBUILD_DEFINES="$(subst $(space),;,$(PUGIXML_BUILD_DEFINES))"
> +endif
> +
> $(eval $(cmake-package))
> --
> 2.19.2
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
Matthew Weber | Pr. Software Engineer | Commercial Avionics
COLLINS AEROSPACE
400 Collins Road NE, Cedar Rapids, Iowa 52498, USA
Tel: +1 319 295 7349 | FAX: +1 319 263 6099
matthew.weber at collins.com | collinsaerospace.com
CONFIDENTIALITY WARNING: This message may contain proprietary and/or
privileged information of Collins Aerospace and its affiliated
companies. If you are not the intended recipient, please 1) Do not
disclose, copy, distribute or use this message or its contents. 2)
Advise the sender by return email. 3) Delete all copies (including all
attachments) from your computer. Your cooperation is greatly
appreciated.
Any export restricted material should be shared using my
matthew.weber at corp.rockwellcollins.com address.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCHv4] package/pugixml: add support for a limited set of configuration options
2019-02-04 10:06 [Buildroot] [PATCHv4] package/pugixml: add support for a limited set of configuration options Thomas De Schampheleire
2019-02-04 10:18 ` Matthew Weber
@ 2019-02-04 14:21 ` Arnout Vandecappelle
1 sibling, 0 replies; 3+ messages in thread
From: Arnout Vandecappelle @ 2019-02-04 14:21 UTC (permalink / raw)
To: buildroot
On 04/02/2019 11:06, Thomas De Schampheleire wrote:
> From: Wouter Vermeiren <wouter.vermeiren@nokia.com>
>
> Add config options for a few pugixml configurables.
>
> - Xpath support is enabled by default but has a size impact. Disabling it
> reduces the size significantly (it almost halves). Output of 'size' on the
> library compiled for x86:
> - Xpath support enabled
> 160374 1244 28 161646 2776e output/target/usr/lib/libpugixml.so.1.7
> - Xpath support disabled
> 92754 880 8 93642 16dca usr/lib/libpugixml.so.1.7
>
> - Compact and header-only modes are not strictly needed for our use case, but we
> did the work anyway and may be useful for someone else.
>
> Signed-off-by: Wouter Vermeiren <wouter.vermeiren@nokia.com>
> [ThomasDS:
> - align with Buildroot coding style
> - retain only feature options: xpath, compact mode, header-only]
> Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Applied to master, thanks.
Regards,
Arnout
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-02-04 14:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-04 10:06 [Buildroot] [PATCHv4] package/pugixml: add support for a limited set of configuration options Thomas De Schampheleire
2019-02-04 10:18 ` Matthew Weber
2019-02-04 14:21 ` Arnout Vandecappelle
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.