1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # PkgCreate creates FreeBSD package for cmake
- # USAGE : ADD_FREEBSD_PACKAGE ( PKG_TARGET_NAME [DESCRIPTION] )
-
- FIND_PROGRAM(PKGCREATE
- NAMES pkg_create
- PATHS "/usr/sbin")
-
- IF ( PKGCREATE )
- GET_FILENAME_COMPONENT(PKGCREATE_PATH ${PKGCREATE} ABSOLUTE)
- MESSAGE(STATUS "Found pkg_create : ${PKGCREATE_PATH}")
- SET(PKGCREATE_FOUND "YES")
- ELSE ( PKGCREATE )
- MESSAGE(STATUS "pkg_create NOT found. package generation will not be available")
- SET(PKGCREATE_FOUND "NO")
- ENDIF ( PKGCREATE )
-
- MACRO(ADD_FREEBSD_PACKAGE PKGNAME PLIST_FILE)
- # let's create a directory to call 'make install DESTDIR=...' into:
- SET ( FREEBSD_DIR ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}_${PACKAGE_VERSION}-${PACKAGE_RELEASE} )
- FILE ( REMOVE ${FREEBSD_DIR} )
- FILE ( MAKE_DIRECTORY ${FREEBSD_DIR} )
- FILE ( MAKE_DIRECTORY ${FREEBSD_DIR}/pkg )
- # Calling "make install DESTDIR=${FREEBSD_DIR}"
- ADD_CUSTOM_TARGET(pkg_destdir_install
- COMMAND ${CMAKE_MAKE_PROGRAM} install CMAKE_INSTALL_PREFIX=/ DESTDIR=${FREEBSD_DIR}
- DEPENDS ${CMAKE_BINARY_DIR}/cmake_install.cmake
- COMMENT "Installing with DESTDIR = ${FREEBSD_DIR}"
- )
- ADD_DEPENDENCIES(pkg_destdir_install pkg_destdir_preinstall)
- ADD_CUSTOM_TARGET(pkg_destdir_preinstall
- COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=/ -DDESTDIR=${FREEBSD_DIR} .
- DEPENDS ${CMAKE_BINARY_DIR}/cmake_install.cmake
- COMMENT "Configuring with DESTDIR = ${FREEBSD_DIR}"
- )
- ADD_DEPENDENCIES(pkg_destdir_preinstall all preinstall)
-
-
- ADD_CUSTOM_COMMAND(
- OUTPUT ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}_${PACKAGE_VERSION}-${PACKAGE_RELEASE}.tbz
- COMMAND ${PKGCREATE_PATH} -c -"${PACKAGE_DESCRIPTION_SUMMARY}"
- -d -"${PACKAGE_DESCRIPTION}"
- -f ${PLIST_FILE}
- -p ${FREEBSD_DIR}
- ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}_${PACKAGE_VERSION}-${PACKAGE_RELEASE}.tbz
- # removing control, so its (re)generated each time we need to build the package
- DEPENDS ${PLIST_FILE}
- COMMENT "Generating freebsd package"
- )
-
- # the final target:
- ADD_CUSTOM_TARGET(${PKGNAME}_pkg
- DEPENDS ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}_${PACKAGE_VERSION}-${PACKAGE_RELEASE}.tbz
- )
-
- ADD_DEPENDENCIES(${PKGNAME}_pkg pkg_destdir_install)
- ENDMACRO(ADD_FREEBSD_PACKAGE PKGNAME)
|