Make build of xml library part optional
authorThomas Jarosch <thomas.jarosch@intra2net.com>
Wed, 11 May 2011 12:47:35 +0000 (14:47 +0200)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Wed, 11 May 2011 12:47:35 +0000 (14:47 +0200)
CMakeLists.txt
libi2ncommon.spec

index 15e3347..cf7e34f 100644 (file)
@@ -95,6 +95,14 @@ else(DOXYGEN_FOUND)
    message(STATUS "Not generating API documentation")
 endif(DOXYGEN_FOUND)
 
+# Conditional build itmes
+option(BUILD_XMLLIB "Build xml part of libi2ncommon - needs patched libxml++" OFF)
+if (BUILD_XMLLIB)
+   message(STATUS "Build xml library part")
+else(BUILD_XMLLIB)
+   message(STATUS "NOT building xml library part")
+endif(BUILD_XMLLIB)
+
 # Find external packages
 include(FindPkgConfig)
 
@@ -102,7 +110,9 @@ include(FindPkgConfig)
 find_package(Boost COMPONENTS iostreams unit_test_framework REQUIRED)
 
 # Find libxml++
-pkg_check_modules(XMLPP REQUIRED libxml++-2.6)
+if (BUILD_XMLLIB)
+    pkg_check_modules(XMLPP REQUIRED libxml++-2.6)
+endif(BUILD_XMLLIB)
 
 # Find iconv
 pkg_check_modules(ICONV REQUIRED libiconv)
@@ -130,15 +140,19 @@ set(ICONV_CFLAGS "-I${ICONV_CFLAGS}")
 
 configure_file(${CMAKE_SOURCE_DIR}/libi2ncommon.pc.in ${CMAKE_BINARY_DIR}/libi2ncommon.pc @ONLY)
 configure_file(${CMAKE_SOURCE_DIR}/libi2ncommon_config.pc.in ${CMAKE_BINARY_DIR}/libi2ncommon_config.pc @ONLY)
-configure_file(${CMAKE_SOURCE_DIR}/libi2ncommon_xml.pc.in ${CMAKE_BINARY_DIR}/libi2ncommon_xml.pc @ONLY)
 configure_file(${CMAKE_SOURCE_DIR}/libi2ncommon_utils.pc.in ${CMAKE_BINARY_DIR}/libi2ncommon_utils.pc @ONLY)
 
 install(FILES ${CMAKE_BINARY_DIR}/libi2ncommon.pc
                      ${CMAKE_BINARY_DIR}/libi2ncommon_config.pc
-                     ${CMAKE_BINARY_DIR}/libi2ncommon_xml.pc
                      ${CMAKE_BINARY_DIR}/libi2ncommon_utils.pc
         DESTINATION lib/pkgconfig)
 
+if (BUILD_XMLLIB)
+    configure_file(${CMAKE_SOURCE_DIR}/libi2ncommon_xml.pc.in ${CMAKE_BINARY_DIR}/libi2ncommon_xml.pc @ONLY)
+    install(FILES ${CMAKE_BINARY_DIR}/libi2ncommon_xml.pc DESTINATION lib/pkgconfig)
+endif(BUILD_XMLLIB)
+
+
 include(CPack)
 
 # Subdirectories
@@ -146,6 +160,8 @@ set(CPACK_SET_DESTDIR "ON")
 
 add_subdirectory(src)
 add_subdirectory(configlib)
-add_subdirectory(xmllib)
 add_subdirectory(utils)
 add_subdirectory(test)
+if (BUILD_XMLLIB)
+    add_subdirectory(xmllib)
+endif(BUILD_XMLLIB)
index 583b1f9..7460fbc 100644 (file)
@@ -1,3 +1,11 @@
+%bcond_with Intra2net
+%bcond_with xmllib
+
+# Detect Intra2net build environment
+%if %{with Intra2net}
+    %define with_xmllib 1
+%endif
+
 Summary:   library with functions common in Intra2net programs
 Name:      libi2ncommon
 Version:   ##VERSION##
@@ -38,6 +46,7 @@ library with a config module.
 The config module provides a global configuration system with decentralized
 declaration of the config variables.
 
+%if %{with xmllib}
 %package xml
 Summary:    library with a xml module
 Group:      Intranator
@@ -45,6 +54,7 @@ Requires:   libi2ncommon = %{version}
 
 %description xml
 The xml module provides common xml functions.
+%endif
 
 %package utils
 Summary:    library with open source utility modules
@@ -65,7 +75,13 @@ cd build
 
 export CFLAGS="$RPM_OPT_FLAGS"
 export CXXFLAGS="$RPM_OPT_FLAGS"
-cmake -DCMAKE_INSTALL_PREFIX="%{prefix}" ../
+
+CMAKE_OPTS=""
+%if %{with xmllib}
+    CMAKE_OPTS="$CMAKE_OPTS -DBUILD_XMLLIB=ON"
+%endif
+
+cmake -DCMAKE_INSTALL_PREFIX="%{prefix}" $CMAKE_OPTS ../
 
 make %{?_smp_mflags} VERBOSE=1
 
@@ -101,10 +117,12 @@ rm -fr $RPM_BUILD_ROOT
 %doc COPYING.GPL
 %{prefix}/lib/libi2ncommon_config.so*
 
+%if %{with xmllib}
 %files xml
 %defattr(-,root,root)
 %doc COPYING.GPL
 %{prefix}/lib/libi2ncommon_xml.so*
+%endif
 
 %files utils
 %defattr(-,root,root)