diff --git a/CMakeLists.txt b/CMakeLists.txt index 3795323..6a8b0e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,12 +17,7 @@ cmake_minimum_required(VERSION 3.6) -include(MunkeiVersionFromGit.cmake) -version_from_git(TIMESTAMP "%Y%m%d%H%M%S") - -project(tuxedo-touchpad-switch - VERSION ${VERSION} - DESCRIPTION "Hardware toggle for Tongfang/Uniwill i2c touchpads. This will toggle the touchpad-disabled-led.") +project(tuxedo-touchpad-switch) find_package(PkgConfig REQUIRED) pkg_check_modules(deps REQUIRED IMPORTED_TARGET gio-2.0 udev) @@ -35,10 +30,3 @@ install(FILES res/99-tuxedo-touchpad-switch.rules DESTINATION lib/udev/rules.d/) install(FILES res/tuxedo-touchpad-switch-lockfile DESTINATION /etc/ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) # absolute path on purpose: implemented as such in tuxedo-touchpad-switch.cpp install(FILES res/tuxedo-touchpad-switch.desktop DESTINATION /usr/share/gdm/greeter/autostart/) # absolute path on purpose: gdm has no config dir in /usr/local/ install(FILES res/tuxedo-touchpad-switch.desktop DESTINATION /etc/xdg/autostart/) # absolute path on purpose: $XDG_CONFIG_DIRS does not include a folder under /usr/ by default https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables - -SET(CPACK_GENERATOR DEB) -SET(CPACK_PACKAGE_CONTACT "Werner Sembach ") -SET(CPACK_PACKAGE_VERSION ${SEMVER}) -SET(CPACK_DEBIAN_PACKAGE_SECTION admin) -SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) -include(CPack) diff --git a/MunkeiVersionFromGit.cmake b/MunkeiVersionFromGit.cmake deleted file mode 100644 index 286e1e6..0000000 --- a/MunkeiVersionFromGit.cmake +++ /dev/null @@ -1,167 +0,0 @@ -# The MIT License (MIT) -# -# Copyright (c) 2016-2017 Theo Willows -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -cmake_minimum_required( VERSION 3.0.0 ) - -include( CMakeParseArguments ) - -function( version_from_git ) - # Parse arguments - set( options OPTIONAL FAST ) - set( oneValueArgs - GIT_EXECUTABLE - INCLUDE_HASH - LOG - TIMESTAMP - ) - set( multiValueArgs ) - cmake_parse_arguments( ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) - - # Defaults - if( NOT DEFINED ARG_INCLUDE_HASH ) - set( ARG_INCLUDE_HASH ON ) - endif() - - if( DEFINED ARG_GIT_EXECUTABLE ) - set( GIT_EXECUTABLE "${ARG_GIT_EXECUTABLE}" ) - else () - # Find Git or bail out - find_package( Git ) - if( NOT GIT_FOUND ) - message( FATAL_ERROR "[MunkeiVersionFromGit] Git not found" ) - endif( NOT GIT_FOUND ) - endif() - - # Git describe - execute_process( - COMMAND "${GIT_EXECUTABLE}" describe --tags - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE git_result - OUTPUT_VARIABLE git_describe - ERROR_VARIABLE git_error - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_STRIP_TRAILING_WHITESPACE - ) - if( NOT git_result EQUAL 0 ) - message( FATAL_ERROR - "[MunkeiVersionFromGit] Failed to execute Git: ${git_error}" - ) - endif() - - # Get Git tag - execute_process( - COMMAND "${GIT_EXECUTABLE}" describe --tags --abbrev=0 - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE git_result - OUTPUT_VARIABLE git_tag - ERROR_VARIABLE git_error - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_STRIP_TRAILING_WHITESPACE - ) - if( NOT git_result EQUAL 0 ) - message( FATAL_ERROR - "[MunkeiVersionFromGit] Failed to execute Git: ${git_error}" - ) - endif() - - if( git_tag MATCHES "^v(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)(-[.0-9A-Za-z-]+)?([+][.0-9A-Za-z-]+)?$" ) - set( version_major "${CMAKE_MATCH_1}" ) - set( version_minor "${CMAKE_MATCH_2}" ) - set( version_patch "${CMAKE_MATCH_3}" ) - set( identifiers "${CMAKE_MATCH_4}" ) - set( metadata "${CMAKE_MATCH_5}" ) - else() - message( FATAL_ERROR - "[MunkeiVersionFromGit] Git tag isn't valid semantic version: [${git_tag}]" - ) - endif() - - if( "${git_tag}" STREQUAL "${git_describe}" ) - set( git_at_a_tag ON ) - endif() - - if( NOT git_at_a_tag ) - # Extract the Git hash (if one exists) - string( REGEX MATCH "g[0-9a-f]+$" git_hash "${git_describe}" ) - endif() - - # Construct the version variables - set( version ${version_major}.${version_minor}.${version_patch} ) - set( semver ${version} ) - - # Identifiers - if( identifiers MATCHES ".+" ) - string( SUBSTRING "${identifiers}" 1 -1 identifiers ) - set( semver "${semver}-${identifiers}") - endif() - - # Metadata - # TODO Split and join (add Git hash inbetween) - if( metadata MATCHES ".+" ) - string( SUBSTRING "${metadata}" 1 -1 metadata ) - # Split - string( REPLACE "." ";" metadata "${metadata}" ) - endif() - - if( NOT git_at_a_tag ) - - if( ARG_INCLUDE_HASH ) - list( APPEND metadata "${git_hash}" ) - endif( ARG_INCLUDE_HASH ) - - # Timestamp - if( DEFINED ARG_TIMESTAMP ) - string( TIMESTAMP timestamp "${ARG_TIMESTAMP}" UTC ) - list( APPEND metadata "${timestamp}" ) - endif( DEFINED ARG_TIMESTAMP ) - - endif() - - # Join - string( REPLACE ";" "." metadata "${metadata}" ) - - if( metadata MATCHES ".+" ) - set( semver "${semver}+${metadata}") - endif() - - # Log the results - if( ARG_LOG ) - message( STATUS - "[MunkeiVersionFromGit] Version: ${version} - Git tag: [${git_tag}] - Git hash: [${git_hash}] - Decorated: [${git_describe}] - Identifiers: [${identifiers}] - Metadata: [${metadata}] - SemVer: [${semver}]" - ) - endif( ARG_LOG ) - - # Set parent scope variables - set( GIT_TAG ${git_tag} PARENT_SCOPE ) - set( SEMVER ${semver} PARENT_SCOPE ) - set( VERSION ${version} PARENT_SCOPE ) - set( VERSION_MAJOR ${version_major} PARENT_SCOPE ) - set( VERSION_MINOR ${version_minor} PARENT_SCOPE ) - set( VERSION_PATCH ${version_patch} PARENT_SCOPE ) - -endfunction( version_from_git ) diff --git a/ReadMe.md b/ReadMe.md index 0442bf4..924c9d1 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -19,8 +19,6 @@ $ sudo make install $ sudo reboot ``` -There is also a target `make package` which is fine for testing, but it will not create a debian best practices compliant .deb. For this you need to use `gbp buildpackage` as described below. - ## Packaging ``` $ sudo apt install libudev-dev libglib2.0-dev git-buildpackage debhelper