Blame SOURCES/0001-allow-to-build-with-system-opencollada.patch

ebc4bd
From f24c60870531689d95c056037e48cd29ad1d17bb Mon Sep 17 00:00:00 2001
ebc4bd
From: David Tardon <dtardon@redhat.com>
ebc4bd
Date: Mon, 20 Oct 2014 14:21:22 +0200
ebc4bd
Subject: [PATCH] allow to build with system opencollada
ebc4bd
ebc4bd
Change-Id: I6101099c57d429987e06bca0652c843f4a94f8cc
ebc4bd
---
ebc4bd
 Makefile.fetch              |  2 +-
ebc4bd
 RepositoryExternal.mk       | 16 ++++++++++++++++
ebc4bd
 config_host.mk.in           |  4 +++-
ebc4bd
 configure.ac                | 35 +++++++++++++++++++++++++++++++++++
ebc4bd
 external/Module_external.mk |  2 +-
ebc4bd
 5 files changed, 56 insertions(+), 3 deletions(-)
ebc4bd
ebc4bd
diff --git a/Makefile.fetch b/Makefile.fetch
ebc4bd
index e8ccf5b..18b12be 100644
ebc4bd
--- a/Makefile.fetch
ebc4bd
+++ b/Makefile.fetch
ebc4bd
@@ -184,7 +184,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR)
ebc4bd
 		$(call fetch_Optional,NSS,NSS_TARBALL) \
ebc4bd
 		$(call fetch_Optional_pack,NUMBERTEXT_EXTENSION_PACK) \
ebc4bd
 		$(call fetch_Optional,ODFGEN,ODFGEN_TARBALL) \
ebc4bd
-		$(call fetch_Optional,COLLADA2GLTF,OPENCOLLADA_TARBALL) \
ebc4bd
+		$(call fetch_Optional,OPENCOLLADA,OPENCOLLADA_TARBALL) \
ebc4bd
 		$(call fetch_Optional,OPENLDAP,OPENLDAP_TARBALL) \
ebc4bd
 		$(call fetch_Optional,OPENSSL,OPENSSL_TARBALL) \
ebc4bd
 		$(call fetch_Optional,ORCUS,ORCUS_TARBALL) \
ebc4bd
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
ebc4bd
index 5277aea..911dab1 100644
ebc4bd
--- a/RepositoryExternal.mk
ebc4bd
+++ b/RepositoryExternal.mk
ebc4bd
@@ -3371,6 +3371,20 @@ endif # SYSTEN_LIBGLTF
ebc4bd
 
ebc4bd
 ifeq ($(ENABLE_COLLADA),TRUE)
ebc4bd
 
ebc4bd
+ifeq ($(SYSTEM_OPENCOLLADA),TRUE)
ebc4bd
+
ebc4bd
+define gb_LinkTarget__use_opencollada_parser
ebc4bd
+$(call gb_LinkTarget_set_include,$(1),\
ebc4bd
+	$$(INCLUDE) \
ebc4bd
+	$(OPENCOLLADA_CFLAGS) \
ebc4bd
+)
ebc4bd
+
ebc4bd
+$(call gb_LinkTarget_add_libs,$(1),$(OPENCOLLADA_LIBS))
ebc4bd
+
ebc4bd
+endef
ebc4bd
+
ebc4bd
+else # !SYSTEM_OPENCOLLADA
ebc4bd
+
ebc4bd
 define gb_LinkTarget__use_opencollada_parser
ebc4bd
 $(call gb_LinkTarget_set_include,$(1),\
ebc4bd
 	-I$(call gb_UnpackedTarball_get_dir,opencollada)/COLLADABaseUtils/include \
ebc4bd
@@ -3385,6 +3399,8 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\
ebc4bd
 )
ebc4bd
 endef
ebc4bd
 
ebc4bd
+endif # SYSTEM_OPENCOLLADA
ebc4bd
+
ebc4bd
 define gb_LinkTarget__use_collada2gltf
ebc4bd
 $(call gb_LinkTarget_set_include,$(1),\
ebc4bd
 	-I$(call gb_UnpackedTarball_get_dir,collada2gltf) \
ebc4bd
diff --git a/config_host.mk.in b/config_host.mk.in
ebc4bd
index 0fefbb0..738c80c 100644
ebc4bd
--- a/config_host.mk.in
ebc4bd
+++ b/config_host.mk.in
ebc4bd
@@ -431,6 +431,8 @@ export OOOP_SAMPLES_PACK=@OOOP_SAMPLES_PACK@
ebc4bd
 export OOO_JUNIT_JAR=@OOO_JUNIT_JAR@
ebc4bd
 export OOO_VENDOR=@OOO_VENDOR@
ebc4bd
+export OPENCOLLADA_CFLAGS=$(gb_SPACE)@OPENCOLLADA_CFLAGS@
ebc4bd
+export OPENCOLLADA_LIBS=$(gb_SPACE)@OPENCOLLADA_LIBS@
ebc4bd
 export OPENSSL_CFLAGS=$(gb_SPACE)@OPENSSL_CFLAGS@
ebc4bd
 export OPENSSL_LIBS=$(gb_SPACE)@OPENSSL_LIBS@
ebc4bd
 export ORCUS_CFLAGS=$(gb_SPACE)@ORCUS_CFLAGS@
ebc4bd
 export ORCUS_LIBS=$(gb_SPACE)@ORCUS_LIBS@
ebc4bd
@@ -558,4 +559,5 @@ export SYSTEM_NPAPI_HEADERS=@SYSTEM_NPAPI_HEADERS@
ebc4bd
 export SYSTEM_ODBC_HEADERS=@SYSTEM_ODBC_HEADERS@
ebc4bd
 export SYSTEM_ODFGEN=@SYSTEM_ODFGEN@
ebc4bd
+export SYSTEM_OPENCOLLADA=@SYSTEM_OPENCOLLADA@
ebc4bd
 export SYSTEM_OPENLDAP=@SYSTEM_OPENLDAP@
ebc4bd
 export SYSTEM_OPENSSL=@SYSTEM_OPENSSL@
ebc4bd
diff --git a/configure.ac b/configure.ac
ebc4bd
index 17feb1a..5d2198b 100644
ebc4bd
--- a/configure.ac
ebc4bd
+++ b/configure.ac
ebc4bd
@@ -1641,6 +1641,11 @@ AC_ARG_WITH(system-ucpp,
ebc4bd
         [Use ucpp already on system.]),,
ebc4bd
     [])
ebc4bd
 
ebc4bd
+AC_ARG_WITH(system-opencollada,
ebc4bd
+    AS_HELP_STRING([--with-system-opencollada],
ebc4bd
+        [Use openCOLLADA already on system.]),,
ebc4bd
+    [with_system_opencollada=no])
ebc4bd
+
ebc4bd
 AC_ARG_WITH(system-openldap,
ebc4bd
     AS_HELP_STRING([--with-system-openldap],
ebc4bd
         [Use the OpenLDAP LDAP SDK already on system.]),,
ebc4bd
@@ -10342,11 +10347,41 @@ if test "$enable_collada" != "no" -a "$ENABLE_GLTF" = "TRUE"; then
ebc4bd
     AC_MSG_RESULT([yes])
ebc4bd
     ENABLE_COLLADA=TRUE
ebc4bd
     AC_DEFINE(HAVE_FEATURE_COLLADA,1)
ebc4bd
+    AC_MSG_CHECKING([which OPENCOLLADA to use])
ebc4bd
+    if test "$with_system_opencollada" = "yes"; then
ebc4bd
+        AC_MSG_RESULT([external])
ebc4bd
+        SYSTEM_OPENCOLLADA=TRUE
ebc4bd
+        AS_IF([test -n "$OPENCOLLADA_CFLAGS"],[],[AC_MSG_ERROR([export OPENCOLLADA_CFLAGS])])
ebc4bd
+        AS_IF([test -n "$OPENCOLLADA_LIBS"],[],[AC_MSG_ERROR([export OPENCOLLADA_LIBS])])
ebc4bd
+        AC_LANG_PUSH([C++])
ebc4bd
+        save_CXXFLAGS=$CXXFLAGS
ebc4bd
+        save_CPPFLAGS=$CPPFLAGS
ebc4bd
+        CXXFLAGS="$CXXFLAGS $OPENCOLLADA_CFLAGS"
ebc4bd
+        CPPFLAGS="$CPPFLAGS $OPENCOLLADA_CFLAGS"
ebc4bd
+        AC_CHECK_HEADERS(
ebc4bd
+                COLLADABU.h \
ebc4bd
+                COLLADAFW.h \
ebc4bd
+                COLLADASaxFWLLoader.h \
ebc4bd
+                GeneratedSaxParser.h,
ebc4bd
+            [],
ebc4bd
+            [AC_MSG_ERROR([openCOLLADA headers not found. Install openCOLLADA])],
ebc4bd
+            [])
ebc4bd
+        CXXFLAGS=$save_CXXFLAGS
ebc4bd
+        CPPFLAGS=$save_CPPFLAGS
ebc4bd
+        AC_LANG_POP([C++])
ebc4bd
+        OPENCOLLADA_CFLAGS=$(printf '%s' "$OPENCOLLADA_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
ebc4bd
+    else
ebc4bd
+        AC_MSG_RESULT([internal])
ebc4bd
+        BUILD_TYPE="$BUILD_TYPE OPENCOLLADA"
ebc4bd
+    fi
ebc4bd
     BUILD_TYPE="$BUILD_TYPE COLLADA2GLTF"
ebc4bd
 else
ebc4bd
     AC_MSG_RESULT([no])
ebc4bd
 fi
ebc4bd
 AC_SUBST(ENABLE_COLLADA)
ebc4bd
+AC_SUBST([OPENCOLLADA_CFLAGS])
ebc4bd
+AC_SUBST([OPENCOLLADA_LIBS])
ebc4bd
+AC_SUBST([SYSTEM_OPENCOLLADA])
ebc4bd
 
ebc4bd
 # pdf import?
ebc4bd
 AC_MSG_CHECKING([whether to build the PDF import feature])
ebc4bd
diff --git a/external/Module_external.mk b/external/Module_external.mk
ebc4bd
index c95ea20..688e335 100644
ebc4bd
--- a/external/Module_external.mk
ebc4bd
+++ b/external/Module_external.mk
ebc4bd
@@ -75,7 +75,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\
ebc4bd
 	$(call gb_Helper_optional,NEON,neon) \
ebc4bd
 	$(call gb_Helper_optional,NSS,nss) \
ebc4bd
 	$(call gb_Helper_optional,ODFGEN,libodfgen) \
ebc4bd
-	$(call gb_Helper_optional,COLLADA2GLTF,opencollada) \
ebc4bd
+	$(call gb_Helper_optional,OPENCOLLADA,opencollada) \
ebc4bd
 	$(call gb_Helper_optional,OPENLDAP,openldap) \
ebc4bd
 	$(call gb_Helper_optional,OPENSSL,openssl) \
ebc4bd
 	$(call gb_Helper_optional,ORCUS,liborcus) \
ebc4bd
-- 
ebc4bd
1.9.3
ebc4bd