mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 10:32:48 +02:00
CMake: Add a build target for generating a source RPM
Summary: 'make srpm' or 'ninja srpm' will tar up the current source code and then build a source RPM package. By default it will use the llvm.spec file to generate the source RPM, but you can specify your own custom spec file with the LLVM_SRPM_USER_BINARY_SPECFILE option. CMake will perform variable substitution on your custom specfile, so you can reference CMake variables in it. For example: Version: @LLVM_RPM_SPEC_VERSION@ Note that everything in the source directory will be included in the tarball so if you have a clang check out in tools/clang, then all the clang source will end up in the tarball to. It is recommended to only use this build target with a clean source tree. Reviewers: beanz Reviewed By: beanz Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D30093 llvm-svn: 297007
This commit is contained in:
parent
1a27ab2702
commit
ec0b8c6945
@ -719,6 +719,30 @@ configure_file(
|
||||
${LLVM_MAIN_INCLUDE_DIR}/llvm/Support/DataTypes.h.cmake
|
||||
${LLVM_INCLUDE_DIR}/llvm/Support/DataTypes.h)
|
||||
|
||||
# Add target for generating source rpm package.
|
||||
set(LLVM_SRPM_USER_BINARY_SPECFILE ${CMAKE_CURRENT_SOURCE_DIR}/llvm.spec.in
|
||||
CACHE FILEPATH ".spec file to use for srpm generation")
|
||||
set(LLVM_SRPM_BINARY_SPECFILE ${CMAKE_CURRENT_BINARY_DIR}/llvm.spec)
|
||||
set(LLVM_SRPM_DIR "${CMAKE_CURRENT_BINARY_DIR}/srpm")
|
||||
|
||||
# SVN_REVISION and GIT_COMMIT get set by the call to add_version_info_from_vcs.
|
||||
# DUMMY_VAR contains a version string which we don't care about.
|
||||
add_version_info_from_vcs(DUMMY_VAR)
|
||||
if ( SVN_REVISION )
|
||||
set(LLVM_RPM_SPEC_REVISION "r${SVN_REVISION}")
|
||||
elseif ( GIT_COMMIT )
|
||||
set (LLVM_RPM_SPEC_REVISION "g${GIT_COMMIT}")
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
${LLVM_SRPM_USER_BINARY_SPECFILE}
|
||||
${LLVM_SRPM_BINARY_SPECFILE} @ONLY)
|
||||
|
||||
add_custom_target(srpm
|
||||
COMMAND cpack -G TGZ --config CPackSourceConfig.cmake -B ${LLVM_SRPM_DIR}/SOURCES
|
||||
COMMAND rpmbuild -bs --define '_topdir ${LLVM_SRPM_DIR}' ${LLVM_SRPM_BINARY_SPECFILE})
|
||||
|
||||
|
||||
# They are not referenced. See set_output_directory().
|
||||
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin )
|
||||
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
|
||||
|
Loading…
Reference in New Issue
Block a user