|
|
@@ -25,6 +25,11 @@ IF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*")
|
|
|
MESSAGE(FATAL_ERROR "${RPMBUILD_EXECUTABLE} can't handle paths with spaces, use a build directory without spaces for building RPMs.")
|
|
|
ENDIF(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*")
|
|
|
|
|
|
+IF(NOT CPACK_SET_DESTDIR)
|
|
|
+ MESSAGE("CPackRPM:Warning: You did not set CPACK_SET_DESTDIR to ON")
|
|
|
+ MESSAGE("CPackRPM:Warning: this will make CPackRPM fail if you have installed files with absolute path")
|
|
|
+ENDIF(NOT CPACK_SET_DESTDIR)
|
|
|
+
|
|
|
# If rpmbuild is found
|
|
|
# we try to discover alien since we may be on non RPM distro like Debian.
|
|
|
# In this case we may try to to use more advanced features
|
|
|
@@ -68,11 +73,14 @@ IF(NOT CPACK_RPM_PACKAGE_VERSION)
|
|
|
ENDIF(NOT CPACK_RPM_PACKAGE_VERSION)
|
|
|
|
|
|
# CPACK_RPM_PACKAGE_ARCHITECTURE (optional)
|
|
|
-IF(NOT CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
|
- # FIXME This should be obtained through 'arch' command
|
|
|
- # but is it --really necessary-- ?
|
|
|
- SET(CPACK_RPM_PACKAGE_ARCHITECTURE i386)
|
|
|
-ENDIF(NOT CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
|
+IF(CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
|
+ SET(TMP_RPM_BUILDARCH "Buildarch: ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
|
|
|
+ IF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
+ MESSAGE("CPackRPM:Debug: using user-specified build arch = ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
|
|
|
+ ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
+ELSE(CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
|
+ SET(TMP_RPM_BUILDARCH "")
|
|
|
+ENDIF(CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
|
|
|
|
# CPACK_RPM_PACKAGE_RELEASE
|
|
|
# The RPM release is the numbering of the RPM package ITSELF
|
|
|
@@ -106,8 +114,7 @@ IF(NOT CPACK_RPM_PACKAGE_VENDOR)
|
|
|
ENDIF(NOT CPACK_RPM_PACKAGE_VENDOR)
|
|
|
|
|
|
# CPACK_RPM_PACKAGE_SOURCE
|
|
|
-# The name of the source tarball in case we generate
|
|
|
-# a source RPM
|
|
|
+# The name of the source tarball in case we generate a source RPM
|
|
|
|
|
|
# CPACK_RPM_PACKAGE_DESCRIPTION
|
|
|
# The variable content may be either
|
|
|
@@ -124,13 +131,29 @@ IF (NOT CPACK_RPM_PACKAGE_DESCRIPTION)
|
|
|
ENDIF (CPACK_PACKAGE_DESCRIPTION_FILE)
|
|
|
ENDIF (NOT CPACK_RPM_PACKAGE_DESCRIPTION)
|
|
|
|
|
|
+# CPACK_RPM_SPEC_INSTALL_POST
|
|
|
+# May be used to define a RPM post intallation script
|
|
|
+# for example setting it to "/bin/true" may prevent
|
|
|
+# rpmbuild from stripping binaries.
|
|
|
+IF(CPACK_RPM_SPEC_INSTALL_POST)
|
|
|
+ SET(TMP_RPM_SPEC_INSTALL_POST "%define __spec_install_post ${CPACK_RPM_SPEC_INSTALL_POST}")
|
|
|
+ENDIF(CPACK_RPM_SPEC_INSTALL_POST)
|
|
|
+
|
|
|
+# CPACK_RPM_SPEC_MORE_DEFINE
|
|
|
+# This is a generated spec rpm file spaceholder
|
|
|
+IF(CPACK_RPM_SPEC_MORE_DEFINE)
|
|
|
+ IF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
+ MESSAGE("CPackRPM:Debug: User defined more define spec line specified:\n ${CPACK_RPM_SPEC_MORE_DEFINE}")
|
|
|
+ ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
+ENDIF(CPACK_RPM_SPEC_MORE_DEFINE)
|
|
|
+
|
|
|
# CPACK_RPM_USER_BINARY_SPECFILE
|
|
|
# FIXME when this is set then CPack should us the
|
|
|
# user provided file.
|
|
|
|
|
|
# Now we may create the RPM build tree structure
|
|
|
SET(CPACK_RPM_ROOTDIR "${CPACK_TOPLEVEL_DIRECTORY}")
|
|
|
-MESSAGE(STATUS "CPackRPM:: Using CPACK_RPM_ROOTDIR=${CPACK_RPM_ROOTDIR}")
|
|
|
+MESSAGE(STATUS "CPackRPM:Debug: Using CPACK_RPM_ROOTDIR=${CPACK_RPM_ROOTDIR}")
|
|
|
# Prepare RPM build tree
|
|
|
FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR})
|
|
|
FILE(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/tmp)
|
|
|
@@ -157,15 +180,16 @@ IF(CPACK_RPM_USER_BINARY_SPECFILE)
|
|
|
ELSE(CPACK_RPM_USER_BINARY_SPECFILE)
|
|
|
# No User specified spec file generate a valid one using var values
|
|
|
IF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
- MESSAGE("CPackRPM:: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_TEMPORARY_DIRECTORY= ${PACK_TEMPORARY_DIRECTORY}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_RPM_BINARY_SPECFILE = ${CPACK_RPM_BINARY_SPECFILE}")
|
|
|
- MESSAGE("CPackRPM:: CPACK_PACKAGE_INSTALL_DIRECTORY = ${PACK_PACKAGE_INSTALL_DIRECTORY}")
|
|
|
- MESSAGE("CPackRPM ::CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_DIRECTORY = ${PACK_TEMPORARY_DIRECTORY}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_RPM_BINARY_SPECFILE = ${CPACK_RPM_BINARY_SPECFILE}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${PACK_PACKAGE_INSTALL_DIRECTORY}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
|
|
|
+ MESSAGE("CPackRPM:Debug: CPACK_RPM_SPEC_INSTALL_POST = ${CPACK_RPM_SPEC_INSTALL_POST}")
|
|
|
ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
FILE(WRITE ${CPACK_RPM_BINARY_SPECFILE}
|
|
|
"# -*- rpm-spec -*-
|
|
|
@@ -177,12 +201,15 @@ Release: ${CPACK_RPM_PACKAGE_RELEASE}
|
|
|
License: ${CPACK_RPM_PACKAGE_LICENSE}
|
|
|
Group: ${CPACK_RPM_PACKAGE_GROUP}
|
|
|
Vendor: ${CPACK_RPM_PACKAGE_VENDOR}
|
|
|
+${TMP_RPM_BUILDARCH}
|
|
|
|
|
|
#%define prefix ${CMAKE_INSTALL_PREFIX}
|
|
|
%define _rpmdir ${CPACK_RPM_DIRECTORY}
|
|
|
%define _rpmfilename ${CPACK_RPM_FILE_NAME}
|
|
|
%define _unpackaged_files_terminate_build 0
|
|
|
%define _topdir ${CPACK_RPM_DIRECTORY}
|
|
|
+${TMP_RPM_SPEC_INSTALL_POST}
|
|
|
+${CPACK_RPM_SPEC_MORE_DEFINE}
|
|
|
|
|
|
%description
|
|
|
${CPACK_RPM_PACKAGE_DESCRIPTION}
|
|
|
@@ -206,10 +233,11 @@ ${CPACK_RPM_PACKAGE_DESCRIPTION}
|
|
|
/*
|
|
|
|
|
|
%changelog
|
|
|
+* Mon Aug 25 2008 Erk <[email protected]>
|
|
|
+ Update generator to handle optional post-install
|
|
|
* Tue Aug 16 2007 Erk <[email protected]>
|
|
|
Generated by CPack RPM Generator and associated macros
|
|
|
")
|
|
|
-
|
|
|
ENDIF(CPACK_RPM_USER_BINARY_SPECFILE)
|
|
|
|
|
|
|
|
|
@@ -220,6 +248,11 @@ IF(RPMBUILD_EXECUTABLE)
|
|
|
WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
|
|
|
ERROR_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err"
|
|
|
OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out")
|
|
|
+ IF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
+ MESSAGE("CPackRPM:Debug: You may consult rpmbuild logs in: ")
|
|
|
+ MESSAGE("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.err")
|
|
|
+ MESSAGE("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild.out")
|
|
|
+ ENDIF(CPACK_RPM_PACKAGE_DEBUG)
|
|
|
ELSE(RPMBUILD_EXECUTABLE)
|
|
|
IF(ALIEN_EXECUTABLE)
|
|
|
MESSAGE(FATAL_ERROR "RPM packaging through alien not done (yet)")
|