diff --git a/CMakeLists.txt b/CMakeLists.txt index b4c9a7e..5809cd7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) # Find external libraries list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/") -INCLUDE_DIRECTORIES("." "/usr/local/include") +INCLUDE_DIRECTORIES(".") # Use CPack to make deb/rpm/zip/exe installer packages include(cmake/CPackInfos.cmake) diff --git a/cmake/CPackInfos.cmake b/cmake/CPackInfos.cmake index 397716c..0f156f1 100644 --- a/cmake/CPackInfos.cmake +++ b/cmake/CPackInfos.cmake @@ -5,10 +5,10 @@ find_package(Git QUIET) -if (GIT_EXECUTABLE AND EXISTS "../.git") +if (GIT_EXECUTABLE AND EXISTS "${CMAKE_SOURCE_DIR}/.git") execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} RESULT_VARIABLE CMD_RESULT OUTPUT_VARIABLE VCS_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE @@ -21,7 +21,7 @@ if(NOT DEFINED CMD_RESULT) else() execute_process( COMMAND ${GIT_EXECUTABLE} status - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} RESULT_VARIABLE CMD_RESULT OUTPUT_VARIABLE DESCRIBE_STATUS OUTPUT_STRIP_TRAILING_WHITESPACE @@ -35,51 +35,87 @@ else() message(STATUS "Version: ${VCS_BRANCH}/${VCS_REVISION}") -execute_process( - COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE CMD_RESULT - OUTPUT_VARIABLE VCS_URL - OUTPUT_STRIP_TRAILING_WHITESPACE - ) + execute_process( + COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE CMD_RESULT + OUTPUT_VARIABLE VCS_URL + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + set(ENV{LANG} "en_US") + execute_process( + COMMAND ${GIT_EXECUTABLE} log -n 10 "--date=format:%a %b %d %Y" "--pretty=format:* %ad %aN <%aE> %h - %s" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + RESULT_VARIABLE CMD_RESULT + OUTPUT_VARIABLE CHANGELOG + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + file(WRITE "${CMAKE_BINARY_DIR}/changelog" "${CHANGELOG}") endif() string(TIMESTAMP DATE_VERSION "%d.%m.%Y") string(TIMESTAMP CURRENT_TIME "%d.%m.%Y %H:%M") if (UNIX) - set(CPACK_GENERATOR ZIP STGZ) + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") + set(CPACK_GENERATOR STGZ) if (NOT APPLE) - set(CPACK_GENERATOR ${CPACK_GENERATOR} DEB) + set(CPACK_GENERATOR ${CPACK_GENERATOR} ZIP) + find_program(LSB_RELEASE lsb_release) + execute_process(COMMAND ${LSB_RELEASE} -is + OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if (LSB_RELEASE_ID_SHORT MATCHES "Ubuntu") + set(CPACK_GENERATOR ${CPACK_GENERATOR} DEB) + else() + set(CPACK_GENERATOR ${CPACK_GENERATOR} RPM) + endif() endif() elseif(WIN32) - set(CPACK_GENERATOR ZIP NSIS) + set(CPACK_GENERATOR NSIS) endif() set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") -set(CPACK_PACKAGE_VERSION "${DATE_VERSION}-${VCS_BRANCH}-${VCS_REVISION}") +string(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_PACKAGE_NAME) +set(CPACK_PACKAGE_VERSION "${DATE_VERSION}_${VCS_REVISION}") set(CPACK_PACKAGE_CONTACT "contact@openhantek.org") set(CPACK_PACKAGE_VENDOR "OpenHantek Community") -set(CPACK_PACKAGE_DESCRIPTION "Digitial Oscilloscope for Hantek USB DSO hardware.") -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}") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Digital oscilloscope software for Hantek USB hardware") +set(CPACK_PACKAGE_DESCRIPTION "OpenHantek is an oscilloscope software for\nVoltcraft/Darkwire/Protek/Acetech/Hantek USB devices") set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/readme.md") if (EXISTS "${CMAKE_SOURCE_DIR}/COPYING") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") endif() + +# Linux DEB+RPM set(CPACK_DEBIAN_PACKAGE_SECTION "net") +set(CPACK_ARCH) IF ((MSVC AND CMAKE_GENERATOR MATCHES "Win64+") OR (CMAKE_SIZEOF_VOID_P EQUAL 8)) set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") + set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") + set(CPACK_ARCH "x86_64") else() set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i586") + set(CPACK_RPM_PACKAGE_ARCHITECTURE "i586") + set(CPACK_ARCH "x86") endif() set(CPACK_STRIP_FILES 1) include(CMakeDetermineSystem) +# Linux RPM +set(CPACK_RPM_PACKAGE_RELOCATABLE NO) +set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+") +set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) +set(CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase-gui%{?_isa} >= 5.4, qt5-qttranslations%{?_isa}") +set(CPACK_RPM_CHANGELOG_FILE "${CMAKE_BINARY_DIR}/changelog") + set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".") set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) -set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CMAKE_SYSTEM_NAME}") +set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-1.${CPACK_ARCH}") set(CPACK_PACKAGE_INSTALL_DIRECTORY ".") SET(CPACK_OUTPUT_FILE_PREFIX packages) diff --git a/openhantek/CMakeLists.txt b/openhantek/CMakeLists.txt index bdb4989..89745f2 100644 --- a/openhantek/CMakeLists.txt +++ b/openhantek/CMakeLists.txt @@ -25,7 +25,6 @@ add_custom_target(format SOURCES ".clang-format" COMMAND "clang-format" "-style=file" "-i" "-sort-includes" ${SRC} ${HEADERS}) add_subdirectory(translations) -add_subdirectory(res) add_definitions(-DVERSION="${CPACK_PACKAGE_VERSION}") diff --git a/openhantek/res/CMakeLists.txt b/openhantek/res/CMakeLists.txt deleted file mode 100644 index f338198..0000000 --- a/openhantek/res/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -file(GLOB_RECURSE IMAGES "images/*.png" "images/*.icns" "images/*.svg") -install(FILES ${IMAGES} DESTINATION "images")