镜像来自
https://github.com/rspamd/rspamd.git
synced 2024-08-28 05:54:33 +02:00
56 line
2.2 KiB
CMake
56 line
2.2 KiB
CMake
# 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) |