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