1####################################################################################
2#                                                                                  #
3#  Copyright (c) 2014 - 2018 Axel Menzel <info@rttr.org>                           #
4#                                                                                  #
5#  This file is part of RTTR (Run Time Type Reflection)                            #
6#  License: MIT License                                                            #
7#                                                                                  #
8#  Permission is hereby granted, free of charge, to any person obtaining           #
9#  a copy of this software and associated documentation files (the "Software"),    #
10#  to deal in the Software without restriction, including without limitation       #
11#  the rights to use, copy, modify, merge, publish, distribute, sublicense,        #
12#  and/or sell copies of the Software, and to permit persons to whom the           #
13#  Software is furnished to do so, subject to the following conditions:            #
14#                                                                                  #
15#  The above copyright notice and this permission notice shall be included in      #
16#  all copies or substantial portions of the Software.                             #
17#                                                                                  #
18#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR      #
19#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,        #
20#  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE     #
21#  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER          #
22#  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,   #
23#  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE   #
24#  SOFTWARE.                                                                       #
25#                                                                                  #
26####################################################################################
27
28# first step set up all necessary variables
29if(WIN32 AND NOT UNIX)
30    if (NOT CMAKE_VERSION VERSION_LESS 3.1.0)
31        set(CPACK_GENERATOR 7Z)
32    else()
33        set(CPACK_GENERATOR ZIP)
34    endif()
35elseif(UNIX AND NOT APPLE)
36    set(CPACK_GENERATOR TGZ;TBZ2)
37elseif(APPLE)
38    set(CPACK_GENERATOR TGZ;TBZ2;PackageMaker)
39endif()
40
41set(CPACK_PACKAGE_NAME "${RTTR_PRODUCT_NAME}")
42set(CPACK_PACKAGE_VENDOR "AMS")
43set(CPACK_PACKAGE_VERSION_MAJOR "${RTTR_VERSION_MAJOR}")
44set(CPACK_PACKAGE_VERSION_MINOR "${RTTR_VERSION_MINOR}")
45set(CPACK_PACKAGE_VERSION_PATCH "${RTTR_VERSION_PATCH}")
46set(CPACK_PACKAGE_VERSION "${RTTR_VERSION}")
47set(CPACK_RESOURCE_FILE_README "${README_FILE}")
48set(CPACK_PACKAGE_DESCRIPTION_FILE "${README_FILE}")
49set(CPACK_RESOURCE_FILE_LICENSE "${LICENSE_FILE}")
50set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/RTTR")
51
52set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "RTTR is a C++ runtime reflection library")
53
54# detect system
55if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
56    set(RTTR_OS_NAME "linux${RTTR_NATIVE_ARCH}")
57elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
58    set(RTTR_OS_NAME "win${RTTR_NATIVE_ARCH}")
59else()
60    message(WARNING "This system is not supported for packing")
61    return()
62endif()
63
64getCompilerName(RTTR_COMPILER_NAME)
65
66# we use the same naming scheme like Qt
67set(CPACK_PACKAGE_FILE_NAME "rttr-${RTTR_VERSION_STR}-${RTTR_OS_NAME}-${RTTR_COMPILER_NAME}")
68set(CPACK_SOURCE_PACKAGE_FILE_NAME "rttr-${RTTR_VERSION_STR}-src")
69
70# now as last step we can include CPack
71include(CPack)