Rebase for libzypp-bindings 0.7.3
[platform/upstream/libzypp-bindings.git] / CMakeLists.txt
1 #
2 #  CMakeLists.txt for libzypp-bindings
3 #
4 #
5
6 cmake_minimum_required(VERSION 2.8)
7
8 ENABLE_TESTING()
9
10 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -fPIC -fno-strict-aliasing")
11
12 #
13 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
14 #
15
16 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
17 SET(CMAKE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ${CMAKE_MODULE_PATH})
18
19 INCLUDE(ZyppCommon)
20
21 #
22 # versioning, packaging
23 #
24
25 INCLUDE(${CMAKE_SOURCE_DIR}/VERSION.cmake)
26
27 SET( PACKAGE "libzypp-bindings" )
28 SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
29
30
31 GENERATE_PACKAGING(${PACKAGE} ${VERSION})
32 INCLUDE(CPack)
33
34
35 MESSAGE(STATUS "Looking modules in ${CMAKE_MODULE_PATH}")
36
37 #
38 # Finding Swig
39 #
40
41 FIND_PACKAGE(SWIG REQUIRED)
42
43 #
44 # Finding Zypp
45 #
46
47 FIND_PACKAGE(Zypp REQUIRED)
48
49 # determine zypp version
50 FIND_PROGRAM(READ_LINK readlink)
51 EXECUTE_PROCESS(COMMAND "${READ_LINK}" "-f" ${ZYPP_LIBRARY} OUTPUT_VARIABLE ZYPP_SOFILE)
52
53 # match number at end, strip trailing \n by using a sub-match
54 STRING(REGEX MATCH "([0-9]+)\\.[0-9]+\\.[0-9]+\n$" ZYPP_VERSION "${ZYPP_SOFILE}")
55 SET( ZYPP_VERSION "${CMAKE_MATCH_1}" )
56 MESSAGE(STATUS "Zypp so library version ${ZYPP_VERSION}")
57
58 SET( SWIG_DEFINITIONS -DZYPP_DEPRECATED -DZYPP_VERSION=${ZYPP_VERSION} )
59
60 #
61 # Finding Boost
62 #
63
64 FIND_PATH( BOOST_SMARTPTR_INCLUDE_DIR boost/smart_ptr/shared_ptr.hpp
65         /usr/include
66         /usr/local/include
67 )
68 IF( BOOST_SMARTPTR_INCLUDE_DIR )
69         SET( SWIG_DEFINITIONS ${SWIG_DEFINITIONS} -I${BOOST_SMARTPTR_INCLUDE_DIR} -DBOOST_SMARTPTR_INCLUDE_DIR )
70 ENDIF( BOOST_SMARTPTR_INCLUDE_DIR )
71
72 # Now into SWIG
73
74 ADD_SUBDIRECTORY(swig)
75