move into trunk
[platform/upstream/libzypp.git] / cmake / modules / ZyppCommon.cmake
1 # Library
2 IF ( DEFINED LIB )
3   SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}" )
4 ELSE ( DEFINED  LIB )
5   IF (CMAKE_SIZEOF_VOID_P MATCHES "8")
6     SET( LIB_SUFFIX "64" )
7   ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
8   SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" )
9 ENDIF ( DEFINED  LIB )
10 MESSAGE(STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}" )
11
12 # system configuration dir (etc)
13 IF( NOT DEFINED SYSCONFDIR )
14   IF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
15     # if installing in usr, set sysconfg to etc
16     SET( SYSCONFDIR /etc )
17   ELSE ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
18     SET ( SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc" )
19   ENDIF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" )
20 ENDIF( NOT DEFINED SYSCONFDIR )
21 MESSAGE(STATUS "Config files will be installed in ${SYSCONFDIR}" )
22
23 # usr INSTALL_PREFIX
24
25 IF( DEFINED CMAKE_INSTALL_PREFIX )
26   SET( INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
27 ELSE( DEFINED CMAKE_INSTALL_PREFIX )
28   SET( INSTALL_PREFIX /usr )
29 ENDIF( DEFINED CMAKE_INSTALL_PREFIX )
30
31 # system configuration dir (etc)
32 IF( NOT DEFINED MANDIR )
33   SET( MANDIR ${INSTALL_PREFIX}/share/man )
34 ENDIF( NOT DEFINED MANDIR )
35 MESSAGE( "** Manual files will be installed in ${MANDIR}" )
36
37 ####################################################################
38 # CONFIGURATION                                                    #
39 ####################################################################
40
41 SET( DOC_INSTALL_DIR
42    "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}"
43    CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})"
44    FORCE
45 )
46
47 ####################################################################
48 # INCLUDES                                                         #
49 ####################################################################
50
51 #SET (CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
52 INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} SYSTEM )
53
54
55 ####################################################################
56 # RPM SPEC                                                         #
57 ####################################################################
58
59 MACRO(SPECFILE)
60   MESSAGE(STATUS "Writing spec file...")
61   CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PACKAGE}.spec.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}.spec @ONLY)
62   MESSAGE(STATUS "I hate you rpm-lint...!!!")
63   IF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake)
64     CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}-rpmlintrc @ONLY)
65   ENDIF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake)
66 ENDMACRO(SPECFILE)
67
68 MACRO(PKGCONFGFILE)
69   MESSAGE(STATUS "Writing pkg-config file...")
70   CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp.pc.cmake ${CMAKE_BINARY_DIR}/libzypp.pc @ONLY)
71   INSTALL( FILES ${CMAKE_BINARY_DIR}/libzypp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
72 ENDMACRO(PKGCONFGFILE)
73
74 ####################################################################
75 # INSTALL                                                          #
76 ####################################################################
77
78 MACRO(GENERATE_PACKAGING PACKAGE VERSION)
79
80   # The following components are regex's to match anywhere (unless anchored)
81   # in absolute path + filename to find files or directories to be excluded
82   # from source tarball.
83   SET (CPACK_SOURCE_IGNORE_FILES
84   #svn files
85   "\\\\.svn/"
86   "\\\\.cvsignore$"
87   # temporary files
88   "\\\\.swp$"
89   # backup files
90   "~$"
91   # eclipse files
92   "\\\\.cdtproject$"
93   "\\\\.cproject$"
94   "\\\\.project$"
95   "\\\\.settings/"
96   # others
97   "\\\\.#"
98   "/#"
99   "/build/"
100   "/_build/"
101   "/\\\\.git/"
102   # used before
103   "/CVS/"
104   "/\\\\.libs/"
105   "/\\\\.deps/"
106   "\\\\.o$"
107   "\\\\.lo$"
108   "\\\\.la$"
109   "Makefile\\\\.in$"
110   )
111
112   #SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Novell's package management core engine.")
113   SET(CPACK_PACKAGE_VENDOR "Novell Inc.")
114   #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
115   #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
116   #SET(CPACK_PACKAGE_VERSION_MAJOR ${version_major})
117   #SET(CPACK_PACKAGE_VERSION_MINOR ${version_minor})
118   #SET(CPACK_PACKAGE_VERSION_PATCH ${version_patch})
119   SET( CPACK_GENERATOR "TBZ2")
120   SET( CPACK_SOURCE_GENERATOR "TBZ2")
121   SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" )
122   INCLUDE(CPack)
123   
124   SPECFILE()
125   
126   ADD_CUSTOM_TARGET( svncheck
127     COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
128   )
129
130   SET( AUTOBUILD_COMMAND
131     COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
132     COMMAND ${CMAKE_MAKE_PROGRAM} package_source
133     COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
134     COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
135     COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
136   )
137   
138   ADD_CUSTOM_TARGET( srcpackage_local
139     ${AUTOBUILD_COMMAND}
140   )
141   
142   ADD_CUSTOM_TARGET( srcpackage
143     COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
144     ${AUTOBUILD_COMMAND}
145   )
146 ENDMACRO(GENERATE_PACKAGING)