Skip to contentSkip to conversation

package/tinyxml2: Use BUILD_SHARED_LIBS cmake standard

PATCH Superseded Romain Naour 3 participants 6 messages May 8, 2015 – May 11, 2015

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/tinyxml2: Use BUILD_SHARED_LIBS cmake standard

Backport an upstream patch to fix the static build:
c8ec6fcab4eb501cc5bd328c19dcbd4b30722d52

---
 ...0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +65 -0
new file mode 100644
index 0000000..52288c5
@@ -0,0 +1,65 @@
+From 69acf13fa679628259063c4d0cd17e59b8bb0b75 Mon Sep 17 00:00:00 2001
+From: xantares <[email protected]>
+Date: Fri, 14 Nov 2014 19:40:58 +0100
+Subject: [PATCH] Use BUILD_SHARED_LIBS cmake standard.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ CMakeLists.txt | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 91c61a4..4375bb9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,8 +10,8 @@ include(GNUInstallDirs)
+ ################################
+ # set lib version here
+ 
+-set(GENERIC_LIB_VERSION "2.2.0")
+-set(GENERIC_LIB_SOVERSION "2")
++set(GENERIC_LIB_VERSION "2.2.0")
++set(GENERIC_LIB_SOVERSION "2")
+ 
+ 
+ ################################
+@@ -46,12 +46,8 @@ endif(MSVC)
+ 
+ ################################
+ # Add targets
+-set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries")
+-if(BUILD_STATIC_LIBS)
+-	add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h)
+-	set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2)
+-endif(BUILD_STATIC_LIBS)
+-add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h)
++option(BUILD_SHARED_LIBS "build shared or static libraries" ON)
++add_library(tinyxml2 tinyxml2.cpp tinyxml2.h)
+ set_target_properties(tinyxml2 PROPERTIES
+         COMPILE_DEFINITIONS "TINYXML2_EXPORT"
+ 	VERSION "${GENERIC_LIB_VERSION}"
+@@ -63,16 +59,11 @@ add_dependencies(test ${TARGET_DATA_COPY})
+ target_link_libraries(test tinyxml2)
+ 
+ 
+-if(BUILD_STATIC_LIBS)
+-	install(TARGETS tinyxml2 tinyxml2static
+-		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-else(BUILD_STATIC_LIBS)
+-	install(TARGETS tinyxml2
+-		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-endif(BUILD_STATIC_LIBS)
++install(TARGETS tinyxml2
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++
+ install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ 
+ foreach(p LIB INCLUDE)
+-- 
+1.9.3
+
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/1 package/tinyxml2: fix cmake warning

CMake complains about Policy CMP0037 that reserve some target name such "test".
So remove the warning by renaming test to xmltest.

Backport an upstream patch:
0b2c22bd46be95b08f234b8b4cb262f72ab3f0e8

---
 .../0002-Rename-test-fixed-cmake-warning.patch     | 38 ++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 package/tinyxml2/0002-Rename-test-fixed-cmake-warning.patch
package/tinyxml2/0002-Rename-test-fixed-cmake-warning.patch new file +38 -0
new file mode 100644
index 0000000..409269a
@@ -0,0 +1,38 @@
+From 77631a9cf500a578338a83bc230c419bf2a05b50 Mon Sep 17 00:00:00 2001
+From: xantares <[email protected]>
+Date: Fri, 14 Nov 2014 19:46:18 +0100
+Subject: [PATCH] Rename test, fixed cmake warning.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ CMakeLists.txt | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4375bb9..4a8f91d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -53,10 +53,10 @@ set_target_properties(tinyxml2 PROPERTIES
+ 	VERSION "${GENERIC_LIB_VERSION}"
+ 	SOVERSION "${GENERIC_LIB_SOVERSION}")
+ 
+-add_executable(test xmltest.cpp)
+-add_dependencies(test tinyxml2)
+-add_dependencies(test ${TARGET_DATA_COPY})
+-target_link_libraries(test tinyxml2)
++add_executable(xmltest xmltest.cpp)
++add_dependencies(xmltest tinyxml2)
++add_dependencies(xmltest ${TARGET_DATA_COPY})
++target_link_libraries(xmltest tinyxml2)
+ 
+ 
+ install(TARGETS tinyxml2
+@@ -76,4 +76,4 @@ endforeach()
+ configure_file(tinyxml2.pc.in tinyxml2.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tinyxml2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ 
+-#add_test(test ${SAMPLE_NAME} COMMAND $<TARGET_FILE:${SAMPLE_NAME}>)
++#add_test(xmltest ${SAMPLE_NAME} COMMAND $<TARGET_FILE:${SAMPLE_NAME}>)
+-- 
+1.9.3
+
Signature · 1 line
1.9.3
#2 lore raw

PATCH 1/1 package/tinyxml2: Use BUILD_SHARED_LIBS cmake standard

In reply to Romain Naour

Hi Romain,

Quoted 27 lines · Romain Naour

Backport an upstream patch to fix the static build:
c8ec6fcab4eb501cc5bd328c19dcbd4b30722d52

---
 ...0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +12 -0
new file mode 100644
index 0000000..52288c5
@@ -0,0 +1,65 @@
+From 69acf13fa679628259063c4d0cd17e59b8bb0b75 Mon Sep 17 00:00:00 2001
+From: xantares <[email protected]>
+Date: Fri, 14 Nov 2014 19:40:58 +0100
+Subject: [PATCH] Use BUILD_SHARED_LIBS cmake standard.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ CMakeLists.txt | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 91c61a4..4375bb9 100644

package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch line 22

Quoted 10 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +10 -0
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,8 +10,8 @@ include(GNUInstallDirs)
+ ################################
+ # set lib version here
+
+-set(GENERIC_LIB_VERSION "2.2.0")
+-set(GENERIC_LIB_SOVERSION "2")
++set(GENERIC_LIB_VERSION "2.2.0")
++set(GENERIC_LIB_SOVERSION "2")

What is the change here?

Quoted 4 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +4 -0
+
+
+ ################################
+@@ -46,12 +46,8 @@ endif(MSVC)

package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch line 36

Quoted 10 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +10 -0
+
+ ################################
+ # Add targets
+-set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries")
+-if(BUILD_STATIC_LIBS)
+-      add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h)
+-      set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2)
+-endif(BUILD_STATIC_LIBS)
+-add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h)
++option(BUILD_SHARED_LIBS "build shared or static libraries" ON)

Not needed, this is a global CMake flag.

Quoted 32 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +29 -1
++add_library(tinyxml2 tinyxml2.cpp tinyxml2.h)
+ set_target_properties(tinyxml2 PROPERTIES
+         COMPILE_DEFINITIONS "TINYXML2_EXPORT"
+       VERSION "${GENERIC_LIB_VERSION}"
+@@ -63,16 +59,11 @@ add_dependencies(test ${TARGET_DATA_COPY})
+ target_link_libraries(test tinyxml2)
+
+
+-if(BUILD_STATIC_LIBS)
+-      install(TARGETS tinyxml2 tinyxml2static
+-              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-else(BUILD_STATIC_LIBS)
+-      install(TARGETS tinyxml2
+-              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-endif(BUILD_STATIC_LIBS)
++install(TARGETS tinyxml2
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++
+ install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+ foreach(p LIB INCLUDE)
+--
+1.9.3
+
--

1.9.3

Quoted 4 lines

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

Regards,

Signature · 1 line
Samuel
#3 lore raw

PATCH 1/1 package/tinyxml2: Use BUILD_SHARED_LIBS cmake standard

Hi Samuel,

Le 08/05/2015 21:53, Samuel Martin a ?crit :

Quoted 33 lines

Hi Romain,

Quoted 30 lines · Romain Naour

Backport an upstream patch to fix the static build:
c8ec6fcab4eb501cc5bd328c19dcbd4b30722d52

---
 ...0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +15 -0
new file mode 100644
index 0000000..52288c5
@@ -0,0 +1,65 @@
+From 69acf13fa679628259063c4d0cd17e59b8bb0b75 Mon Sep 17 00:00:00 2001
+From: xantares <[email protected]>
+Date: Fri, 14 Nov 2014 19:40:58 +0100
+Subject: [PATCH] Use BUILD_SHARED_LIBS cmake standard.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ CMakeLists.txt | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 91c61a4..4375bb9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,8 +10,8 @@ include(GNUInstallDirs)
Quoted 8 lines

package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch line 22

Quoted 7 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +7 -0
+ ################################
+ # set lib version here
+
+-set(GENERIC_LIB_VERSION "2.2.0")
+-set(GENERIC_LIB_SOVERSION "2")
++set(GENERIC_LIB_VERSION "2.2.0")
++set(GENERIC_LIB_SOVERSION "2")

What is the change here?

Some space changes it seems.

Quoted 16 lines
Quoted 5 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +4 -0
+
+
+ ################################
+@@ -46,12 +46,8 @@ endif(MSVC)

package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch line 36

Quoted 10 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +10 -0
+
+ ################################
+ # Add targets
+-set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries")
+-if(BUILD_STATIC_LIBS)
+-      add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h)
+-      set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2)
+-endif(BUILD_STATIC_LIBS)
+-add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h)
++option(BUILD_SHARED_LIBS "build shared or static libraries" ON)

Not needed, this is a global CMake flag.

I have just cherry-picked the patch and keep things as is. I can rework the patch an keep only useful part if you prefer ;-)

Best regards,
Romain

Quoted 41 lines
Quoted 33 lines
package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch new file +29 -1
++add_library(tinyxml2 tinyxml2.cpp tinyxml2.h)
+ set_target_properties(tinyxml2 PROPERTIES
+         COMPILE_DEFINITIONS "TINYXML2_EXPORT"
+       VERSION "${GENERIC_LIB_VERSION}"
+@@ -63,16 +59,11 @@ add_dependencies(test ${TARGET_DATA_COPY})
+ target_link_libraries(test tinyxml2)
+
+
+-if(BUILD_STATIC_LIBS)
+-      install(TARGETS tinyxml2 tinyxml2static
+-              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+-              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-else(BUILD_STATIC_LIBS)
+-      install(TARGETS tinyxml2
+-              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+-              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-endif(BUILD_STATIC_LIBS)
++install(TARGETS tinyxml2
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++
+ install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+ foreach(p LIB INCLUDE)
+--
+1.9.3
+
--

1.9.3

Quoted 4 lines

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

Regards,

#4 lore raw

PATCH 1/1 package/tinyxml2: Use BUILD_SHARED_LIBS cmake standard

Dear Romain Naour,

Quoted 12 lines · Romain Naour
Quoted 12 lines
Quoted 12 lines

+ ################################
+@@ -46,12 +46,8 @@ endif(MSVC)
+
+ ################################
+ # Add targets

+-set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries")
+-if(BUILD_STATIC_LIBS)
+-      add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h)
+-      set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2)
+-endif(BUILD_STATIC_LIBS)
+-add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h)

++option(BUILD_SHARED_LIBS "build shared or static libraries" ON)

Quoted 4 lines
Quoted 1 line

Not needed, this is a global CMake flag.

I have just cherry-picked the patch and keep things as is. I can rework the patch an keep only useful part if you prefer ;-)

No, if it is an upstream patch, please keep it as unmodified as possible when backporting it to Buildroot.

Thanks,

Thomas

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

PATCH 1/1 package/tinyxml2: Use BUILD_SHARED_LIBS cmake standard

Hi Thomas, Samuel, all

Le 11/05/2015 11:30, Thomas Petazzoni a ?crit :

Quoted 16 lines

Dear Romain Naour,

Quoted 12 lines · Romain Naour
Quoted 12 lines
Quoted 12 lines

+ ################################
+@@ -46,12 +46,8 @@ endif(MSVC)
+
+ ################################
+ # Add targets

+-set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries")
+-if(BUILD_STATIC_LIBS)
+-      add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h)
+-      set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2)
+-endif(BUILD_STATIC_LIBS)
+-add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h)

++option(BUILD_SHARED_LIBS "build shared or static libraries" ON)

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

Not needed, this is a global CMake flag.

I have just cherry-picked the patch and keep things as is. I can rework the patch an keep only useful part if you prefer ;-)

No, if it is an upstream patch, please keep it as unmodified as possible when backporting it to Buildroot.

Ok, so this series is still valid.
Thanks Samuel for the review :)

Best regards,
Romain

Quoted 5 lines

Thanks,

Thomas