diff mbox

tinyxml2: fix build in static libs configuration

Message ID 1493838254-3658-1-git-send-email-rahulbedarkar89@gmail.com
State Accepted
Headers show

Commit Message

Rahul Bedarkar May 3, 2017, 7:04 p.m. UTC
tinyxml2 can build both static and shared libraries. By default, only
shared library is built. Shared/static builds are controlled using
separate cmake flags BUILD_SHARED_LIBS and BUILD_STATIC_LIBS.

In static libs configuration, we internally pass -DBUILD_SHARED_LIBS=OFF
cmake flag to build system which disables both shared and static builds
of library, resulting in failures while linking executable with library.

So pass -DBUILD_STATIC_LIBS=ON cmake flag in case of static libs
configuration.

fixes:
  http://autobuild.buildroot.net/results/d30/d301bcbe5db26068b35eaa94bd816ae8cf8ef2e1

Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
---
 package/tinyxml2/tinyxml2.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Petazzoni May 4, 2017, 3:09 p.m. UTC | #1
Hello,

Adding Samuel Martin here, for CMake related discussion below.

On Thu,  4 May 2017 00:34:14 +0530, Rahul Bedarkar wrote:
> tinyxml2 can build both static and shared libraries. By default, only
> shared library is built. Shared/static builds are controlled using
> separate cmake flags BUILD_SHARED_LIBS and BUILD_STATIC_LIBS.
> 
> In static libs configuration, we internally pass -DBUILD_SHARED_LIBS=OFF
> cmake flag to build system which disables both shared and static builds
> of library, resulting in failures while linking executable with library.
> 
> So pass -DBUILD_STATIC_LIBS=ON cmake flag in case of static libs
> configuration.
> 
> fixes:
>   http://autobuild.buildroot.net/results/d30/d301bcbe5db26068b35eaa94bd816ae8cf8ef2e1
> 
> Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
> ---
>  package/tinyxml2/tinyxml2.mk | 4 ++++
>  1 file changed, 4 insertions(+)

Applied to master, thanks.

I think we need to refactor things more globally here though. Why is
pkg-cmake.mk passing BUILD_SHARED_LIBS and not BUILD_STATIC_LIBS ? Why
are some packages passing BUILD_SHARED_LIBS even if it's already passed
by pkg-cmake.mk ?

Thomas
diff mbox

Patch

diff --git a/package/tinyxml2/tinyxml2.mk b/package/tinyxml2/tinyxml2.mk
index bb1e167..e289ca9 100644
--- a/package/tinyxml2/tinyxml2.mk
+++ b/package/tinyxml2/tinyxml2.mk
@@ -10,4 +10,8 @@  TINYXML2_LICENSE = Zlib
 TINYXML2_LICENSE_FILES = readme.md
 TINYXML2_INSTALL_STAGING = YES
 
+ifeq ($(BR2_STATIC_LIBS),y)
+TINYXML2_CONF_OPTS += -DBUILD_STATIC_LIBS=ON
+endif
+
 $(eval $(cmake-package))