Commit 21c134d1e7430c04d6888902685ba68bbc82f979

Authored by David Graeff
Committed by David Gräff
1 parent 112cc8bd

Add rpm generation to the cpack script.

CMakeLists.txt
... ... @@ -11,7 +11,7 @@ ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
11 11 # Find external libraries
12 12 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/")
13 13  
14   -INCLUDE_DIRECTORIES("." "/usr/local/include")
  14 +INCLUDE_DIRECTORIES(".")
15 15  
16 16 # Use CPack to make deb/rpm/zip/exe installer packages
17 17 include(cmake/CPackInfos.cmake)
... ...
cmake/CPackInfos.cmake
... ... @@ -5,10 +5,10 @@
5 5  
6 6 find_package(Git QUIET)
7 7  
8   -if (GIT_EXECUTABLE AND EXISTS "../.git")
  8 +if (GIT_EXECUTABLE AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
9 9 execute_process(
10 10 COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
11   - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  11 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
12 12 RESULT_VARIABLE CMD_RESULT
13 13 OUTPUT_VARIABLE VCS_REVISION
14 14 OUTPUT_STRIP_TRAILING_WHITESPACE
... ... @@ -21,7 +21,7 @@ if(NOT DEFINED CMD_RESULT)
21 21 else()
22 22 execute_process(
23 23 COMMAND ${GIT_EXECUTABLE} status
24   - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  24 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
25 25 RESULT_VARIABLE CMD_RESULT
26 26 OUTPUT_VARIABLE DESCRIBE_STATUS
27 27 OUTPUT_STRIP_TRAILING_WHITESPACE
... ... @@ -35,51 +35,87 @@ else()
35 35  
36 36 message(STATUS "Version: ${VCS_BRANCH}/${VCS_REVISION}")
37 37  
38   -execute_process(
39   - COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
40   - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
41   - RESULT_VARIABLE CMD_RESULT
42   - OUTPUT_VARIABLE VCS_URL
43   - OUTPUT_STRIP_TRAILING_WHITESPACE
44   - )
  38 + execute_process(
  39 + COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
  40 + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  41 + RESULT_VARIABLE CMD_RESULT
  42 + OUTPUT_VARIABLE VCS_URL
  43 + OUTPUT_STRIP_TRAILING_WHITESPACE
  44 + )
  45 +
  46 + set(ENV{LANG} "en_US")
  47 + execute_process(
  48 + COMMAND ${GIT_EXECUTABLE} log -n 10 "--date=format:%a %b %d %Y" "--pretty=format:* %ad %aN <%aE> %h - %s"
  49 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
  50 + RESULT_VARIABLE CMD_RESULT
  51 + OUTPUT_VARIABLE CHANGELOG
  52 + OUTPUT_STRIP_TRAILING_WHITESPACE
  53 + )
  54 + file(WRITE "${CMAKE_BINARY_DIR}/changelog" "${CHANGELOG}")
45 55 endif()
46 56  
47 57 string(TIMESTAMP DATE_VERSION "%d.%m.%Y")
48 58 string(TIMESTAMP CURRENT_TIME "%d.%m.%Y %H:%M")
49 59  
50 60 if (UNIX)
51   - set(CPACK_GENERATOR ZIP STGZ)
  61 + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
  62 + set(CPACK_GENERATOR STGZ)
52 63 if (NOT APPLE)
53   - set(CPACK_GENERATOR ${CPACK_GENERATOR} DEB)
  64 + set(CPACK_GENERATOR ${CPACK_GENERATOR} ZIP)
  65 + find_program(LSB_RELEASE lsb_release)
  66 + execute_process(COMMAND ${LSB_RELEASE} -is
  67 + OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT
  68 + OUTPUT_STRIP_TRAILING_WHITESPACE
  69 + )
  70 + if (LSB_RELEASE_ID_SHORT MATCHES "Ubuntu")
  71 + set(CPACK_GENERATOR ${CPACK_GENERATOR} DEB)
  72 + else()
  73 + set(CPACK_GENERATOR ${CPACK_GENERATOR} RPM)
  74 + endif()
54 75 endif()
55 76 elseif(WIN32)
56   - set(CPACK_GENERATOR ZIP NSIS)
  77 + set(CPACK_GENERATOR NSIS)
57 78 endif()
58 79  
59 80 set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
60   -set(CPACK_PACKAGE_VERSION "${DATE_VERSION}-${VCS_BRANCH}-${VCS_REVISION}")
  81 +string(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_PACKAGE_NAME)
  82 +set(CPACK_PACKAGE_VERSION "${DATE_VERSION}_${VCS_REVISION}")
61 83 set(CPACK_PACKAGE_CONTACT "contact@openhantek.org")
62 84 set(CPACK_PACKAGE_VENDOR "OpenHantek Community")
63   -set(CPACK_PACKAGE_DESCRIPTION "Digitial Oscilloscope for Hantek USB DSO hardware.")
64   -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenHantek is a free software for Hantek (Voltcraft/Darkwire/Protek/Acetech) USB DSOs based on HantekDSO. Build on ${CURRENT_TIME} from ${VCS_URL}. Branch ${VCS_BRANCH} has been used at commit ${VCS_REVISION}")
  85 +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Digital oscilloscope software for Hantek USB hardware")
  86 +set(CPACK_PACKAGE_DESCRIPTION "OpenHantek is an oscilloscope software for\nVoltcraft/Darkwire/Protek/Acetech/Hantek USB devices")
65 87 set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/readme.md")
66 88 if (EXISTS "${CMAKE_SOURCE_DIR}/COPYING")
67 89 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
68 90 endif()
  91 +
  92 +# Linux DEB+RPM
69 93 set(CPACK_DEBIAN_PACKAGE_SECTION "net")
  94 +set(CPACK_ARCH)
70 95 IF ((MSVC AND CMAKE_GENERATOR MATCHES "Win64+") OR (CMAKE_SIZEOF_VOID_P EQUAL 8))
71 96 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
  97 + set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
  98 + set(CPACK_ARCH "x86_64")
72 99 else()
73 100 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i586")
  101 + set(CPACK_RPM_PACKAGE_ARCHITECTURE "i586")
  102 + set(CPACK_ARCH "x86")
74 103 endif()
75 104 set(CPACK_STRIP_FILES 1)
76 105  
77 106 include(CMakeDetermineSystem)
78 107  
  108 +# Linux RPM
  109 +set(CPACK_RPM_PACKAGE_RELOCATABLE NO)
  110 +set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+")
  111 +set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
  112 +set(CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase-gui%{?_isa} >= 5.4, qt5-qttranslations%{?_isa}")
  113 +set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_BINARY_DIR}/changelog")
  114 +
79 115 set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
80 116  
81 117 set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
82   -set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CMAKE_SYSTEM_NAME}")
  118 +set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-1.${CPACK_ARCH}")
83 119 set(CPACK_PACKAGE_INSTALL_DIRECTORY ".")
84 120 SET(CPACK_OUTPUT_FILE_PREFIX packages)
85 121  
... ...
openhantek/CMakeLists.txt
... ... @@ -25,7 +25,6 @@ add_custom_target(format SOURCES &quot;.clang-format&quot;
25 25 COMMAND "clang-format" "-style=file" "-i" "-sort-includes" ${SRC} ${HEADERS})
26 26  
27 27 add_subdirectory(translations)
28   -add_subdirectory(res)
29 28  
30 29 add_definitions(-DVERSION="${CPACK_PACKAGE_VERSION}")
31 30  
... ...
openhantek/res/CMakeLists.txt deleted
1   -file(GLOB_RECURSE IMAGES "images/*.png" "images/*.icns" "images/*.svg")
2   -install(FILES ${IMAGES} DESTINATION "images")