From 38c67f7e8992f4859eaa6297ff700e511c03b856 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Sun, 5 Feb 2017 21:40:57 -0700 Subject: [PATCH] Add printable libhackrf and hackrf tools version strings --- host/CMakeLists.txt | 18 ++++++++++++++++++ host/hackrf-tools/CMakeLists.txt | 5 +---- host/hackrf-tools/src/hackrf_info.c | 4 ++++ host/libhackrf/CMakeLists.txt | 4 +++- host/libhackrf/src/hackrf.c | 16 ++++++++++++++++ host/libhackrf/src/hackrf.h | 3 +++ 6 files changed, 45 insertions(+), 5 deletions(-) diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt index 874163f8..96965b7a 100644 --- a/host/CMakeLists.txt +++ b/host/CMakeLists.txt @@ -3,6 +3,24 @@ cmake_minimum_required(VERSION 2.8) project (hackrf_all) +#set(RELEASE "") + +if(NOT DEFINED RELEASE) + execute_process( + COMMAND git log -n 1 --format=%h + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE GIT_VERSION_FOUND + ERROR_QUIET + OUTPUT_VARIABLE GIT_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if (GIT_VERSION_FOUND) + set(RELEASE "unknown") + else (GIT_VERSION_FOUND) + set(RELEASE "git-${GIT_VERSION}") + endif (GIT_VERSION_FOUND) +endif() + add_subdirectory(libhackrf) add_subdirectory(hackrf-tools) diff --git a/host/hackrf-tools/CMakeLists.txt b/host/hackrf-tools/CMakeLists.txt index 82ea47d8..18dbf007 100644 --- a/host/hackrf-tools/CMakeLists.txt +++ b/host/hackrf-tools/CMakeLists.txt @@ -23,11 +23,8 @@ cmake_minimum_required(VERSION 2.8) project(hackrf-tools C) -set(MAJOR_VERSION 0) -set(MINOR_VERSION 5) set(PACKAGE hackrf-tools) -set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}) -set(VERSION ${VERSION_STRING}) +add_definitions(-DTOOL_RELEASE="${RELEASE}") set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake/modules) if(MSVC) diff --git a/host/hackrf-tools/src/hackrf_info.c b/host/hackrf-tools/src/hackrf_info.c index 0049a3e7..abb72887 100644 --- a/host/hackrf-tools/src/hackrf_info.c +++ b/host/hackrf-tools/src/hackrf_info.c @@ -44,6 +44,10 @@ int main(void) hackrf_error_name(result), result); return EXIT_FAILURE; } + + printf("hackrf_info version: %s\n", TOOL_RELEASE); + printf("libhackrf version: %s (%s)\n", hackrf_library_release(), + hackrf_library_version()); list = hackrf_device_list(); diff --git a/host/libhackrf/CMakeLists.txt b/host/libhackrf/CMakeLists.txt index c898d233..c3cd4946 100644 --- a/host/libhackrf/CMakeLists.txt +++ b/host/libhackrf/CMakeLists.txt @@ -24,10 +24,12 @@ cmake_minimum_required(VERSION 2.8) project(libhackrf C) set(MAJOR_VERSION 0) -set(MINOR_VERSION 4) +set(MINOR_VERSION 5) set(PACKAGE libhackrf) set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}) set(VERSION ${VERSION_STRING}) +add_definitions(-DLIBRARY_VERSION="${VERSION_STRING}") +add_definitions(-DLIBRARY_RELEASE="${RELEASE}") set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake/modules) if(MSVC) diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index c858f66d..a6925611 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -365,6 +365,22 @@ int ADDCALL hackrf_exit(void) return HACKRF_SUCCESS; } +#ifndef LIBRARY_VERSION +#define LIBRARY_VERSION "unknown" +#endif +const char* ADDCALL hackrf_library_version() +{ + return LIBRARY_VERSION; +} + +#ifndef LIBRARY_RELEASE +#define LIBRARY_RELEASE "unknown" +#endif +const char* ADDCALL hackrf_library_release() +{ + return LIBRARY_RELEASE; +} + hackrf_device_list_t* ADDCALL hackrf_device_list() { ssize_t i; diff --git a/host/libhackrf/src/hackrf.h b/host/libhackrf/src/hackrf.h index d1a57c4d..904207e0 100644 --- a/host/libhackrf/src/hackrf.h +++ b/host/libhackrf/src/hackrf.h @@ -133,6 +133,9 @@ extern "C" extern ADDAPI int ADDCALL hackrf_init(); extern ADDAPI int ADDCALL hackrf_exit(); +extern ADDAPI const char* ADDCALL hackrf_library_version(); +extern ADDAPI const char* ADDCALL hackrf_library_release(); + extern ADDAPI hackrf_device_list_t* ADDCALL hackrf_device_list(); extern ADDAPI int ADDCALL hackrf_device_list_open(hackrf_device_list_t *list, int idx, hackrf_device** device); extern ADDAPI void ADDCALL hackrf_device_list_free(hackrf_device_list_t *list);