Commit 21c134d1e7430c04d6888902685ba68bbc82f979
Committed by
David Gräff
1 parent
112cc8bd
Add rpm generation to the cpack script.
Showing
4 changed files
with
54 additions
and
21 deletions
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 ".clang-format" | @@ -25,7 +25,6 @@ add_custom_target(format SOURCES ".clang-format" | ||
| 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