summaryrefslogtreecommitdiff
path: root/qt4/cmake/modules/TelepathyDist.cmake
blob: 37b7e69c741db5370cc0a264b1d5a3417e6ffe97 (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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# 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)

# CPack
set(ENABLE_CPACK OFF CACHE BOOL "Enables CPack targets generation")
if (ENABLE_CPACK)

    include(InstallRequiredSystemLibraries)

    SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A high-level binding for Telepathy in Qt4")
    SET(CPACK_PACKAGE_VENDOR "Collabora Ltd.")
    SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README")
    SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
    SET(CPACK_PACKAGE_VERSION_MAJOR ${TP_QT4_MAJOR_VERSION})
    SET(CPACK_PACKAGE_VERSION_MINOR ${TP_QT4_MINOR_VERSION})
    SET(CPACK_PACKAGE_VERSION_PATCH ${TP_QT4_MICRO_VERSION})
    SET(CPACK_PACKAGE_INSTALL_DIRECTORY "TelepathyQt4")
    SET(CPACK_PACKAGE_CONTACT "telepathy@lists.freedesktop.org")
    set(CPACK_SOURCE_IGNORE_FILES
    "/build/;/.bzr/;~$;/.git/;/.kdev4/;${CPACK_SOURCE_IGNORE_FILES}")
    IF(WIN32 AND NOT UNIX)
    # There is a bug in NSI that does not handle full unix paths properly. Make
    # sure there is at least one set of four (4) backlasshes.
    #SET(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp")
    #SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe")
    SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} TelepathyQt4")
    #SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.github.com")
    #SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.my-personal-home-page.com")
    #SET(CPACK_NSIS_CONTACT "me@my-personal-home-page.com")
    SET(CPACK_NSIS_MODIFY_PATH ON)
    ELSE(WIN32 AND NOT UNIX)
    #SET(CPACK_STRIP_FILES "bin/MyExecutable")
    SET(CPACK_SOURCE_STRIP_FILES "")
    ENDIF(WIN32 AND NOT UNIX)
    #SET(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable")

    if (APPLE)
        set(CPACK_SET_DESTDIR ON)
        set(CPACK_PACKAGE_RELOCATABLE OFF)
    endif (APPLE)

    #name components
    set(CPACK_COMPONENT_MAINLIBRARY_DISPLAY_NAME "TelepathyQt4 main components")
    set(CPACK_COMPONENT_FARSIGHT_DISPLAY_NAME "TelepathyQt4 Farsight support")
    set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "Development files for TelepathyQt4")
    set(CPACK_COMPONENT_FARSIGHT_HEADERS_DISPLAY_NAME "Development files for TelepathyQt4-Farsight")

    #components description
    set(CPACK_COMPONENT_MAINLIBRARY_DESCRIPTION
    "The main TelepathyQt4 library")
    set(CPACK_COMPONENT_FARSIGHT_DESCRIPTION
    "The TelepathyQt4-Farsight library")
    set(CPACK_COMPONENT_HEADERS_DESCRIPTION
    "Development files for TelepathyQt4")
    set(CPACK_COMPONENT_FARSIGHT_HEADERS_DESCRIPTION
    "Development files for TelepathyQt4-Farsight")

    set(CPACK_COMPONENT_HEADERS_DEPENDS mainlibrary)
    set(CPACK_COMPONENT_FARSIGHT_DEPENDS mainlibrary)
    set(CPACK_COMPONENT_FARSIGHT_HEADERS_DEPENDS mainlibrary farsight)

    #installation types
    set(CPACK_ALL_INSTALL_TYPES User Developer Minimal)

    set(CPACK_COMPONENT_MAINLIBRARY_INSTALL_TYPES User Developer Minimal)
    set(CPACK_COMPONENT_FARSIGHT_INSTALL_TYPES User Developer)
    set(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer)
    set(CPACK_COMPONENT_FARSIGHT_HEADERS_INSTALL_TYPES Developer)

    # Leave this as the last declaration, always!!!
    include(CPack)

endif (ENABLE_CPACK)