diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 97b78c6..e7f10a1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,16 +1,20 @@ -name: Build Installer BAIN Plugin +name: Build Installer BAIN on: push: - branches: master + branches: [master] pull_request: types: [opened, synchronize, reopened] +env: + VCPKG_BINARY_SOURCES: clear;x-azblob,${{ vars.AZ_BLOB_VCPKG_URL }},${{ secrets.AZ_BLOB_SAS }},readwrite + jobs: build: runs-on: windows-2022 steps: - - name: Build Installer BAIN Plugin + - name: Build Installer BAIN + id: build-installer-bain uses: ModOrganizer2/build-with-mob-action@master with: - mo2-dependencies: cmake_common uibase + mo2-dependencies: uibase diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..3103a1f --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,20 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-merge-conflict + - id: check-case-conflict + - repo: https://github.com/pre-commit/mirrors-clang-format + rev: v19.1.5 + hooks: + - id: clang-format + 'types_or': [c++, c] + +ci: + autofix_commit_msg: "[pre-commit.ci] Auto fixes from pre-commit.com hooks." + autofix_prs: true + autoupdate_commit_msg: "[pre-commit.ci] Pre-commit autoupdate." + autoupdate_schedule: quarterly + submodules: false diff --git a/CMakeLists.txt b/CMakeLists.txt index eca028c..4834057 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,10 +2,4 @@ cmake_minimum_required(VERSION 3.16) project(installer_bain) -if(DEFINED DEPENDENCIES_DIR) - include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/mo2.cmake) -else() - include(${CMAKE_CURRENT_LIST_DIR}/../cmake_common/mo2.cmake) -endif() - add_subdirectory(src) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..5a63c77 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,67 @@ +{ + "configurePresets": [ + { + "errors": { + "deprecated": true + }, + "hidden": true, + "name": "cmake-dev", + "warnings": { + "deprecated": true, + "dev": true + } + }, + { + "cacheVariables": { + "VCPKG_MANIFEST_NO_DEFAULT_FEATURES": { + "type": "BOOL", + "value": "ON" + } + }, + "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", + "hidden": true, + "name": "vcpkg" + }, + { + "hidden": true, + "inherits": ["vcpkg"], + "name": "vcpkg-dev" + }, + { + "binaryDir": "${sourceDir}/vsbuild", + "architecture": { + "strategy": "set", + "value": "x64" + }, + "cacheVariables": { + "CMAKE_CXX_FLAGS": "/EHsc /MP /W4", + "VCPKG_TARGET_TRIPLET": { + "type": "STRING", + "value": "x64-windows-static-md" + } + }, + "generator": "Visual Studio 17 2022", + "inherits": ["cmake-dev", "vcpkg-dev"], + "name": "vs2022-windows", + "toolset": "v143" + }, + { + "cacheVariables": { + "VCPKG_MANIFEST_FEATURES": { + "type": "STRING", + "value": "standalone" + } + }, + "inherits": "vs2022-windows", + "name": "vs2022-windows-standalone" + } + ], + "buildPresets": [ + { + "name": "vs2022-windows", + "resolvePackageReferences": "on", + "configurePreset": "vs2022-windows" + } + ], + "version": 4 +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 56f10ee..8c2a034 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,9 @@ cmake_minimum_required(VERSION 3.16) +find_package(mo2-cmake CONFIG REQUIRED) +find_package(mo2-uibase CONFIG REQUIRED) + add_library(installer_bain SHARED) mo2_configure_plugin(installer_bain WARNINGS OFF) -mo2_install_target(installer_bain) +target_link_libraries(installer_bain PRIVATE mo2::uibase) +mo2_install_plugin(installer_bain) diff --git a/src/SConscript b/src/SConscript deleted file mode 100644 index 7a4bc89..0000000 --- a/src/SConscript +++ /dev/null @@ -1,18 +0,0 @@ -Import('qt_env') - -env = qt_env.Clone() - -env.EnableQtModules('Qml', 'Script','QuickWidgets') - -env.AppendUnique(CPPDEFINES = [ 'INSTALLERBAIN_LIBRARY' ]) - -# Sigh -env['CPPPATH'] += [ '.' ] - -env.Uic(env.Glob('*.ui')) - -lib = env.SharedLibrary('installerBAIN', env.Glob('*.cpp')) -env.InstallModule(lib) - -res = env['QT_USED_MODULES'] -Return('res') diff --git a/src/baincomplexinstallerdialog.cpp b/src/baincomplexinstallerdialog.cpp index a2a0ec5..2c25d76 100644 --- a/src/baincomplexinstallerdialog.cpp +++ b/src/baincomplexinstallerdialog.cpp @@ -16,13 +16,14 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ - -#include "baincomplexinstallerdialog.h" -#include "textviewer.h" #include "ui_baincomplexinstallerdialog.h" #include +#include + +#include "baincomplexinstallerdialog.h" + using namespace MOBase; BainComplexInstallerDialog::BainComplexInstallerDialog( diff --git a/src/baincomplexinstallerdialog.h b/src/baincomplexinstallerdialog.h index a88cb11..f657627 100644 --- a/src/baincomplexinstallerdialog.h +++ b/src/baincomplexinstallerdialog.h @@ -20,10 +20,9 @@ along with Mod Organizer. If not, see . #ifndef BAINCOMPLEXINSTALLERDIALOG_H #define BAINCOMPLEXINSTALLERDIALOG_H -#include "ifiletree.h" -#include - -#include "tutorabledialog.h" +#include +#include +#include namespace Ui { diff --git a/src/installerBAIN.pro b/src/installerBAIN.pro deleted file mode 100644 index 6b89510..0000000 --- a/src/installerBAIN.pro +++ /dev/null @@ -1,39 +0,0 @@ -#------------------------------------------------- -# -# Project created by QtCreator 2013-01-01T18:46:50 -# -#------------------------------------------------- - -TARGET = installerBAIN -TEMPLATE = lib - -CONFIG += plugins -CONFIG += dll - -CONFIG(release, debug|release) { - QMAKE_CXXFLAGS += /Zi - QMAKE_LFLAGS += /DEBUG -} - -greaterThan(QT_MAJOR_VERSION, 4) { - QT += widgets declarative script -} else { - QT += declarative script -} - -DEFINES += INSTALLERBAIN_LIBRARY - -SOURCES += installerbain.cpp \ - baincomplexinstallerdialog.cpp - -HEADERS += installerbain.h \ - baincomplexinstallerdialog.h - -include(../plugin_template.pri) - -FORMS += \ - baincomplexinstallerdialog.ui - -OTHER_FILES += \ - installerbain.json\ - SConscript diff --git a/src/installer_bain_en.ts b/src/installer_bain_en.ts index 154c6d6..fe78e5d 100644 --- a/src/installer_bain_en.ts +++ b/src/installer_bain_en.ts @@ -60,22 +60,22 @@ If there is a component called "00 Core" it is usually required. Optio InstallerBAIN - + BAIN Installer - + Installer for BAIN archives (originally targeting Wrye Bash) - + May be BAIN installer - + This installer looks like it may contain a BAIN installer but I'm not sure. Install as BAIN installer? diff --git a/src/installerbain.cpp b/src/installerbain.cpp index 67dad6d..d39590e 100644 --- a/src/installerbain.cpp +++ b/src/installerbain.cpp @@ -19,17 +19,16 @@ along with Mod Organizer. If not, see . #include "installerbain.h" -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include #include -#include - #include "baincomplexinstallerdialog.h" using namespace MOBase; @@ -82,8 +81,7 @@ bool InstallerBAIN::isManualInstaller() const return false; } -void InstallerBAIN::onInstallationStart(QString const& archive, bool reinstallation, - IModInterface* currentMod) +void InstallerBAIN::onInstallationStart(QString const&, bool, IModInterface* currentMod) { // We reset some field and fetch the previously installed options: m_InstallerUsed = false; diff --git a/src/installerbain.h b/src/installerbain.h index bcfaaa0..535a31a 100644 --- a/src/installerbain.h +++ b/src/installerbain.h @@ -20,14 +20,14 @@ along with Mod Organizer. If not, see . #ifndef INSTALLERBAIN_H #define INSTALLERBAIN_H -#include +#include class InstallerBAIN : public MOBase::IPluginInstallerSimple { Q_OBJECT Q_INTERFACES(MOBase::IPlugin MOBase::IPluginInstaller MOBase::IPluginInstallerSimple) #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) - Q_PLUGIN_METADATA(IID "org.tannin.InstallerBAIN" FILE "installerbain.json") + Q_PLUGIN_METADATA(IID "org.tannin.InstallerBAIN") #endif public: diff --git a/src/installerbain.json b/src/installerbain.json deleted file mode 100644 index 69a88e3..0000000 --- a/src/installerbain.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000..28051ad --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,15 @@ +{ + "features": { + "standalone": { + "description": "Build Standalone.", + "dependencies": ["mo2-cmake", "mo2-uibase"] + } + }, + "vcpkg-configuration": { + "default-registry": { + "kind": "git", + "repository": "https://github.com/ModOrganizer2/vcpkg-registry", + "baseline": "8beb2e0efa9c17dd6d17bb05288dd1e40727f673" + } + } +}