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; -*- # -*- mode: CMAKE; -*-
cmake_minimum_required(VERSION 2.6)
project(rpn) project(rpn)
cmake_minimum_required(VERSION 3.22)
if((NOT CMAKE_BUILD_TYPE MATCHES Debug) if((NOT CMAKE_BUILD_TYPE MATCHES Debug)
AND (NOT CMAKE_BUILD_TYPE MATCHES Release)) 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) 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}") 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 # INFO
set(RPN_VERSION "2.4")
set(RPN_DISPLAY_NAME "rpn") set(RPN_DISPLAY_NAME "rpn")
set(RPN_URL_INFO_ABOUT "https://github.com/louisrubet/rpn") set(RPN_URL_INFO_ABOUT "https://github.com/louisrubet/rpn")
set(RPN_CONTACT "Louis Rubet <louis@rubet.fr>") 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 "LGPLv3")
set(RPN_LICENSE_FILE "${PROJECT_SOURCE_DIR}/LICENSE") set(RPN_LICENSE_FILE "${PROJECT_SOURCE_DIR}/LICENSE")
set(RPN_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md") set(RPN_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
@ -33,16 +58,16 @@ endif()
# custom linenoise-ng # custom linenoise-ng
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/linenoise-ng/.git") 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 init ${PROJECT_SOURCE_DIR}/linenoise-ng)
execute_process(COMMAND git submodule update ${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 checkout v1.1.1-rpn WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/linenoise-ng)
endif() endif()
# custom mpreal # custom mpreal
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/mpreal/.git") if(NOT EXISTS "${PROJECT_SOURCE_DIR}/mpreal/.git")
execute_process(COMMAND git submodule init ${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 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 checkout mpfrc++-3.6.9 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/mpreal)
endif() endif()
# includes # includes
@ -74,45 +99,17 @@ add_executable(
${PROJECT_SOURCE_DIR}/linenoise-ng/src/linenoise.cpp ${PROJECT_SOURCE_DIR}/linenoise-ng/src/linenoise.cpp
${PROJECT_SOURCE_DIR}/linenoise-ng/src/wcwidth.cpp ${PROJECT_SOURCE_DIR}/linenoise-ng/src/wcwidth.cpp
) )
target_link_libraries(rpn mpfr) target_link_libraries(rpn mpfr)
target_link_libraries(rpn gmp) target_link_libraries(rpn gmp)
# man # man
add_custom_target(man ALL) add_custom_target(man ALL)
add_custom_command( add_custom_command(
TARGET man OUTPUT ${PROJECT_SOURCE_DIR}/doc/rpn.1.gz
COMMAND gzip -f -k ${CMAKE_CURRENT_SOURCE_DIR}/doc/rpn.1 COMMAND gzip -f -k ${PROJECT_SOURCE_DIR}/doc/rpn.1
OUTPUTS ${CMAKE_CURRENT_SOURCE_DIR}/doc/rpn.1.gz
) )
# install # install
install(TARGETS rpn DESTINATION bin) install(TARGETS rpn DESTINATION bin)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/rpn.1.gz DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1) 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 - Test files are now markdown (.md) files, tests result are slightly changed
- Delivery as flatpak and snap - Delivery as flatpak and snap
- error string are slightly different, althought error codes are still the same - error string are slightly different, althought error codes are still the same
- automatic version string from git, slightly change from previous versions
New New
- `«` and `»` are now valid as program delimiters. `<<` and `>>` are still valid - `«` 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_ #ifndef SRC_VERSION_H_
#define 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" #define RPN_UNAME "rpn v" RPN_VERSION ", (c) 2017 <louis@rubet.fr>, GNU LGPL v3"
#endif // SRC_VERSION_H_ #endif // SRC_VERSION_H_