[Cmake-commits] [cmake-commits] eric.noulard committed CPackRPM.cmake 1.15 1.16
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Nov 9 16:17:24 EST 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv5996/Modules
Modified Files:
CPackRPM.cmake
Log Message:
CPackRPM:: Support USER supplied spec files (bug 9679)
Eric
Index: CPackRPM.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CPackRPM.cmake,v
retrieving revision 1.15
retrieving revision 1.16
diff -C 2 -d -r1.15 -r1.16
*** CPackRPM.cmake 9 Nov 2009 19:06:36 -0000 1.15
--- CPackRPM.cmake 9 Nov 2009 21:17:22 -0000 1.16
***************
*** 70,73 ****
--- 70,87 ----
# during CPack RPM run. For example you may launch CPack like this
# cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
+ # CPACK_RPM_USER_BINARY_SPECFILE
+ # Mandatory : NO
+ # Default : -
+ # May be set by the user in order to specify a USER binary spec file
+ # to be used by CPackRPM instead of generating the file.
+ # The specified file will be processed by CONFIGURE_FILE( @ONLY).
+ # CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
+ # Mandatory : NO
+ # Default : -
+ # If set CPack will generate a template for USER specified binary
+ # spec file and stop with an error. For example launch CPack like this
+ # cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
+ # The user may then use this file in order to hand-craft is own
+ # binary spec file which may be used with CPACK_RPM_USER_BINARY_SPECFILE.
#=============================================================================
***************
*** 256,263 ****
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}")
--- 270,273 ----
***************
*** 284,330 ****
WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
OUTPUT_VARIABLE CPACK_RPM_INSTALL_FILES)
!
SET(CPACK_RPM_BINARY_SPECFILE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_NAME}.spec")
! IF(CPACK_RPM_USER_BINARY_SPECFILE)
! # User may have specified SPECFILE just use it
! MESSAGE("CPackRPM: Will use user specified spec file: ${CPACK_RPM_USER_BINARY_SPECFILE}")
! # Note that user provided file is processed for @var replacement
! CONFIGURE_FILE(${CPACK_RPM_USER_BINARY_SPECFILE} ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
! 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:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
! MESSAGE("CPackRPM:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}")
! MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_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 = ${CPACK_PACKAGE_INSTALL_DIRECTORY}")
! MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
! ENDIF(CPACK_RPM_PACKAGE_DEBUG)
! FILE(WRITE ${CPACK_RPM_BINARY_SPECFILE}
! "# -*- rpm-spec -*-
! Buildroot: ${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}
! Summary: ${CPACK_RPM_PACKAGE_SUMMARY}
! Name: ${CPACK_RPM_PACKAGE_NAME}
! Version: ${CPACK_RPM_PACKAGE_VERSION}
! Release: ${CPACK_RPM_PACKAGE_RELEASE}
! License: ${CPACK_RPM_PACKAGE_LICENSE}
! Group: ${CPACK_RPM_PACKAGE_GROUP}
! Vendor: ${CPACK_RPM_PACKAGE_VENDOR}
! ${TMP_RPM_REQUIRES}
! ${TMP_RPM_BUILDARCH}
!
! #p 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}
# This is a shortcutted spec file
--- 294,343 ----
WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
OUTPUT_VARIABLE CPACK_RPM_INSTALL_FILES)
!
! # The name of the final spec file to be used by rpmbuild
SET(CPACK_RPM_BINARY_SPECFILE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_NAME}.spec")
!
! # Print out some debug information if we were asked for that
! IF(CPACK_RPM_PACKAGE_DEBUG)
! MESSAGE("CPackRPM:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
! MESSAGE("CPackRPM:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}")
! MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_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 = ${CPACK_PACKAGE_INSTALL_DIRECTORY}")
! MESSAGE("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
! ENDIF(CPACK_RPM_PACKAGE_DEBUG)
!
! # USER generated spec file handling.
! # We should generate a spec file template:
! # - either because the user asked for it : CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
! # - or the user did not provide one : NOT CPACK_RPM_USER_BINARY_SPECFILE
! #
! IF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
! FILE(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
! "# -*- rpm-spec -*-
! Buildroot: \@CPACK_RPM_DIRECTORY\@/\@CPACK_PACKAGE_FILE_NAME\@
! Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
! Name: \@CPACK_RPM_PACKAGE_NAME\@
! Version: \@CPACK_RPM_PACKAGE_VERSION\@
! Release: \@CPACK_RPM_PACKAGE_RELEASE\@
! License: \@CPACK_RPM_PACKAGE_LICENSE\@
! Group: \@CPACK_RPM_PACKAGE_GROUP\@
! Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
! \@TMP_RPM_REQUIRES\@
! \@TMP_RPM_BUILDARCH\@
!
! #p 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\@
# This is a shortcutted spec file
***************
*** 349,352 ****
--- 362,367 ----
%changelog
+ * Wed Oct 07 2009 Erk <eric.noulard at gmail.com>
+ Add user custom spec file support
* Sat Oct 03 2009 Kami <cmoidavid at gmail.com>
Update to handle more precisely the files section
***************
*** 359,364 ****
Generated by CPack RPM Generator and associated macros
")
! ENDIF(CPACK_RPM_USER_BINARY_SPECFILE)
IF(RPMBUILD_EXECUTABLE)
--- 374,398 ----
Generated by CPack RPM Generator and associated macros
")
! # Stop here if we were asked to only generate a template USER spec file
! # The generated file may then be used as a template by user who wants
! # to customize their own spec file.
! IF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
! MESSAGE(FATAL_ERROR "CPackRPM: STOP here Generated USER binary spec file templare is: ${CPACK_RPM_BINARY_SPECFILE}.in")
! ENDIF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
! ENDIF(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
+ # After that we may either use a user provided spec file
+ # or generate one using appropriate variables value.
+ IF(CPACK_RPM_USER_BINARY_SPECFILE)
+ # User may have specified SPECFILE just use it
+ MESSAGE("CPackRPM: Will use USER specified spec file: ${CPACK_RPM_USER_BINARY_SPECFILE}")
+ # The user provided file is processed for @var replacement
+ CONFIGURE_FILE(${CPACK_RPM_USER_BINARY_SPECFILE} ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
+ ELSE(CPACK_RPM_USER_BINARY_SPECFILE)
+ # No User specified spec file, will use the generated spec file
+ MESSAGE("CPackRPM: Will use GENERATED spec file: ${CPACK_RPM_BINARY_SPECFILE}")
+ # Note the just created file is processed for @var replacement
+ CONFIGURE_FILE(${CPACK_RPM_BINARY_SPECFILE}.in ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
+ ENDIF(CPACK_RPM_USER_BINARY_SPECFILE)
IF(RPMBUILD_EXECUTABLE)
More information about the Cmake-commits
mailing list