File: rpm.cmake

package info (click to toggle)
tarantool 1.7.2.385.g952d79e-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 21,556 kB
  • ctags: 28,405
  • sloc: ansic: 180,313; cpp: 26,044; sh: 15,513; python: 4,893; makefile: 1,412
file content (96 lines) | stat: -rw-r--r-- 3,815 bytes parent folder | download | duplicates (5)
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()