From d03b87dfce70c71410cb01699f26ffd706228b2d Mon Sep 17 00:00:00 2001 From: Yves Date: Mon, 17 Feb 2025 18:20:25 +0100 Subject: [PATCH] Always compute UI_EXTENSION_GIT_SHA --- CMakeLists.txt | 14 ++++++++++++++ src/http_server.cpp | 6 +++--- src/ui_extension.cpp | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c434c6..78088e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,20 @@ set(EXTENSION_SOURCES src/utils/serialization.cpp ) +find_package(Git) +if (NOT Git_FOUND) + message(FATAL_ERROR "Git not found, unable to determine git sha") +endif() + +execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short=10 HEAD + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE UI_EXTENSION_GIT_SHA +) + +message(STATUS "UI_EXTENSION_GIT_SHA=${UI_EXTENSION_GIT_SHA}") +add_definitions(-DUI_EXTENSION_GIT_SHA="${UI_EXTENSION_GIT_SHA}") + build_static_extension(${TARGET_NAME} ${EXTENSION_SOURCES}) build_loadable_extension(${TARGET_NAME} " " ${EXTENSION_SOURCES}) diff --git a/src/http_server.cpp b/src/http_server.cpp index 1d42626..5ea9954 100644 --- a/src/http_server.cpp +++ b/src/http_server.cpp @@ -94,10 +94,10 @@ bool HttpServer::Start(const uint16_t local_port, const std::string &remote_url, local_port_ = local_port; remote_url_ = remote_url; ddb_instance_ = ddb_instance; -#ifndef EXT_VERSION_UI -#error "EXT_VERSION_UI must be defined" +#ifndef UI_EXTENSION_GIT_SHA +#error "UI_EXTENSION_GIT_SHA must be defined" #endif - user_agent_ = StringUtil::Format("duckdb-ui/%s(%s)", EXT_VERSION_UI, DuckDB::Platform()); + user_agent_ = StringUtil::Format("duckdb-ui/%s(%s)", UI_EXTENSION_GIT_SHA, DuckDB::Platform()); event_dispatcher_ = make_uniq(); thread_ = make_uniq(&HttpServer::Run, this); return true; diff --git a/src/ui_extension.cpp b/src/ui_extension.cpp index 780e71c..2963cac 100644 --- a/src/ui_extension.cpp +++ b/src/ui_extension.cpp @@ -115,8 +115,8 @@ std::string UiExtension::Name() { } std::string UiExtension::Version() const { -#ifdef EXT_VERSION_UI - return EXT_VERSION_UI; +#ifdef UI_EXTENSION_GIT_SHA + return UI_EXTENSION_GIT_SHA; #else return ""; #endif