1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
find_program(RPMBUILD rpmbuild)
if(NOT IS_DIRECTORY ${PROJECT_SOURCE_DIR}/rpm)
return()
endif()
if (RPMBUILD)
find_program(MKDIR mkdir)
find_program(CP cp)
find_program(WC wc)
set (SCL_VERSION "1.0" CACHE STRING "" FORCE)
set (SCL_RELEASE "1" CACHE STRING "" FORCE)
set (SCL_TARANTOOL "mailru-16" CACHE STRING "" FORCE)
set (RPM_SOURCE_DIRECTORY_NAME ${CPACK_SOURCE_PACKAGE_FILE_NAME}
CACHE STRING "" FORCE)
set (RPM_PACKAGE_SOURCE_FILE_NAME ${PACKAGE_VERSION}.tar.gz
CACHE STRING "" FORCE)
set (RPM_BUILDROOT "${PROJECT_BINARY_DIR}/RPM/BUILDROOT" CACHE STRING "" FORCE)
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/tarantool-${PACKAGE_VERSION}.tar.gz
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMAND $(MAKE) package_source)
add_custom_command(OUTPUT ${RPM_BUILDROOT}
COMMAND ${MKDIR} -p ${RPM_BUILDROOT})
set(RPM_SPEC "${PROJECT_BINARY_DIR}/rpm/tarantool-${PACKAGE_VERSION}.spec")
add_custom_target(rpm_spec
DEPENDS ${PROJECT_BINARY_DIR}/tarantool-${PACKAGE_VERSION}.tar.gz
COMMAND ${CMAKE_COMMAND} -E copy rpm/tarantool.spec ${RPM_SPEC}.tmp
COMMAND sed -i -e "'s/Version:\\([ ]*\\).*/Version: ${PACKAGE_VERSION}/g'" ${RPM_SPEC}.tmp
COMMAND ${CMAKE_COMMAND} -E rename ${RPM_SPEC}.tmp ${RPM_SPEC}
WORKING_DIRECTORY ${SOURCE_BINARY_DIR}
)
add_custom_target(rpm_src
DEPENDS rpm_spec
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --define '_sourcedir ./' --define '_srcrpmdir ./' -bs ${RPM_SPEC}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
# TODO: Targets below are temporary broken
return()
add_custom_target(rpm
DEPENDS rpm_src
DEPENDS ${RPM_BUILDROOT}
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --rebuild ${PROJECT_BINARY_DIR}/tarantool-${PACKAGE_VERSION}.src.rpm
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
add_custom_target(rpm_systemd
DEPENDS rpm_src
DEPENDS ${RPM_BUILDROOT}
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --with systemd --rebuild ${PROJECT_BINARY_DIR}/tarantool-${PACKAGE_VERSION}.src.rpm
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
add_custom_target(rpm_scl_full_old
DEPENDS ${RPM_BUILDROOT}
DEPENDS ${PROJECT_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} -bb ${PROJECT_SOURCE_DIR}/extra/rpm/tarantool-scl.rpm.spec
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --define '_sourcedir ./' -bb ${PROJECT_SOURCE_DIR}/extra/rpm/tarantool.rpm.spec --define 'scl ${SCL_TARANTOOL}'
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
add_custom_target(rpm_scl_src
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --define '_srcrpmdir ./' -bs ${PROJECT_SOURCE_DIR}/extra/rpm/tarantool-scl.rpm.spec
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
add_custom_target(rpm_scl_noarch
DEPENDS rpm_scl_src
DEPENDS ${RPM_BUILDROOT}
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --rebuild ${PROJECT_BINARY_DIR}/tarantool-${SCL_TARANTOOL}-${SCL_VERSION}-${SCL_RELEASE}.src.rpm
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
add_custom_target(rpm_scl_arch
DEPENDS rpm_src
DEPENDS ${RPM_BUILDROOT}
COMMAND ${RPMBUILD} --buildroot ${RPM_BUILDROOT} --rebuild ${PROJECT_BINARY_DIR}/tarantool-${VERSION}-${RELEASE}.src.rpm --define 'scl ${SCL_TARANTOOL}'
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
add_custom_target(rpm_scl
DEPENDS rpm_scl_noarch
DEPENDS rpm_scl_arch
)
# TODO: Add MOCK builds
# : -DMOCK_TARGET
# : -DMOCK_OS: EPEL / FEDORA
endif()
|