diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a75c5f..8f96e47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 ") -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") diff --git a/Changelog.md b/Changelog.md index 18bc9a7..db89c4a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -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 diff --git a/liv/rpn-2.1-amd64.deb b/liv/rpn-2.1-amd64.deb deleted file mode 100644 index 9123f61..0000000 Binary files a/liv/rpn-2.1-amd64.deb and /dev/null differ diff --git a/liv/rpn-2.1-amd64.rpm b/liv/rpn-2.1-amd64.rpm deleted file mode 100644 index ca849c3..0000000 Binary files a/liv/rpn-2.1-amd64.rpm and /dev/null differ diff --git a/liv/rpn-2.1-amd64.tar.gz b/liv/rpn-2.1-amd64.tar.gz deleted file mode 100644 index 60c44a4..0000000 Binary files a/liv/rpn-2.1-amd64.tar.gz and /dev/null differ diff --git a/liv/rpn-2.2-amd64.deb b/liv/rpn-2.2-amd64.deb deleted file mode 100644 index 915519f..0000000 Binary files a/liv/rpn-2.2-amd64.deb and /dev/null differ diff --git a/liv/rpn-2.2-amd64.rpm b/liv/rpn-2.2-amd64.rpm deleted file mode 100644 index 5cde24e..0000000 Binary files a/liv/rpn-2.2-amd64.rpm and /dev/null differ diff --git a/liv/rpn-2.2-amd64.tar.gz b/liv/rpn-2.2-amd64.tar.gz deleted file mode 100644 index 9184c8c..0000000 Binary files a/liv/rpn-2.2-amd64.tar.gz and /dev/null differ diff --git a/liv/rpn-2.3-amd64.deb b/liv/rpn-2.3-amd64.deb deleted file mode 100644 index 91db542..0000000 Binary files a/liv/rpn-2.3-amd64.deb and /dev/null differ diff --git a/liv/rpn-2.3-amd64.rpm b/liv/rpn-2.3-amd64.rpm deleted file mode 100644 index 1602b7d..0000000 Binary files a/liv/rpn-2.3-amd64.rpm and /dev/null differ diff --git a/liv/rpn-2.3-amd64.tar.gz b/liv/rpn-2.3-amd64.tar.gz deleted file mode 100644 index 98a686c..0000000 Binary files a/liv/rpn-2.3-amd64.tar.gz and /dev/null differ diff --git a/liv/rpn-2.3.1-amd64.deb b/liv/rpn-2.3.1-amd64.deb deleted file mode 100644 index 74f986a..0000000 Binary files a/liv/rpn-2.3.1-amd64.deb and /dev/null differ diff --git a/liv/rpn-2.3.1-amd64.rpm b/liv/rpn-2.3.1-amd64.rpm deleted file mode 100644 index 8096bf0..0000000 Binary files a/liv/rpn-2.3.1-amd64.rpm and /dev/null differ diff --git a/liv/rpn-2.3.1-amd64.tar.gz b/liv/rpn-2.3.1-amd64.tar.gz deleted file mode 100644 index d2aae9a..0000000 Binary files a/liv/rpn-2.3.1-amd64.tar.gz and /dev/null differ diff --git a/liv/rpn-2.3.2-amd64.deb b/liv/rpn-2.3.2-amd64.deb deleted file mode 100644 index b248645..0000000 Binary files a/liv/rpn-2.3.2-amd64.deb and /dev/null differ diff --git a/liv/rpn-2.3.2-amd64.rpm b/liv/rpn-2.3.2-amd64.rpm deleted file mode 100644 index a9fe4cc..0000000 Binary files a/liv/rpn-2.3.2-amd64.rpm and /dev/null differ diff --git a/liv/rpn-2.3.2-amd64.tar.gz b/liv/rpn-2.3.2-amd64.tar.gz deleted file mode 100644 index 043ceab..0000000 Binary files a/liv/rpn-2.3.2-amd64.tar.gz and /dev/null differ diff --git a/src/version.h b/src/version.h index c05594a..a99959e 100644 --- a/src/version.h +++ b/src/version.h @@ -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 , GNU LGPL v3" #endif // SRC_VERSION_H_