fix rpm packaging
[platform/upstream/libzypp.git] / CMakeLists.txt
1 PROJECT(libzypp)
2 SET( PACKAGE "libzypp" )
3 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
4 SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
5
6 INCLUDE(ZyppCommon)
7 INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake )
8
9 MATH( EXPR LIBZYPP_CURRENT "${LIBZYPP_MAJOR} * 100 + ${LIBZYPP_MINOR}" )
10 MATH( EXPR LIBZYPP_AGE     "${LIBZYPP_MINOR} - ${LIBZYPP_COMPATMINOR}" )
11 # Libtool wanted current:patch:age
12 # But cmake is not libtool, it wants the verbatim suffix to libzypp.so
13 MATH( EXPR LIBZYPP_SO_FIRST  "${LIBZYPP_CURRENT}-${LIBZYPP_AGE}" )
14 SET( VERSION "${LIBZYPP_MAJOR}.${LIBZYPP_MINOR}.${LIBZYPP_PATCH}" )
15
16 SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O3 -Wall -Woverloaded-virtual" )
17 SET( CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -g -O3 -Wall" )
18 ADD_DEFINITIONS( -D_FILE_OFFSET_BITS=64 )
19 ADD_DEFINITIONS( -DVERSION=\\\"${VERSION}\\\" )
20 SET( LIBZYPP_VERSION_INFO "${LIBZYPP_SO_FIRST}.${LIBZYPP_AGE}.${LIBZYPP_PATCH}" )
21 SET( LIBZYPP_SOVERSION_INFO "${LIBZYPP_SO_FIRST}" )
22
23 GENERATE_PACKAGING(${PACKAGE} ${VERSION})
24
25 INCLUDE(CPack)
26
27 ####################################################################
28
29 FIND_PACKAGE(Rpm REQUIRED)
30 IF ( NOT RPM_FOUND)
31   MESSAGE( FATAL_ERROR " rpm not found" )
32 ELSE ( NOT RPM_FOUND)
33   INCLUDE_DIRECTORIES(${RPM_INCLUDE_DIR})
34 ENDIF( NOT RPM_FOUND)
35
36 FIND_PACKAGE(Boost REQUIRED)
37 IF (Boost_FOUND)
38   MESSAGE( STATUS "boost found: includes in ${Boost_INCLUDE_DIRS}, library in ${Boost_LIBRARY_DIRS}")
39   INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
40   LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
41 ENDIF(Boost_FOUND)
42
43 FIND_PACKAGE(Gettext REQUIRED)
44 IF (GETTEXT_FOUND)
45   MESSAGE(STATUS "Found Gettext: ${GETTEXT_SOURCE}")
46   INCLUDE_DIRECTORIES(${GETTEXT_INCLUDE_DIR})
47 ELSE (GETTEXT_FOUND)
48   MESSAGE( FATAL_ERROR "Gettext not found" )
49 ENDIF (GETTEXT_FOUND)
50
51 FIND_PACKAGE(Hal REQUIRED)
52 IF ( NOT HAL_FOUND)
53   MESSAGE( FATAL_ERROR " Hal not found" )
54 ELSE ( NOT HAL_FOUND)
55   INCLUDE_DIRECTORIES(${HAL_INCLUDE_DIR})
56 # hal/libhal-storage.h is broken grrr
57   INCLUDE_DIRECTORIES(${HAL_INCLUDE_DIR}/hal)
58 ENDIF( NOT HAL_FOUND)
59
60 FIND_PACKAGE(Dbus REQUIRED)
61 IF ( NOT DBUS_FOUND)
62   MESSAGE( FATAL_ERROR " dbus not found" )
63 ELSE ( NOT DBUS_FOUND)
64   INCLUDE_DIRECTORIES(${DBUS_INCLUDE_DIR})
65   INCLUDE_DIRECTORIES(${DBUS_ARCH_INCLUDE_DIR})
66 ENDIF( NOT DBUS_FOUND)
67
68 FIND_PACKAGE(Glib REQUIRED)
69 IF (GLIB_FOUND)
70   MESSAGE( STATUS "glib found: includes in ${GLIB_INCLUDE_DIR}, library in ${GLIB_LIBRARY}")
71   INCLUDE_DIRECTORIES(${GLIB_INCLUDE_DIR})
72   INCLUDE_DIRECTORIES(${GLIB_CONFIG_INCLUDE_DIR})
73 ELSE(GLIB_FOUND)
74   MESSAGE( FATAL_ERROR "glib not found" )
75 ENDIF(GLIB_FOUND)
76
77 FIND_PACKAGE(Curl REQUIRED)
78 IF ( NOT CURL_FOUND)
79   MESSAGE( FATAL_ERROR " curl not found" )
80 ELSE ( NOT CURL_FOUND)
81   INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
82 ENDIF( NOT CURL_FOUND)
83
84 FIND_PACKAGE(Libxml REQUIRED)
85 IF ( NOT LIBXML_FOUND)
86   MESSAGE( FATAL_ERROR " libxml not found" )
87 ELSE ( NOT LIBXML_FOUND)
88   INCLUDE_DIRECTORIES(${LIBXML_INCLUDE_DIR})
89 ENDIF( NOT LIBXML_FOUND)
90
91 FIND_PACKAGE(Sqlite REQUIRED)
92
93 FIND_PACKAGE(ZLIB REQUIRED)
94 IF ( NOT ZLIB_FOUND)
95   MESSAGE( FATAL_ERROR " zlib not found" )
96 ELSE ( NOT ZLIB_FOUND)
97   INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
98 ENDIF( NOT ZLIB_FOUND)
99
100 FIND_PACKAGE(Satsolver REQUIRED)
101 IF ( NOT SATSOLVER_FOUND )
102   MESSAGE( FATAL_ERROR " libsatsolver not found" )
103 ELSE ( NOT SATSOLVER_FOUND )
104   INCLUDE_DIRECTORIES( ${SATSOLVER_INCLUDE_DIR} )
105 ENDIF( NOT SATSOLVER_FOUND )
106
107 FIND_PROGRAM( DOXYGEN doxygen )
108 IF ( NOT DOXYGEN )
109   MESSAGE( FATAL_ERROR "doxygen not found: install doxygen to build the documentation." )
110 ELSE ( NOT DOXYGEN )
111   MESSAGE( STATUS "doxygen found: ${DOXYGEN}" )
112 ENDIF ( NOT DOXYGEN )
113
114 MESSAGE(STATUS "soname: ${LIBZYPP_VERSION_INFO}")
115 MESSAGE(STATUS "version: ${VERSION}")
116
117
118 MESSAGE(STATUS "FindZypp.cmake will be installed in ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules")
119 INSTALL( FILES ${CMAKE_SOURCE_DIR}/cmake/modules/FindZypp.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
120 INSTALL( FILES ${CMAKE_SOURCE_DIR}/cmake/modules/ZyppCommon.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
121
122 MESSAGE(STATUS "zypp.conf will be installed in ${SYSCONFDIR}/zypp")
123 INSTALL( FILES ${CMAKE_SOURCE_DIR}/zypp.conf DESTINATION ${SYSCONFDIR}/zypp )
124
125 ####################################################################
126 # SUBDIRECTORIES                                                   #
127 ####################################################################
128
129 ADD_SUBDIRECTORY( zypp )
130 #ADD_SUBDIRECTORY( zypp2 )
131 # do not build devel by default
132 ADD_SUBDIRECTORY( devel EXCLUDE_FROM_ALL )
133 ADD_SUBDIRECTORY( tools )
134 #ADD_SUBDIRECTORY( examples )
135 ADD_SUBDIRECTORY( po EXCLUDE_FROM_ALL )
136 ADD_SUBDIRECTORY( doc EXCLUDE_FROM_ALL )
137 ADD_SUBDIRECTORY( tests EXCLUDE_FROM_ALL )
138