build system cleanup to share stuff with zypper
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Tue, 5 Feb 2008 15:15:12 +0000 (15:15 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Tue, 5 Feb 2008 15:15:12 +0000 (15:15 +0000)
CMakeLists.txt
cmake/modules/ZyppCommon.cmake

index 7234d59..5006431 100644 (file)
@@ -21,16 +21,7 @@ ADD_DEFINITIONS( -DVERSION=\\\"${VERSION}\\\" )
 SET( LIBZYPP_VERSION_INFO "${LIBZYPP_SO_FIRST}.${LIBZYPP_AGE}.${LIBZYPP_PATCH}" )
 SET( LIBZYPP_SOVERSION_INFO "${LIBZYPP_SO_FIRST}" )
 
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Novell's package management core engine.")
-SET(CPACK_PACKAGE_VENDOR "Novell Inc.")
-#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
-#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
-SET(CPACK_PACKAGE_VERSION_MAJOR ${LIBZYPP_MAJOR})
-SET(CPACK_PACKAGE_VERSION_MINOR ${LIBZYPP_MINOR})
-SET(CPACK_PACKAGE_VERSION_PATCH ${LIBZYPP_PATCH})
-SET( CPACK_GENERATOR "TBZ2")
-SET( CPACK_SOURCE_GENERATOR "TBZ2")
-SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" )
+GENERATE_PACKAGING(${PACKAGE} ${VERSION})
 
 INCLUDE(CPack)
 
@@ -124,20 +115,6 @@ ENDIF ( NOT DOXYGEN )
 MESSAGE(STATUS "soname: ${LIBZYPP_VERSION_INFO}")
 MESSAGE(STATUS "version: ${VERSION}")
 
-####################################################################
-# RPM SPEC                                                         #
-####################################################################
-
-MACRO(SPECFILE)
-  MESSAGE(STATUS "Writing spec file...")
-  CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libzypp.spec.cmake ${CMAKE_BINARY_DIR}/package/libzypp.spec @ONLY)
-  MESSAGE(STATUS "I hate you rpm-lint...!!!")
-  CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/package/libzypp-rpmlint.cmake ${CMAKE_BINARY_DIR}/package/libzypp-rpmlintrc @ONLY)
-ENDMACRO(SPECFILE)
-
-SPECFILE()
-
-#PKGCONFIGFILE()
 
 MESSAGE(STATUS "FindZypp.cmake will be installed in ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules")
 INSTALL( FILES ${CMAKE_SOURCE_DIR}/cmake/modules/FindZypp.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
index 652ee1c..0ee7752 100644 (file)
@@ -38,38 +38,6 @@ MESSAGE( "** Manual files will be installed in ${MANDIR}" )
 # CONFIGURATION                                                    #
 ####################################################################
 
-# The following components are regex's to match anywhere (unless anchored)
-# in absolute path + filename to find files or directories to be excluded
-# from source tarball.
-SET (CPACK_SOURCE_IGNORE_FILES
-#svn files
-"\\\\.svn/"
-"\\\\.cvsignore$"
-# temporary files
-"\\\\.swp$"
-# backup files
-"~$"
-# eclipse files
-"\\\\.cdtproject$"
-"\\\\.cproject$"
-"\\\\.project$"
-"\\\\.settings/"
-# others
-"\\\\.#"
-"/#"
-"/build/"
-"/_build/"
-"/\\\\.git/"
-# used before
-"/CVS/"
-"/\\\\.libs/"
-"/\\\\.deps/"
-"\\\\.o$"
-"\\\\.lo$"
-"\\\\.la$"
-"Makefile\\\\.in$"
-)
-
 SET( DOC_INSTALL_DIR
    "${CMAKE_INSTALL_PREFIX}/share/doc/packages/${PACKAGE}"
    CACHE PATH "The install dir for documentation (default prefix/share/doc/packages/${PACKAGE})"
@@ -107,23 +75,72 @@ ENDMACRO(PKGCONFGFILE)
 # INSTALL                                                          #
 ####################################################################
 
-ADD_CUSTOM_TARGET( svncheck
-  COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
-)
-
-SET( AUTOBUILD_COMMAND
-  COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
-  COMMAND ${CMAKE_MAKE_PROGRAM} package_source
-  COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
-  COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
-  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
-)
-
-ADD_CUSTOM_TARGET( srcpackage_local
-  ${AUTOBUILD_COMMAND}
-)
-
-ADD_CUSTOM_TARGET( srcpackage
-  COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
-  ${AUTOBUILD_COMMAND}
-)
+MACRO(GENERATE_PACKAGING PACKAGE VERSION)
+
+  # The following components are regex's to match anywhere (unless anchored)
+  # in absolute path + filename to find files or directories to be excluded
+  # from source tarball.
+  SET (CPACK_SOURCE_IGNORE_FILES
+  #svn files
+  "\\\\.svn/"
+  "\\\\.cvsignore$"
+  # temporary files
+  "\\\\.swp$"
+  # backup files
+  "~$"
+  # eclipse files
+  "\\\\.cdtproject$"
+  "\\\\.cproject$"
+  "\\\\.project$"
+  "\\\\.settings/"
+  # others
+  "\\\\.#"
+  "/#"
+  "/build/"
+  "/_build/"
+  "/\\\\.git/"
+  # used before
+  "/CVS/"
+  "/\\\\.libs/"
+  "/\\\\.deps/"
+  "\\\\.o$"
+  "\\\\.lo$"
+  "\\\\.la$"
+  "Makefile\\\\.in$"
+  )
+
+  #SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Novell's package management core engine.")
+  SET(CPACK_PACKAGE_VENDOR "Novell Inc.")
+  #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
+  #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
+  #SET(CPACK_PACKAGE_VERSION_MAJOR ${version_major})
+  #SET(CPACK_PACKAGE_VERSION_MINOR ${version_minor})
+  #SET(CPACK_PACKAGE_VERSION_PATCH ${version_patch})
+  SET( CPACK_GENERATOR "TBZ2")
+  SET( CPACK_SOURCE_GENERATOR "TBZ2")
+  SET( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE}-${VERSION}" )
+  INCLUDE(CPack)
+  
+  SPECFILE()
+  
+  ADD_CUSTOM_TARGET( svncheck
+    COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
+  )
+
+  SET( AUTOBUILD_COMMAND
+    COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
+    COMMAND ${CMAKE_MAKE_PROGRAM} package_source
+    COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
+    COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
+    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/${PACKAGE}.changes" "${CMAKE_BINARY_DIR}/package/${PACKAGE}.changes"
+  )
+  
+  ADD_CUSTOM_TARGET( srcpackage_local
+    ${AUTOBUILD_COMMAND}
+  )
+  
+  ADD_CUSTOM_TARGET( srcpackage
+    COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
+    ${AUTOBUILD_COMMAND}
+  )
+ENDMACRO(GENERATE_PACKAGING)
\ No newline at end of file