summaryrefslogtreecommitdiff
path: root/cmake/modules/TelepathyDist.cmake
blob: d2cd475b1e9aeadb2a7695fc20d7fda91cf99293 (plain)
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
# setup make dist
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}.tar.gz
                   COMMAND git archive --format=tar --prefix=${PACKAGE_NAME}-${PACKAGE_VERSION}/ HEAD |
                           gzip > ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}.tar.gz
                   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

add_custom_target(create-source-working-dir
                  rm -rf ${PACKAGE_NAME}-${PACKAGE_VERSION} &&
                  gzip -df ${PACKAGE_NAME}-${PACKAGE_VERSION}.tar.gz &&
                  tar -xf ${PACKAGE_NAME}-${PACKAGE_VERSION}.tar &&
                  rm ${PACKAGE_NAME}-${PACKAGE_VERSION}.tar* &&
                  cd ${PACKAGE_NAME}-${PACKAGE_VERSION}/ &&
                  rm -rf doc && mkdir doc && cp -R ${CMAKE_BINARY_DIR}/doc/html doc/

                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
                  DEPENDS ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}.tar.gz
                  COMMENT "Generating working source dir for the dist tarball")
add_dependencies(create-source-working-dir doxygen-doc)

add_custom_target(dist-hook
                  chmod u+w ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}/ChangeLog &&
                  git log --stat > ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}/ChangeLog ||
                  git log > ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}/ChangeLog

                  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
                  COMMENT "Updating Changelog")
add_dependencies(dist-hook create-source-working-dir)

add_custom_target(dist tar --format=ustar -chf - ${PACKAGE_NAME}-${PACKAGE_VERSION} |
                       GZIP=--best gzip -c > ${PACKAGE_NAME}-${PACKAGE_VERSION}.tar.gz
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
                  COMMENT "Generating dist tarball")
add_dependencies(dist dist-hook)

# setup make distcheck
add_custom_target(distcheck rm -rf build && mkdir build && cd build && cmake .. && make && make check
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}/
                  COMMENT "Testing successful tarball build")
add_dependencies(distcheck dist)