diff --git a/CI.mk b/CI.mk index d9721e1..e8b1156 100644 --- a/CI.mk +++ b/CI.mk @@ -8,6 +8,10 @@ wine=$(WINEPATH) $(wineenv) wine winepwd:=$(shell $(wine) winepath -w $(pwd)) WINEPREFIX=WINEPREFIX="$(pwd)/wine" WINEPATH=WINEPATH='C:\Program Files (x86)\CMake\bin;$(shell $(winepath) -w "$(pwd)/mingw64/bin");$(shell $(winepath) -w "$(pwd)/Qt/6.7.2/mingw_64/bin")' QTDIR="Z:$(pwd)/Qt/6.7.2/mingw_64/" +branch:=$(CI_COMMIT_BRANCH) +ifeq ($(branch),) +branch:=$(CI_DEFAULT_BRANCH) +endif .PHONY: build winbuild windeploy linuxdeploy finalize @@ -15,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)" -DGAM_BUILD_NAME=Linux_x64 -G"Ninja" -DCMAKE_BUILD_TYPE=Release --install-prefix="$(pwd)/release" && ninja && ninja install + 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 linuxdeploy: build mkdir GitAddonsManager @@ -107,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)" -DGAM_BUILD_NAME=Win64 -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 ../ -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" $(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 d1fb7a8..10a276d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,9 @@ cmake_minimum_required(VERSION 3.1.0) project(GitAddonsManager LANGUAGES CXX) -find_package(Qt6 COMPONENTS Quick Core QuickControls2 Concurrent Network Widgets REQUIRED) +find_package(Qt6 COMPONENTS Quick Gui Core QuickControls2 Concurrent Network Widgets REQUIRED) find_package(Qt6LinguistTools) find_package(QuaZip-Qt6) + if (NOT WIN32) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBGIT2 REQUIRED IMPORTED_TARGET libgit2) @@ -38,9 +39,13 @@ set(qml_files Update.qml ) +set(${PROJECT_NAME}_BUILD_NAME "" CACHE STRING "name of the build pipeline for self updates") + +set(${PROJECT_NAME}_BRANCH_NAME "" CACHE STRING "name of the branch for self updates") + qt_add_executable(GitAddonsManager - addon.h control.h utils.h - main.cpp addon.cpp control.cpp + addon.h control.h remote.h utils.h + main.cpp addon.cpp control.cpp remote.cpp CI.mk .gitlab-ci.yml ${RESOURCES} MANUAL_FINALIZATION @@ -51,11 +56,18 @@ set_property(TARGET GitAddonsManager PROPERTY CXX_STANDARD 20) add_compile_definitions( GIT_DESCRIBE="${GIT_DESCRIBE}" GAM_EXEC="GitAddonsManager${CMAKE_EXECUTABLE_SUFFIX}" - GAM_BUILD_NAME="${GAM_BUILD_NAME}" ) +if (NOT ${PROJECT_NAME}_BUILD_NAME STREQUAL "") + add_compile_definitions(GAM_BUILD_NAME="${${PROJECT_NAME}_BUILD_NAME}") +endif() +if (NOT ${PROJECT_NAME}_BRANCH_NAME STREQUAL "") + add_compile_definitions(GAM_BRANCH_NAME="${${PROJECT_NAME}_BRANCH_NAME}") +endif() + target_link_libraries(GitAddonsManager PUBLIC Qt6::Core) target_link_libraries(GitAddonsManager PUBLIC Qt6::Quick) +target_link_libraries(GitAddonsManager PUBLIC Qt6::Gui) target_link_libraries(GitAddonsManager PUBLIC Qt6::QuickControls2) target_link_libraries(GitAddonsManager PUBLIC Qt6::Concurrent) target_link_libraries(GitAddonsManager PUBLIC Qt6::Network) @@ -68,17 +80,6 @@ else() endif() -# qt6_add_qml_module(GitAddonsManager -# URI raffarti.GitAddonsManager -# VERSION 1.0 -# SOURCES -# sound.cpp sound.h -# QML_FILES -# main.qml -# Sounds.qml -# Sound.qml -# # ENABLE_TYPE_COMPILER -# ) target_link_libraries(GitAddonsManager PRIVATE Qt6::QmlPrivate Qt6::QuickPrivate) set(APPNAME GitAddonsManager) diff --git a/control.cpp b/control.cpp index a765a77..d54ec5e 100644 --- a/control.cpp +++ b/control.cpp @@ -520,8 +520,8 @@ void Control::setAvailableStyles(QStringList availableStyles) void Control::checkForUpdates() { -#ifdef GAM_BUILD_NAME - QNetworkRequest req(QUrl(QString("https://gitlab.com/woblight/GitAddonsManager/-/jobs/artifacts/master/download?job=%1").arg(GAM_BUILD_NAME))); +#if defined(GAM_BUILD_NAME) && defined(GAM_BRANCH_NAME) + QNetworkRequest req(QUrl(QString("https://gitlab.com/woblight/GitAddonsManager/-/jobs/artifacts/%1/download?job=%2").arg(GAM_BRANCH_NAME).arg(GAM_BUILD_NAME))); req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); connect(nam, &QNetworkAccessManager::finished, [](auto reply){ QApplication::setApplicationDisplayName(reply->errorString()); @@ -542,7 +542,7 @@ void Control::checkForUpdates() void Control::downloadUpdate() { -#ifdef GAM_BUILD_NAME +#if defined(GAM_BUILD_NAME) && defined(GAM_BRANCH_NAME) QFile *zip = new QFile(QApplication::applicationDirPath() + "/GitAddonsManager.zip"); if (!zip->open(QFile::WriteOnly)) { setUpdateStatus(UpdateStatus::UpdateError);