Bump to libzypp-bindings 0.7.4
[platform/upstream/libzypp-bindings.git] / CMakeLists.txt
index 1f658cc..30b0841 100644 (file)
@@ -1,76 +1,75 @@
+#
+#  CMakeLists.txt for libzypp-bindings
+#
+#
 
+cmake_minimum_required(VERSION 2.8)
+
+ENABLE_TESTING()
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -fPIC -fno-strict-aliasing")
+
+#
 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
+#
+
 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
 SET(CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ${CMAKE_MODULE_PATH})
 
+INCLUDE(ZyppCommon)
+
+#
+# versioning, packaging
+#
+
 INCLUDE(${CMAKE_SOURCE_DIR}/VERSION.cmake)
 
 SET( PACKAGE "libzypp-bindings" )
 SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
 
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Language Bindings for libzypp")
-SET(CPACK_PACKAGE_VENDOR "Novell Inc.")
-#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
-#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
-SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
-SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
-SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
-
-SET( CPACK_GENERATOR "TBZ2")
-SET( CPACK_SOURCE_GENERATOR "TBZ2")
-SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" )
-
-# The following components are regex's to match anywhere (unless anchored)
-# in absolute path + filename to find files or directories to be excluded
-# from source tarball.
-SET (CPACK_SOURCE_IGNORE_FILES
-"/CVS/;/.svn/;/.libs/;/.deps/;.swp$;.#;/#;/build/"
-"~$"
-"\\\\.cvsignore$"
-"/package"
-"Makefile\\\\.in$"
-)
 
+GENERATE_PACKAGING(${PACKAGE} ${VERSION})
 INCLUDE(CPack)
 
-#FIND_PACKAGE(SWIG REQUIRED)
+
 MESSAGE(STATUS "Looking modules in ${CMAKE_MODULE_PATH}")
-FIND_PROGRAM(SWIG_EXECUTABLE
-  NAMES swig-1.3 swig
-  PATHS ${SWIG_DIR} ${SWIG_DIR}/.. ${SWIG_DIR}/../../bin /usr/bin /usr/local/bin ${CMAKE_INSTALL_PREFIX}/bin
-)
 
-IF ( NOT SWIG_EXECUTABLE )
-  MESSAGE( FATAL "SWIG not found." )
-ELSE ( NOT SWIG_EXECUTABLE )
-  MESSAGE( STATUS "SWIG found at ${SWIG_EXECUTABLE}" )
-ENDIF ( NOT SWIG_EXECUTABLE )
+#
+# Finding Swig
+#
+
+FIND_PACKAGE(SWIG REQUIRED)
+
+#
+# Finding Zypp
+#
 
 FIND_PACKAGE(Zypp REQUIRED)
 
-ADD_SUBDIRECTORY(swig)
+# determine zypp version
+FIND_PROGRAM(READ_LINK readlink)
+EXECUTE_PROCESS(COMMAND "${READ_LINK}" "-f" ${ZYPP_LIBRARY} OUTPUT_VARIABLE ZYPP_SOFILE)
 
-ADD_CUSTOM_TARGET( svncheck
-  COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates
-  --quiet | grep -v '^Status against revision'
-)
+# match number at end, strip trailing \n by using a sub-match
+STRING(REGEX MATCH "([0-9]+)\\.[0-9]+\\.[0-9]+\n$" ZYPP_VERSION "${ZYPP_SOFILE}")
+SET( ZYPP_VERSION "${CMAKE_MATCH_1}" )
+MESSAGE(STATUS "Zypp so library version ${ZYPP_VERSION}")
 
-SET( AUTOBUILD_COMMAND
-  COMMAND ${CMAKE_MAKE_PROGRAM} package_source
-  COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
-  COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
-  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
-)
+SET( SWIG_DEFINITIONS -DZYPP_DEPRECATED -DZYPP_VERSION=${ZYPP_VERSION} )
 
-ADD_CUSTOM_TARGET( autobuild_local
-  ${AUTOBUILD_COMMAND}
-)
+#
+# Finding Boost
+#
 
-ADD_CUSTOM_TARGET( autobuild
-  COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
-  ${AUTOBUILD_COMMAND}
+FIND_PATH( BOOST_SMARTPTR_INCLUDE_DIR boost/smart_ptr/shared_ptr.hpp
+       /usr/include
+       /usr/local/include
 )
+IF( BOOST_SMARTPTR_INCLUDE_DIR )
+       SET( SWIG_DEFINITIONS ${SWIG_DEFINITIONS} -I${BOOST_SMARTPTR_INCLUDE_DIR} -DBOOST_SMARTPTR_INCLUDE_DIR )
+ENDIF( BOOST_SMARTPTR_INCLUDE_DIR )
 
-MESSAGE(STATUS "Writing spec file...")
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp-bindings.spec.cmake ${CMAKE_BINARY_DIR}/package/libzypp-bindings.spec @ONLY)
+# Now into SWIG
+
+ADD_SUBDIRECTORY(swig)