kumquat-buildroot/package/pugixml/pugixml.mk
Fabrice Fontaine 6454358fe1 package/pugixml: drop header-only option
Header-only option raises the following build failure with gerbera since
commit cc3a4a7b1d:

/home/thomas/autobuild/instance-2/output-1/host/lib/gcc/nios2-buildroot-linux-gnu/10.4.0/../../../../nios2-buildroot-linux-gnu/bin/ld: CMakeFiles/gerbera.dir/src/main.cc.o: in function `ConfigGenerator::~ConfigGenerator()':
/home/thomas/autobuild/instance-2/output-1/build/gerbera-1.10.0/src/config/config_generator.h:33: undefined reference to `pugi::xml_document::~xml_document()'

This build failure can't be fixed by adding a
!BR2_PACKAGE_PUGIXML_HEADER_ONLY dependency as it will create the
following recursive dependency:

package/gerbera/Config.in:1:error: recursive dependency detected!
package/gerbera/Config.in:1:    symbol BR2_PACKAGE_GERBERA depends on BR2_PACKAGE_PUGIXML_HEADER_ONLY
package/pugixml/Config.in:42:   symbol BR2_PACKAGE_PUGIXML_HEADER_ONLY depends on BR2_PACKAGE_PUGIXML
package/pugixml/Config.in:1:    symbol BR2_PACKAGE_PUGIXML is selected by BR2_PACKAGE_GERBERA

Moreover, commit 48b2e50eb8 stated that
"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."

So dropping header-only seems to be the right approach

Fixes:
 - http://autobuild.buildroot.org/results/800537a1ef5f48d24c20aad7a9c96c56dfdc77f5

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2023-03-05 19:54:59 +01:00

42 lines
1.3 KiB
Makefile

################################################################################
#
# pugixml
#
################################################################################
PUGIXML_VERSION = 1.13
PUGIXML_SITE = https://github.com/zeux/pugixml/releases/download/v$(PUGIXML_VERSION)
PUGIXML_LICENSE = MIT
PUGIXML_LICENSE_FILES = LICENSE.md
PUGIXML_CPE_ID_VENDOR = pugixml_project
PUGIXML_INSTALL_STAGING = YES
ifeq ($(BR2_PACKAGE_PUGIXML_XPATH_SUPPORT),y)
PUGIXML_CONF_OPTS += -DPUGIXML_NO_XPATH=OFF
else
PUGIXML_CONF_OPTS += -DPUGIXML_NO_XPATH=ON
endif
ifeq ($(BR2_PACKAGE_PUGIXML_COMPACT),y)
PUGIXML_CONF_OPTS += -DPUGIXML_COMPACT=ON
else
PUGIXML_CONF_OPTS += -DPUGIXML_COMPACT=OFF
endif
# Pugixml will automatically enable 'long long' support on C++11 compilers,
# which means gcc 4.8+. As gcc always supports the 'long long' type,
# force-enable this option to support older gcc versions. See also:
# https://gcc.gnu.org/onlinedocs/gcc/Long-Long.html
PUGIXML_BUILD_DEFINES += PUGIXML_HAS_LONG_LONG
HOST_PUGIXML_BUILD_DEFINES += PUGIXML_HAS_LONG_LONG
PUGIXML_CONF_OPTS += -DPUGIXML_BUILD_DEFINES="$(subst $(space),;,$(PUGIXML_BUILD_DEFINES))"
HOST_PUGIXML_CONF_OPTS += \
-DBUILD_PKGCONFIG=ON \
-DPUGIXML_BUILD_DEFINES="$(subst $(space),;,$(HOST_PUGIXML_BUILD_DEFINES))"
$(eval $(cmake-package))
$(eval $(host-cmake-package))