From 168a5bc87afb78d837e8a3a92ac69b8453aeb818 Mon Sep 17 00:00:00 2001 From: woblight Date: Mon, 12 Aug 2024 15:43:00 +0200 Subject: [PATCH] Add build details to the version field --- CI.mk | 4 ++-- CMakeLists.txt | 14 +++++++++++++- main.cpp | 13 ++++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/CI.mk b/CI.mk index 489162d..8457b76 100644 --- a/CI.mk +++ b/CI.mk @@ -19,7 +19,7 @@ finalize: cd GitAddonsManager && echo "# DO NOT EDIT" > .installedFiles && find ! -path . >> .installedFiles build: - mkdir -p build && cd build && cmake ../ -DGIT_DESCRIBE="$(shell git describe --tags --long)" -DGitAddonsManager_BUILD_NAME=$(CI_JOB_NAME) -DGitAddonsManager_BRANCH_NAME=$(branch) -G"Ninja" -DCMAKE_BUILD_TYPE=Release --install-prefix="$(pwd)/release" && ninja && ninja install + mkdir -p build && cd build && cmake ../ -DGitAddonsManager_BUILD_NAME=$(CI_JOB_NAME) -DGitAddonsManager_BRANCH_NAME=$(branch) -G"Ninja" -DCMAKE_BUILD_TYPE=Release --install-prefix="$(pwd)/release" && ninja && ninja install linuxdeploy: build mkdir GitAddonsManager @@ -111,7 +111,7 @@ quazip/release/bin/libquazip1-qt6.dll: quazip/CMakeLists.txt $(wine) mingw32-make -C quazip/build install build_win64/GitAddonsManager.exe: Qt libgit2-0.27.2/release/bin/libgit2.dll zlib/build/libzlib.dll quazip/release/bin/libquazip1-qt6.dll - mkdir -p build_win64 && cd build_win64 && $(wine) cmake ../ -DGIT_DESCRIBE="$(shell git describe --tags --long)" -DGitAddonsManager_BUILD_NAME=$(CI_JOB_NAME) -DGitAddonsManager_BRANCH_NAME=$(branch) -G"MinGW Makefiles" -DQuaZip-Qt6_DIR=$(pwd)/quazip/release/lib/cmake/QuaZip-Qt6-1.4/ -DLIBGIT2_LIBRARY=$(pwd)/libgit2-0.27.2/release/bin/libgit2.dll -DLIBGIT2_INCLUDE_DIR=$(pwd)/libgit2-0.27.2/release/include -DZLIB_LIBRARY=$(pwd)/zlib/build/libzlib.dll.a -DZLIB_INCLUDE_DIR=$(pwd)/zlib -DCMAKE_BUILD_TYPE=Release --install-prefix="$(winepwd)/release" + mkdir -p build_win64 && cd build_win64 && $(wine) cmake ../ -DGitAddonsManager_GIT_DESCRIBE="$(shell git describe --tags --long)" -DGitAddonsManager_BUILD_NAME=$(CI_JOB_NAME) -DGitAddonsManager_BRANCH_NAME=$(branch) -G"MinGW Makefiles" -DQuaZip-Qt6_DIR=$(pwd)/quazip/release/lib/cmake/QuaZip-Qt6-1.4/ -DLIBGIT2_LIBRARY=$(pwd)/libgit2-0.27.2/release/bin/libgit2.dll -DLIBGIT2_INCLUDE_DIR=$(pwd)/libgit2-0.27.2/release/include -DZLIB_LIBRARY=$(pwd)/zlib/build/libzlib.dll.a -DZLIB_INCLUDE_DIR=$(pwd)/zlib -DCMAKE_BUILD_TYPE=Release --install-prefix="$(winepwd)/release" $(wine) mingw32-make -C build_win64 -j $(shell nproc) $(wine) mingw32-make -C build_win64 install diff --git a/CMakeLists.txt b/CMakeLists.txt index 648f25d..85b87a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,18 @@ find_package(Qt6 COMPONENTS Quick Core QuickControls2 Concurrent Network Widgets find_package(Qt6LinguistTools) find_package(QuaZip-Qt6) +find_package(Git) + + +if(GIT_EXECUTABLE) + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --long --dirty + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE ${PROJECT_NAME}_GIT_DESCRIBE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +endif() + if (NOT WIN32) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBGIT2 REQUIRED IMPORTED_TARGET libgit2) @@ -54,7 +66,7 @@ qt_add_executable(GitAddonsManager set_property(TARGET GitAddonsManager PROPERTY CXX_STANDARD 20) add_compile_definitions( - GIT_DESCRIBE="${GIT_DESCRIBE}" + GIT_DESCRIBE="${${PROJECT_NAME}_GIT_DESCRIBE}" GAM_EXEC="GitAddonsManager${CMAKE_EXECUTABLE_SUFFIX}" ) diff --git a/main.cpp b/main.cpp index b5b812b..544fd0f 100644 --- a/main.cpp +++ b/main.cpp @@ -71,7 +71,18 @@ int main(int argc, char *argv[]) } else { Control::instance()->init(); qmlRegisterUncreatableType("GitAddonsManager.engine",1,0,"Addon",""); - engine.rootContext()->setContextProperty("gitVersion", GIT_DESCRIBE); + engine.rootContext()->setContextProperty("gitVersion", QString("%1 (%2 %3)").arg(GIT_DESCRIBE) +#ifdef GAM_BUILD_NAME + .arg(GAM_BUILD_NAME) +#else + .arg(QSysInfo::productType()) +#endif +#ifdef GAM_BANCH_NAME + .arg(GAM_BANCH_NAME) +#else + .arg(QSysInfo::buildCpuArchitecture()) +#endif + ); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); } if (engine.rootObjects().isEmpty())