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,7 +11,7 @@ ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
11 # Find external libraries 11 # Find external libraries
12 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/") 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 # Use CPack to make deb/rpm/zip/exe installer packages 16 # Use CPack to make deb/rpm/zip/exe installer packages
17 include(cmake/CPackInfos.cmake) 17 include(cmake/CPackInfos.cmake)
cmake/CPackInfos.cmake
@@ -5,10 +5,10 @@ @@ -5,10 +5,10 @@
5 5
6 find_package(Git QUIET) 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 execute_process( 9 execute_process(
10 COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD 10 COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
11 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 11 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
12 RESULT_VARIABLE CMD_RESULT 12 RESULT_VARIABLE CMD_RESULT
13 OUTPUT_VARIABLE VCS_REVISION 13 OUTPUT_VARIABLE VCS_REVISION
14 OUTPUT_STRIP_TRAILING_WHITESPACE 14 OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -21,7 +21,7 @@ if(NOT DEFINED CMD_RESULT) @@ -21,7 +21,7 @@ if(NOT DEFINED CMD_RESULT)
21 else() 21 else()
22 execute_process( 22 execute_process(
23 COMMAND ${GIT_EXECUTABLE} status 23 COMMAND ${GIT_EXECUTABLE} status
24 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 24 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
25 RESULT_VARIABLE CMD_RESULT 25 RESULT_VARIABLE CMD_RESULT
26 OUTPUT_VARIABLE DESCRIBE_STATUS 26 OUTPUT_VARIABLE DESCRIBE_STATUS
27 OUTPUT_STRIP_TRAILING_WHITESPACE 27 OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -35,51 +35,87 @@ else() @@ -35,51 +35,87 @@ else()
35 35
36 message(STATUS "Version: ${VCS_BRANCH}/${VCS_REVISION}") 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 endif() 55 endif()
46 56
47 string(TIMESTAMP DATE_VERSION "%d.%m.%Y") 57 string(TIMESTAMP DATE_VERSION "%d.%m.%Y")
48 string(TIMESTAMP CURRENT_TIME "%d.%m.%Y %H:%M") 58 string(TIMESTAMP CURRENT_TIME "%d.%m.%Y %H:%M")
49 59
50 if (UNIX) 60 if (UNIX)
51 - set(CPACK_GENERATOR ZIP STGZ) 61 + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
  62 + set(CPACK_GENERATOR STGZ)
52 if (NOT APPLE) 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 endif() 75 endif()
55 elseif(WIN32) 76 elseif(WIN32)
56 - set(CPACK_GENERATOR ZIP NSIS) 77 + set(CPACK_GENERATOR NSIS)
57 endif() 78 endif()
58 79
59 set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") 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 set(CPACK_PACKAGE_CONTACT "contact@openhantek.org") 83 set(CPACK_PACKAGE_CONTACT "contact@openhantek.org")
62 set(CPACK_PACKAGE_VENDOR "OpenHantek Community") 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 set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/readme.md") 87 set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/readme.md")
66 if (EXISTS "${CMAKE_SOURCE_DIR}/COPYING") 88 if (EXISTS "${CMAKE_SOURCE_DIR}/COPYING")
67 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") 89 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
68 endif() 90 endif()
  91 +
  92 +# Linux DEB+RPM
69 set(CPACK_DEBIAN_PACKAGE_SECTION "net") 93 set(CPACK_DEBIAN_PACKAGE_SECTION "net")
  94 +set(CPACK_ARCH)
70 IF ((MSVC AND CMAKE_GENERATOR MATCHES "Win64+") OR (CMAKE_SIZEOF_VOID_P EQUAL 8)) 95 IF ((MSVC AND CMAKE_GENERATOR MATCHES "Win64+") OR (CMAKE_SIZEOF_VOID_P EQUAL 8))
71 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") 96 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
  97 + set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
  98 + set(CPACK_ARCH "x86_64")
72 else() 99 else()
73 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i586") 100 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i586")
  101 + set(CPACK_RPM_PACKAGE_ARCHITECTURE "i586")
  102 + set(CPACK_ARCH "x86")
74 endif() 103 endif()
75 set(CPACK_STRIP_FILES 1) 104 set(CPACK_STRIP_FILES 1)
76 105
77 include(CMakeDetermineSystem) 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 set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".") 115 set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
80 116
81 set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) 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 set(CPACK_PACKAGE_INSTALL_DIRECTORY ".") 119 set(CPACK_PACKAGE_INSTALL_DIRECTORY ".")
84 SET(CPACK_OUTPUT_FILE_PREFIX packages) 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,7 +25,6 @@ add_custom_target(format SOURCES &quot;.clang-format&quot;
25 COMMAND "clang-format" "-style=file" "-i" "-sort-includes" ${SRC} ${HEADERS}) 25 COMMAND "clang-format" "-style=file" "-i" "-sort-includes" ${SRC} ${HEADERS})
26 26
27 add_subdirectory(translations) 27 add_subdirectory(translations)
28 -add_subdirectory(res)  
29 28
30 add_definitions(-DVERSION="${CPACK_PACKAGE_VERSION}") 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")