From: Thomas Jarosch Date: Wed, 11 May 2011 12:47:35 +0000 (+0200) Subject: Make build of xml library part optional X-Git-Tag: v2.6~69 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=80156cdf39c5f6925697e7a264c387a226bf64cf;p=libi2ncommon Make build of xml library part optional --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 15e3347..cf7e34f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/libi2ncommon.spec b/libi2ncommon.spec index 583b1f9..7460fbc 100644 --- a/libi2ncommon.spec +++ b/libi2ncommon.spec @@ -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)