Merge pull request #238 from louisrubet/#218/git_version_as_rpn_version

git tag used as rpn version
This commit is contained in:
Louis Rubet 2022-02-26 15:25:17 +01:00 committed by GitHub
commit 505c3bd986
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 40 additions and 42 deletions

View file

@ -1,9 +1,9 @@
# -*- mode: CMAKE; -*-
cmake_minimum_required(VERSION 2.6)
project(rpn)
cmake_minimum_required(VERSION 3.22)
if((NOT CMAKE_BUILD_TYPE MATCHES Debug)
AND (NOT CMAKE_BUILD_TYPE MATCHES Release))
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release" FORCE)
@ -11,12 +11,37 @@ endif()
message(STATUS "Build mode: ${CMAKE_BUILD_TYPE}")
if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
EXECUTE_PROCESS(
COMMAND git rev-parse --abbrev-ref --short=10 HEAD
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
OUTPUT_VARIABLE "BRANCH")
MESSAGE( STATUS "Source Git Branch: ${GIT_BRANCH}" )
EXECUTE_PROCESS(
COMMAND git describe --dirty --tags --long --always
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
OUTPUT_VARIABLE "TAG"
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
MESSAGE( STATUS "Source Git Tag: ${GIT_TAG}" )
EXECUTE_PROCESS(
COMMAND echo ${TAG}-${BRANCH}
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
OUTPUT_VARIABLE "GIT_VERSION"
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
MESSAGE( STATUS "Source Git version: ${GIT_VERSION}" )
add_definitions(-DGIT_VERSION="${GIT_VERSION}")
else(EXISTS ${PROJECT_SOURCE_DIR}/.git)
add_definitions(-DGIT_VERSION="unknown")
message("Warning, built outside of a git repo, version set to ${GIT_VERSION}")
endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
# INFO
set(RPN_VERSION "2.4")
set(RPN_DISPLAY_NAME "rpn")
set(RPN_URL_INFO_ABOUT "https://github.com/louisrubet/rpn")
set(RPN_CONTACT "Louis Rubet <louis@rubet.fr>")
set(RPN_FRIENDLY_STRING "rpn - Reverse Polish Notation math language")
set(RPN_FRIENDLY_STRING "Reverse Polish Notation math language")
set(RPN_LICENSE "LGPLv3")
set(RPN_LICENSE_FILE "${PROJECT_SOURCE_DIR}/LICENSE")
set(RPN_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
@ -33,16 +58,16 @@ endif()
# custom linenoise-ng
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/linenoise-ng/.git")
execute_process(COMMAND git submodule init ${PROJECT_SOURCE_DIR}/linenoise-ng)
execute_process(COMMAND git submodule update ${PROJECT_SOURCE_DIR}/linenoise-ng)
execute_process(COMMAND git checkout v1.1.1-rpn WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/linenoise-ng)
execute_process(command git submodule init ${PROJECT_SOURCE_DIR}/linenoise-ng)
execute_process(command git submodule update ${PROJECT_SOURCE_DIR}/linenoise-ng)
execute_process(command git checkout v1.1.1-rpn WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/linenoise-ng)
endif()
# custom mpreal
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/mpreal/.git")
execute_process(COMMAND git submodule init ${PROJECT_SOURCE_DIR}/mpreal)
execute_process(COMMAND git submodule update ${PROJECT_SOURCE_DIR}/mpreal)
execute_process(COMMAND git checkout mpfrc++-3.6.9 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/mpreal)
execute_process(command git submodule init ${PROJECT_SOURCE_DIR}/mpreal)
execute_process(command git submodule update ${PROJECT_SOURCE_DIR}/mpreal)
execute_process(command git checkout mpfrc++-3.6.9 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/mpreal)
endif()
# includes
@ -74,45 +99,17 @@ add_executable(
${PROJECT_SOURCE_DIR}/linenoise-ng/src/linenoise.cpp
${PROJECT_SOURCE_DIR}/linenoise-ng/src/wcwidth.cpp
)
target_link_libraries(rpn mpfr)
target_link_libraries(rpn gmp)
# man
add_custom_target(man ALL)
add_custom_command(
TARGET man
COMMAND gzip -f -k ${CMAKE_CURRENT_SOURCE_DIR}/doc/rpn.1
OUTPUTS ${CMAKE_CURRENT_SOURCE_DIR}/doc/rpn.1.gz
OUTPUT ${PROJECT_SOURCE_DIR}/doc/rpn.1.gz
COMMAND gzip -f -k ${PROJECT_SOURCE_DIR}/doc/rpn.1
)
# install
install(TARGETS rpn DESTINATION bin)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/rpn.1.gz DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1)
# packages (common variables for all packages)
set(CPACK_PACKAGE_NAME ${RPN_DISPLAY_NAME})
set(CPACK_PACKAGE_VENDOR ${RPN_CONTACT})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${RPN_FRIENDLY_STRING})
set(CPACK_PACKAGE_DESCRIPTION ${RPN_FRIENDLY_STRING})
set(CPACK_PACKAGE_DESCRIPTION_FILE ${RPN_DESCRIPTION_FILE})
set(CPACK_RESOURCE_FILE_LICENSE ${RPN_LICENSE_FILE})
set(CPACK_RESOURCE_FILE_README ${RPN_DESCRIPTION_FILE})
set(CPACK_PACKAGE_FILE_NAME "${RPN_DISPLAY_NAME}-${RPN_VERSION}-amd64")
set(CPACK_PACKAGE_VERSION ${RPN_VERSION})
#set(CPACK_PACKAGE_RELEASE 0)
set(CPACK_PACKAGE_CONTACT ${RPN_CONTACT})
set(CPACK_PACKAGE_LICENSE ${RPN_LICENSE})
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
# DEB package
set(CPACK_GENERATOR "DEB;RPM;TGZ")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${RPN_CONTACT})
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${SYSTEM_PROCESSOR})
set(CPACK_DEBIAN_PACKAGE_SECTION "math")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
include(CPack)
# RPM package
set(CPACK_RPM_PACKAGE_REQUIRES "mpfr")

View file

@ -22,6 +22,7 @@ Changelog
- Test files are now markdown (.md) files, tests result are slightly changed
- Delivery as flatpak and snap
- error string are slightly different, althought error codes are still the same
- automatic version string from git, slightly change from previous versions
New
- `«` and `»` are now valid as program delimiters. `<<` and `>>` are still valid

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -3,7 +3,7 @@
#ifndef SRC_VERSION_H_
#define SRC_VERSION_H_
#define RPN_VERSION "2.4"
#define RPN_VERSION GIT_VERSION // set by cmake from git tag
#define RPN_UNAME "rpn v" RPN_VERSION ", (c) 2017 <louis@rubet.fr>, GNU LGPL v3"
#endif // SRC_VERSION_H_