652ee1ca568dd4e90ac1e6ca7c37b73815696612
[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 # The following components are regex's to match anywhere (unless anchored)
42 # in absolute path + filename to find files or directories to be excluded
43 # from source tarball.
44 SET (CPACK_SOURCE_IGNORE_FILES
45 #svn files
46 "\\\\.svn/"
47 "\\\\.cvsignore$"
48 # temporary files
49 "\\\\.swp$"
50 # backup files
51 "~$"
52 # eclipse files
53 "\\\\.cdtproject$"
54 "\\\\.cproject$"
55 "\\\\.project$"
56 "\\\\.settings/"
57 # others
58 "\\\\.#"
59 "/#"
60 "/build/"
61 "/_build/"
62 "/\\\\.git/"
63 # used before
64 "/CVS/"
65 "/\\\\.libs/"
66 "/\\\\.deps/"
67 "\\\\.o$"
68 "\\\\.lo$"
69 "\\\\.la$"
70 "Makefile\\\\.in$"
71 )
72
73 SET( DOC_INSTALL_DIR
74    "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}"
75    CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})"
76    FORCE
77 )
78
79 ####################################################################
80 # INCLUDES                                                         #
81 ####################################################################
82
83 #SET (CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
84 INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} SYSTEM )
85
86
87 ####################################################################
88 # RPM SPEC                                                         #
89 ####################################################################
90
91 MACRO(SPECFILE)
92   MESSAGE(STATUS "Writing spec file...")
93   CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PACKAGE}.spec.cmake ${CMAKE_BINARY_DIR}/package/libzypp.spec @ONLY)
94   MESSAGE(STATUS "I hate you rpm-lint...!!!")
95   IF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake)
96     CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake ${CMAKE_BINARY_DIR}/package/${PACKAGE}-rpmlintrc @ONLY)
97   ENDIF (EXISTS ${CMAKE_SOURCE_DIR}/package/${PACKAGE}-rpmlint.cmake)
98 ENDMACRO(SPECFILE)
99
100 MACRO(PKGCONFGFILE)
101   MESSAGE(STATUS "Writing pkg-config file...")
102   CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp.pc.cmake ${CMAKE_BINARY_DIR}/libzypp.pc @ONLY)
103   INSTALL( FILES ${CMAKE_BINARY_DIR}/libzypp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
104 ENDMACRO(PKGCONFGFILE)
105
106 ####################################################################
107 # INSTALL                                                          #
108 ####################################################################
109
110 ADD_CUSTOM_TARGET( svncheck
111   COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
112 )
113
114 SET( AUTOBUILD_COMMAND
115   COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
116   COMMAND ${CMAKE_MAKE_PROGRAM} package_source
117   COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
118   COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
119   COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
120 )
121
122 ADD_CUSTOM_TARGET( srcpackage_local
123   ${AUTOBUILD_COMMAND}
124 )
125
126 ADD_CUSTOM_TARGET( srcpackage
127   COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
128   ${AUTOBUILD_COMMAND}
129 )