mirror of
https://github.com/ModOrganizer2/modorganizer.git
synced 2026-07-27 13:58:24 -07:00
Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08e0d85d85 | ||
|
|
2094d7d15f | ||
|
|
25a69bccd3 | ||
|
|
a39a80ec4c | ||
|
|
42d432e5aa | ||
|
|
acb55d431c | ||
|
|
95a2cc93b9 | ||
|
|
35a0474ac1 |
@@ -1,41 +0,0 @@
|
||||
---
|
||||
# We'll use defaults from the LLVM style, but with 4 columns indentation.
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 2
|
||||
---
|
||||
Language: Cpp
|
||||
DeriveLineEnding: false
|
||||
UseCRLF: true
|
||||
DerivePointerAlignment: false
|
||||
PointerAlignment: Left
|
||||
AlignConsecutiveAssignments: true
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLambdasOnASingleLine: Empty
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
AccessModifierOffset: -2
|
||||
AlignTrailingComments: true
|
||||
SpacesBeforeTrailingComments: 2
|
||||
NamespaceIndentation: Inner
|
||||
MaxEmptyLinesToKeep: 1
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: true
|
||||
AfterControlStatement: false
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: true
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
BeforeLambdaBody: false
|
||||
BeforeWhile: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: false
|
||||
SplitEmptyRecord: false
|
||||
SplitEmptyNamespace: true
|
||||
ColumnLimit: 88
|
||||
ForEachMacros: ['Q_FOREACH', 'foreach']
|
||||
@@ -1,2 +0,0 @@
|
||||
d13f6bb870cdda71257f665367be8ef9fca86255
|
||||
86bb01ba9eac879d3685c439ac9da0028bc4bc80
|
||||
@@ -1,7 +0,0 @@
|
||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||
* text=auto
|
||||
|
||||
# Explicitly declare text files you want to always be normalized and converted
|
||||
# to native line endings on checkout.
|
||||
*.cpp text eol=crlf
|
||||
*.h text eol=crlf
|
||||
@@ -2,7 +2,7 @@
|
||||
name: Game support Request
|
||||
about: Request support for a new game
|
||||
title: Add support for game [GAME NAME]
|
||||
labels: 'Feature Request, additional games support, area: mo2 game plugins'
|
||||
labels: 'additional games support, Feature Request, area: mo2 game plugins'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
@@ -18,7 +18,7 @@ assignees: ''
|
||||
- **Nexus ID [optional]:** ID of the game on Nexus (you can usually find this in Nexus URL).
|
||||
- **Executable:** Name of the main executable for the game (relative to the game folder).
|
||||
- **Launcher [optional]:** Name of the game launcher (relative to the game folder).
|
||||
- **Data path:** Path to the data folder of the game (relative to the game folder). Please note that the Virtual Files System often does not work for top level dlls or exe files.
|
||||
- **Data path:** Path to the data folder of the game (relative to the game folder).
|
||||
- **Documents path:** Path to folder containing INI files, etc., for the game (usually under "My Games", or the game folder itself).
|
||||
- **Saves directory [optional]:** Path to the folder containing save games (this default to the path above).
|
||||
- **Save extension [optional]:** Extension of the saves
|
||||
|
||||
@@ -8,7 +8,7 @@ assignees: ''
|
||||
---
|
||||
|
||||
## The problem:
|
||||
Briefly describe the issue you are experiencing. Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to our [Discord server](https://discord.gg/ewUVAqyrQX).
|
||||
Briefly describe the issue you are experiencing. Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to our [discord channel](https://discord.gg/5tCqt6V)
|
||||
|
||||
|
||||
## To Reproduce:
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
name: Build ModOrganizer 2
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: master
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
env:
|
||||
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
# https://learn.microsoft.com/en-us/vcpkg/consume/binary-caching-github-actions-cache
|
||||
- name: Export GitHub Actions cache environment variables
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 6.7.1
|
||||
modules: qtpositioning qtwebchannel qtwebengine qtwebsockets
|
||||
cache: true
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: "Set environmental variables"
|
||||
shell: bash
|
||||
run: |
|
||||
echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure ModOrganizer
|
||||
shell: pwsh
|
||||
run: |
|
||||
cmake --preset vs2022-windows-standalone `
|
||||
"-DCMAKE_PREFIX_PATH=${env:QT_ROOT_DIR}\msvc2019_64" `
|
||||
"-DCMAKE_INSTALL_PREFIX=install"
|
||||
|
||||
- name: Build ModOrganizer
|
||||
run: cmake --build vsbuild --config RelWithDebInfo --target INSTALL
|
||||
|
||||
- name: Package ModOrganizer
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: modorganizer
|
||||
path: ./install
|
||||
@@ -1,17 +0,0 @@
|
||||
name: Lint ModOrganizer 2
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Check format
|
||||
uses: ModOrganizer2/check-formatting-action@master
|
||||
with:
|
||||
check-path: "."
|
||||
exclude-regex: "third-party"
|
||||
@@ -12,6 +12,5 @@ edit
|
||||
/msbuild.log
|
||||
/*std*.log
|
||||
/*build
|
||||
.vscode
|
||||
|
||||
/src/version.aps
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
syntax: glob
|
||||
scons_configure.py
|
||||
scons-ModOrganizer-*
|
||||
ModOrganizer-build-desktop*
|
||||
outputd/*
|
||||
output/*
|
||||
build-ModOrganizer-*
|
||||
source/NCC/*/bin
|
||||
source/NCC/*/obj
|
||||
source/NCC/bin
|
||||
*.orig
|
||||
source/plugins/proxyPython/build
|
||||
staging/*
|
||||
source - Copy/*
|
||||
ModOrganizer-build-*
|
||||
pdbs/*
|
||||
source/NCC/BossDummy.x/*
|
||||
*.ts
|
||||
staging_prepare/*
|
||||
staging_trans/*
|
||||
tools/python_zip/*
|
||||
Makefile
|
||||
html
|
||||
*.vcxproj
|
||||
*.pdb
|
||||
*.dll
|
||||
*.exp
|
||||
*.tlog
|
||||
*.user
|
||||
*.obj
|
||||
*.suo
|
||||
*.sln
|
||||
*.log
|
||||
*.filters
|
||||
*.lib
|
||||
source/organizer/resources/contents/icons
|
||||
source/plugins/build-*
|
||||
*/GeneratedFiles/*
|
||||
translations/*
|
||||
source/LocalPaths.pri
|
||||
source/*/Win32/Debug/*
|
||||
source/plugins/*/Win32/Debug/*
|
||||
*~
|
||||
syntax: regexp
|
||||
Makefile\.(Debug|Release)
|
||||
source/.*/debug/.*
|
||||
+12
-9
@@ -1,17 +1,20 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# TODO: clean include directives
|
||||
set(MO2_CMAKE_DEPRECATED_UIBASE_INCLUDE ON)
|
||||
|
||||
project(organizer)
|
||||
set(project_type exe)
|
||||
set(executable_name ModOrganizer)
|
||||
set(enable_warnings OFF)
|
||||
|
||||
find_package(mo2-cmake CONFIG REQUIRED)
|
||||
# appveyor does not build modorganizer in its standard location, so use
|
||||
# DEPENDENCIES_DIR to find cmake_common
|
||||
if(DEFINED DEPENDENCIES_DIR)
|
||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/project.cmake)
|
||||
else()
|
||||
include(../cmake_common/project.cmake)
|
||||
endif()
|
||||
|
||||
set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
|
||||
set(additional_translations ${uibase_path}/src)
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(themes)
|
||||
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT organizer)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dump_running_process.bat DESTINATION ${MO2_INSTALL_BIN})
|
||||
install(FILES dump_running_process.bat DESTINATION bin)
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"binaryDir": "${sourceDir}/vsbuild",
|
||||
"architecture": {
|
||||
"strategy": "set",
|
||||
"value": "x64"
|
||||
},
|
||||
"cacheVariables": {
|
||||
"CMAKE_CXX_FLAGS": "/EHsc /MP /W3",
|
||||
"VCPKG_TARGET_TRIPLET": {
|
||||
"type": "STRING",
|
||||
"value": "x64-windows-static-md"
|
||||
}
|
||||
},
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"inherits": ["cmake-dev", "vcpkg"],
|
||||
"name": "vs2022-windows",
|
||||
"toolset": "v143"
|
||||
},
|
||||
{
|
||||
"cacheVariables": {
|
||||
"VCPKG_MANIFEST_FEATURES": {
|
||||
"type": "STRING",
|
||||
"value": "standalone"
|
||||
},
|
||||
"MO2_INSTALL_IS_BIN": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
}
|
||||
},
|
||||
"inherits": "vs2022-windows",
|
||||
"name": "vs2022-windows-standalone"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
+713
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,77 @@
|
||||
version: dev-appveyor{build}
|
||||
skip_branch_with_pr: true
|
||||
image: Visual Studio 2019
|
||||
init:
|
||||
- ps: >-
|
||||
# define build version depending on nightly or normal build
|
||||
|
||||
if($env:APPVEYOR_SCHEDULED_BUILD -eq 'True'){
|
||||
$timestamp= Get-Date -Format "ddMMyyyy-HHmm"
|
||||
Update-AppveyorBuild -Version "$($env:MO_VERSION)$($env:VER_STUB_NIGHTLY)$timestamp"
|
||||
} else {
|
||||
Update-AppveyorBuild -Version "$($env:MO_VERSION)$($env:VER_STUB_NORMAL)$($env:APPVEYOR_BUILD_NUMBER)"
|
||||
}
|
||||
|
||||
Write-Host Build version set to: $env:APPVEYOR_BUILD_VERSION
|
||||
environment:
|
||||
WEBHOOK_URL:
|
||||
secure: gOKbXaZM9ImtMD5XrYITvdyZUW/az082G9OIN1EC1VaKiI9iefpxhBavJ6Al6CzIZvQ+3pxnLqjmNgA7cDc22wcj2kB4hSG5qhbTI8wGa8jLQ5L65nuRZ3vrIqghBz9G3GLglgZkg6eqH9r3Kqc6UzcpCGzxxPOqm550nRcIiUU=
|
||||
MO_VERSION: 2.4.0
|
||||
VER_STUB_NORMAL: dev-appveyor-
|
||||
VER_STUB_NIGHTLY: dev-nightly-
|
||||
build_script:
|
||||
- pwsh: >-
|
||||
# Maintenance comments:
|
||||
|
||||
# APPVEYOR_BUILD_FOLDER= "c:\projects\modorganizer-slug"
|
||||
|
||||
# -Need to update py3 version used to invoke unimake.py once in a while.
|
||||
|
||||
# -Need update MO_VERSION env variable after each release.
|
||||
|
||||
# -Always clones umbrella master
|
||||
|
||||
# -Will checkout all the branches matching the one that triggered the build on the main repo.
|
||||
|
||||
# End comments.
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
git clone --depth=1 --no-single-branch https://github.com/ModOrganizer2/modorganizer-umbrella.git c:\projects\modorganizer-umbrella
|
||||
|
||||
New-Item -ItemType Directory -Path ${env:APPVEYOR_BUILD_FOLDER}\modorganizer-build
|
||||
|
||||
cd c:\projects\modorganizer-umbrella
|
||||
|
||||
($env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH -eq $null) ? ($branch = $env:APPVEYOR_REPO_BRANCH) : ($branch = $env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH)
|
||||
|
||||
git checkout $(git show-ref --verify --quiet refs/remotes/origin/${branch} || echo '-b') ${branch}
|
||||
|
||||
C:\Python38-x64\python.exe unimake.py -d ${env:APPVEYOR_BUILD_FOLDER}\modorganizer-build -s Appveyor_Build=True -s Feature_Branch=${env:APPVEYOR_REPO_BRANCH} -s override_build_version=${env:APPVEYOR_BUILD_VERSION}
|
||||
|
||||
if($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode ) }
|
||||
test: off
|
||||
artifacts:
|
||||
- path: '\modorganizer-build\install\bin\ModOrganizer.exe'
|
||||
name: Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
||||
- path: '\modorganizer-build\install\pdb\ModOrganizer.pdb'
|
||||
name: PDB-Mod.Organizer-$(APPVEYOR_BUILD_VERSION)
|
||||
deploy: off
|
||||
on_success:
|
||||
- ps: >-
|
||||
Set-Location -Path $env:APPVEYOR_BUILD_FOLDER
|
||||
|
||||
Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1
|
||||
|
||||
if($env:APPVEYOR_SCHEDULED_BUILD -ne 'True'){
|
||||
./send.ps1 success $env:WEBHOOK_URL
|
||||
}
|
||||
on_failure:
|
||||
- ps: >-
|
||||
Set-Location -Path $env:APPVEYOR_BUILD_FOLDER
|
||||
|
||||
Invoke-RestMethod https://raw.githubusercontent.com/DiscordHooks/appveyor-discord-webhook/master/send.ps1 -o send.ps1
|
||||
|
||||
if($env:APPVEYOR_SCHEDULED_BUILD -ne 'True'){
|
||||
./send.ps1 failure $env:WEBHOOK_URL
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
[
|
||||
|
||||
# for boost???
|
||||
# These are probably correct but might need a revisit as if you look at the boost documentation pages, it
|
||||
# can give you huge lists of alternate includes...
|
||||
{ symbol: [ "BOOST_FOREACH", "private", "<boost/foreach.hpp>", "public" ] },
|
||||
|
||||
{ include: [ "@\"boost/bind/.*\"", "private", "<boost/bind.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/algorithm/string/.*\"", "private", "<boost/algorithm/string.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/assign/.*\"", "private", "<boost/assign.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/filesystem/.*\"", "private", "<boost/filesystem.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/format/.*\"", "private", "<boost/format.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/function/.*\"", "private", "<boost/function.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/local/.*\"", "private", "<boost/locale.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/python/.*\"", "private", "<boost/python.hpp>", "public" ] },
|
||||
{ include: [ "@\"boost/signals2/.*\"", "private", "<boost/signals2.hpp>", "public" ] },
|
||||
{ include: [ "\"boost/smart_ptr/scoped_array.hpp\"", "private", "<boost/scoped_array.hpp>", "public" ] },
|
||||
{ include: [ "\"boost/smart_ptr/shared_ptr.hpp\"", "private", "<boost/shared_ptr.hpp>", "public" ] },
|
||||
# this appears to be excessive
|
||||
#{ include: [ "@\"boost/thread/.*\"", "private", "<boost/thread.hpp>", "public" ] },
|
||||
|
||||
# And this is specific to us
|
||||
{ include: [ "\"appconfig.inc\"", "private", "\"appconfig.h\"", "public" ] },
|
||||
|
||||
]
|
||||
|
||||
# Ones I don't yet know how to deal with
|
||||
#include "boost/fusion/container/vector/vector10_fwd.hpp" // for fusion
|
||||
#include "boost/iterator/iterator_facade.hpp" // for operator!=
|
||||
#include "boost/iterator/iterator_facade.hpp"
|
||||
@@ -12,7 +12,7 @@ The project took up speed again after a few more coders showed up in late 2017,
|
||||
## Help Wanted!
|
||||
Mod Organizer 2 is an open project in the hands of the community, there are problems that need to be solved and things that could be added. MO2 really needs developers and if you have the programming skills and some free time you can really improve the experience of the modding community.
|
||||
|
||||
To have more information, please join the open MO2 Development discord server: [Mod Organizer 2](https://discord.gg/ewUVAqyrQX)
|
||||
To have more information, please join the open MO2 Development discord server: [Mod Organizer 2](https://discord.gg/vD2ZbfX)
|
||||
If you want to help translate MO2 to your language you should join the discord server too and head to the #translation channel.
|
||||
To setup a development environment on your machine, there is the [mob project](https://github.com/modorganizer2/mob) that handles that.
|
||||
If you want to submit your code changes, please use a good formatting style like the default one in Visual Studio.
|
||||
@@ -20,7 +20,7 @@ If you want to submit your code changes, please use a good formatting style like
|
||||
Through the work of a few people of the community MO2 has come quite far, now it needs some more of those people to go further.
|
||||
|
||||
## Reporting Issues:
|
||||
Issues should be reported to the GitHub page or on the open discord server: [Mod Organizer 2](https://discord.gg/ewUVAqyrQX). Here is also where dev builds are tested, bugs are reported and investigated, suggestions are discussed and a lot more.
|
||||
Issues should be reported to the GitHub page or on the open discord server: [Mod Organizer 2](https://discord.gg/vD2ZbfX). Here is also where dev builds are tested, bugs are reported and investigated, suggestions are discussed and a lot more.
|
||||
|
||||
Credits to Tannin, LePresidente, Silarn, erasmux, AL12, LostDragonist, AnyOldName3, isa, Holt59 and many others for the development.
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# This python script contains the configuration for scons
|
||||
# Copy this to scons_configure.py and adjust to taste.
|
||||
|
||||
# Path to your boost install - it should have a boost/ subdirectory and a stage/
|
||||
# subdirectory. The scons script will use stage/lib if there, or the appropriate
|
||||
# version for your compiler, if you installed the multiple-build version
|
||||
BOOSTPATH = r"C:\Apps\boost_1_55_0"
|
||||
|
||||
# Version of Visual Studio to use, if you wish to use a specific version. If you
|
||||
# don't specify a version, the latest will be picked.. See the scons manual for
|
||||
# supported values.
|
||||
#MSVC_VERSION = '10.0Exp'
|
||||
|
||||
# Path to your python install
|
||||
# You don't really need to set this up but you might if (say) you have a 32- and
|
||||
# 64-bit python install and scons has been installed for the 64 bit version
|
||||
#PYTHONPATH=r"C:\Apps\Python"
|
||||
|
||||
# Path to your QT install. This might constrain the version of MSVC you can use.
|
||||
# This seems to be set by QTCreator
|
||||
#QTDIR = r"C:\Apps\Qt\4.8.6"
|
||||
|
||||
# Path to 7-zip sources
|
||||
SEVENZIPPATH = r"C:\Apps\7-Zip\7z920"
|
||||
|
||||
# Path to zlib. Please read the README file for more information about how this
|
||||
# needs to be set up
|
||||
ZLIBPATH = r"C:\Apps\zlib-1.2.8"
|
||||
|
||||
# Source control programs. Sadly I can't get this information from qt, even
|
||||
# though you have to set it up in the configuration
|
||||
GIT = r"C:\Program Files\git\bin\git.exe"
|
||||
MERCURIAL = r"C:\Program Files\TortoiseHg\hg.exe"
|
||||
+57
-141
@@ -1,101 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
find_package(mo2-cmake CONFIG REQUIRED)
|
||||
|
||||
find_package(usvfs CONFIG REQUIRED)
|
||||
|
||||
find_package(mo2-uibase CONFIG REQUIRED)
|
||||
find_package(mo2-archive CONFIG REQUIRED)
|
||||
find_package(mo2-lootcli-header CONFIG REQUIRED)
|
||||
find_package(mo2-bsatk CONFIG REQUIRED)
|
||||
find_package(mo2-esptk CONFIG REQUIRED)
|
||||
find_package(mo2-dds-header CONFIG REQUIRED)
|
||||
find_package(mo2-libbsarch CONFIG REQUIRED)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS WebEngineWidgets WebSockets)
|
||||
find_package(Boost CONFIG REQUIRED COMPONENTS program_options thread interprocess signals2 uuid accumulators)
|
||||
find_package(7zip CONFIG REQUIRED)
|
||||
find_package(lz4 CONFIG REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
|
||||
add_executable(organizer)
|
||||
set_target_properties(organizer PROPERTIES
|
||||
OUTPUT_NAME "ModOrganizer"
|
||||
WIN32_EXECUTABLE TRUE)
|
||||
|
||||
# disable translations because we want to be able to install somewhere else if
|
||||
# required
|
||||
mo2_configure_target(organizer WARNINGS 3 TRANSLATIONS OFF)
|
||||
|
||||
# we add translations "manually" to handle MO2_INSTALL_IS_BIN
|
||||
mo2_add_translations(organizer
|
||||
INSTALL_RELEASE
|
||||
INSTALL_DIRECTORY "${MO2_INSTALL_BIN}/translations"
|
||||
SOURCES ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
mo2_set_project_to_run_from_install(
|
||||
organizer EXECUTABLE ${CMAKE_INSTALL_PREFIX}/${MO2_INSTALL_BIN}/ModOrganizer.exe)
|
||||
|
||||
target_link_libraries(organizer PRIVATE
|
||||
Shlwapi Bcrypt
|
||||
usvfs::usvfs mo2::uibase mo2::archive mo2::libbsarch
|
||||
mo2::bsatk mo2::esptk mo2::lootcli-header
|
||||
Boost::program_options Boost::signals2 Boost::uuid Boost::accumulators
|
||||
Qt6::WebEngineWidgets Qt6::WebSockets Version Dbghelp)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt6"
|
||||
DESTINATION ${MO2_INSTALL_BIN}/dlls
|
||||
CONFIGURATIONS Release RelWithDebInfo
|
||||
RENAME dlls.manifest)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.debug.qt6"
|
||||
DESTINATION ${MO2_INSTALL_BIN}/dlls
|
||||
CONFIGURATIONS Debug
|
||||
RENAME dlls.manifest)
|
||||
|
||||
if (NOT MO2_SKIP_TUTORIALS_INSTALL)
|
||||
install(
|
||||
DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tutorials"
|
||||
DESTINATION ${MO2_INSTALL_BIN})
|
||||
# appveyor does not build modorganizer in its standard location, so use
|
||||
# DEPENDENCIES_DIR to find cmake_common
|
||||
if(DEFINED DEPENDENCIES_DIR)
|
||||
include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/src.cmake)
|
||||
else()
|
||||
include(../cmake_common/src.cmake)
|
||||
endif()
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html"
|
||||
DESTINATION ${MO2_INSTALL_BIN}/resources)
|
||||
|
||||
# install ModOrganizer.exe itself
|
||||
install(FILES $<TARGET_FILE:organizer> DESTINATION ${MO2_INSTALL_BIN})
|
||||
|
||||
# install dependencies DLLs
|
||||
install(FILES $<TARGET_FILE:mo2::libbsarch> DESTINATION ${MO2_INSTALL_BIN}/dlls)
|
||||
install(FILES $<TARGET_FILE:mo2::archive> DESTINATION ${MO2_INSTALL_BIN}/dlls)
|
||||
install(FILES $<TARGET_FILE:7zip::7zip> DESTINATION ${MO2_INSTALL_BIN}/dlls)
|
||||
|
||||
# this may copy over the ones from uibase/usvfs
|
||||
# - when building with mob, this should not matter as the files should be identical
|
||||
# - when building standalone, this should help having matching USVFS DLL between the
|
||||
# build and the installation
|
||||
# - this may cause issue with uibase in standalone mode if the installed version does
|
||||
# not match the one used for the build, but there would be other issue anyway (e.g.
|
||||
# different uibase.dll between modorganizer and plugins)
|
||||
#
|
||||
install(FILES
|
||||
$<TARGET_FILE:mo2::uibase>
|
||||
$<TARGET_FILE:usvfs_x64::usvfs_dll>
|
||||
$<TARGET_FILE:usvfs_x86::usvfs_dll>
|
||||
$<TARGET_FILE:usvfs_x64::usvfs_proxy>
|
||||
$<TARGET_FILE:usvfs_x86::usvfs_proxy>
|
||||
DESTINATION ${MO2_INSTALL_BIN})
|
||||
|
||||
# do not install PDB if CMAKE_INSTALL_PREFIX is "bin"
|
||||
if (NOT MO2_INSTALL_IS_BIN)
|
||||
install(FILES $<TARGET_PDB_FILE:organizer> DESTINATION pdb)
|
||||
endif()
|
||||
|
||||
mo2_deploy_qt(
|
||||
DIRECTORY ${MO2_INSTALL_BIN}
|
||||
BINARIES ModOrganizer.exe $<TARGET_FILE_NAME:mo2::uibase>)
|
||||
|
||||
# set source groups for VS
|
||||
mo2_add_filter(NAME src/application GROUPS
|
||||
add_filter(NAME src/application GROUPS
|
||||
iuserinterface
|
||||
commandline
|
||||
main
|
||||
@@ -107,46 +21,29 @@ mo2_add_filter(NAME src/application GROUPS
|
||||
updatedialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/browser GROUPS
|
||||
add_filter(NAME src/browser GROUPS
|
||||
browserdialog
|
||||
browserview
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/categories GROUPS
|
||||
add_filter(NAME src/core GROUPS
|
||||
categories
|
||||
categoriestable
|
||||
categoriesdialog
|
||||
categoryimportdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/core GROUPS
|
||||
archivefiletree
|
||||
github
|
||||
inibakery
|
||||
installationmanager
|
||||
nexusinterface
|
||||
nxmaccessmanager
|
||||
organizercore
|
||||
plugincontainer
|
||||
apiuseraccount
|
||||
processrunner
|
||||
qdirfiletree
|
||||
virtualfiletree
|
||||
uilocker
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/extensions GROUPS
|
||||
game_features
|
||||
thememanager
|
||||
translationmanager
|
||||
extensionmanager
|
||||
extensionwatcher
|
||||
pluginmanager
|
||||
proxyqt
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/dialogs GROUPS
|
||||
add_filter(NAME src/dialogs GROUPS
|
||||
aboutdialog
|
||||
activatemodsdialog
|
||||
categoriesdialog
|
||||
credentialsdialog
|
||||
filedialogmemory
|
||||
forcedloaddialog
|
||||
@@ -164,13 +61,14 @@ mo2_add_filter(NAME src/dialogs GROUPS
|
||||
waitingonclosedialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/downloads GROUPS
|
||||
add_filter(NAME src/downloads GROUPS
|
||||
downloadlist
|
||||
downloadlistview
|
||||
downloadmanager
|
||||
downloadmanager2
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/env GROUPS
|
||||
add_filter(NAME src/env GROUPS
|
||||
env
|
||||
envdump
|
||||
envfs
|
||||
@@ -182,24 +80,24 @@ mo2_add_filter(NAME src/env GROUPS
|
||||
envwindows
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/executables GROUPS
|
||||
add_filter(NAME src/executables GROUPS
|
||||
executableslist
|
||||
editexecutablesdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/instances GROUPS
|
||||
add_filter(NAME src/instances GROUPS
|
||||
createinstancedialog
|
||||
createinstancedialogpages
|
||||
instancemanager
|
||||
instancemanagerdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/loot GROUPS
|
||||
add_filter(NAME src/loot GROUPS
|
||||
loot
|
||||
lootdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/mainwindow GROUPS
|
||||
add_filter(NAME src/mainwindow GROUPS
|
||||
datatab
|
||||
downloadstab
|
||||
iconfetcher
|
||||
@@ -211,7 +109,7 @@ mo2_add_filter(NAME src/mainwindow GROUPS
|
||||
statusbar
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modinfo GROUPS
|
||||
add_filter(NAME src/modinfo GROUPS
|
||||
modinfo
|
||||
modinfobackup
|
||||
modinfoforeign
|
||||
@@ -221,7 +119,7 @@ mo2_add_filter(NAME src/modinfo GROUPS
|
||||
modinfowithconflictinfo
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modinfo/dialog GROUPS
|
||||
add_filter(NAME src/modinfo/dialog GROUPS
|
||||
modinfodialog
|
||||
modinfodialogcategories
|
||||
modinfodialogconflicts
|
||||
@@ -235,18 +133,18 @@ mo2_add_filter(NAME src/modinfo/dialog GROUPS
|
||||
modinfodialogtextfiles
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modinfo/dialog/widgets GROUPS
|
||||
add_filter(NAME src/modinfo/dialog/widgets GROUPS
|
||||
modidlineedit
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modlist GROUPS
|
||||
add_filter(NAME src/modlist GROUPS
|
||||
modlist
|
||||
modlistdropinfo
|
||||
modlistsortproxy
|
||||
modlistbypriorityproxy
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/modlist/view GROUPS
|
||||
add_filter(NAME src/modlist/view GROUPS
|
||||
filterlist
|
||||
modlistview
|
||||
modlistviewactions
|
||||
@@ -257,35 +155,33 @@ mo2_add_filter(NAME src/modlist/view GROUPS
|
||||
modlistversiondelegate
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/plugins GROUPS
|
||||
add_filter(NAME src/plugins GROUPS
|
||||
pluginlist
|
||||
pluginlistsortproxy
|
||||
pluginlistview
|
||||
pluginlistcontextmenu
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/previews GROUPS
|
||||
add_filter(NAME src/previews GROUPS
|
||||
previewdialog
|
||||
previewgenerator
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/profiles GROUPS
|
||||
add_filter(NAME src/profiles GROUPS
|
||||
profile
|
||||
profileinputdialog
|
||||
profilesdialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/proxies GROUPS
|
||||
add_filter(NAME src/proxies GROUPS
|
||||
downloadmanagerproxy
|
||||
gamefeaturesproxy
|
||||
modlistproxy
|
||||
extensionlistproxy
|
||||
organizerproxy
|
||||
pluginlistproxy
|
||||
proxyutils
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/register GROUPS
|
||||
add_filter(NAME src/register GROUPS
|
||||
shared/directoryentry
|
||||
shared/fileentry
|
||||
shared/filesorigin
|
||||
@@ -295,28 +191,25 @@ mo2_add_filter(NAME src/register GROUPS
|
||||
directoryrefresher
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/settings GROUPS
|
||||
extensionsettings
|
||||
add_filter(NAME src/settings GROUPS
|
||||
settings
|
||||
settingsutilities
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/settingsdialog GROUPS
|
||||
add_filter(NAME src/settingsdialog GROUPS
|
||||
settingsdialog
|
||||
settingsdialogdiagnostics
|
||||
settingsdialoggeneral
|
||||
settingsdialognexus
|
||||
settingsdialogpaths
|
||||
settingsdialogextensions
|
||||
settingsdialogextensionrow
|
||||
settingsdialogextensioninfo
|
||||
settingsdialogplugins
|
||||
settingsdialogworkarounds
|
||||
settingsdialogmodlist
|
||||
settingsdialogtheme
|
||||
disableproxyplugindialog
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/utilities GROUPS
|
||||
add_filter(NAME src/utilities GROUPS
|
||||
shared/appconfig
|
||||
bbcode
|
||||
csvbuilder
|
||||
@@ -331,7 +224,7 @@ mo2_add_filter(NAME src/utilities GROUPS
|
||||
glob_matching
|
||||
)
|
||||
|
||||
mo2_add_filter(NAME src/widgets GROUPS
|
||||
add_filter(NAME src/widgets GROUPS
|
||||
colortable
|
||||
genericicondelegate
|
||||
filerenamer
|
||||
@@ -346,3 +239,26 @@ mo2_add_filter(NAME src/widgets GROUPS
|
||||
modelutils
|
||||
copyeventfilter
|
||||
)
|
||||
|
||||
|
||||
requires_project(game_features githubpp bsatk esptk archive usvfs)
|
||||
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
${modorganizer_super_path}/lootcli/include
|
||||
)
|
||||
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/dlls.manifest.qt5"
|
||||
DESTINATION bin/dlls
|
||||
RENAME dlls.manifest)
|
||||
|
||||
install(FILES ${qm_files} DESTINATION bin/translations)
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/stylesheets"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/tutorials"
|
||||
DESTINATION bin)
|
||||
|
||||
deploy_qt(BINARIES ModOrganizer.exe uibase.dll plugins/bsa_packer.dll)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../qdds.dll" DESTINATION bin/dlls/imageformats)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/resources/markdown.html" DESTINATION bin/resources)
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS = bsatk \
|
||||
shared \
|
||||
uibase \
|
||||
esptk \
|
||||
organizer \
|
||||
hookdll \
|
||||
archive \
|
||||
helper \
|
||||
plugins \
|
||||
nxmhandler \
|
||||
BossDummy \
|
||||
pythonRunner \
|
||||
loot_cli
|
||||
|
||||
pythonRunner.depends = uibase
|
||||
plugins.depends = pythonRunner uibase
|
||||
hookdll.depends = shared
|
||||
organizer.depends = shared uibase plugins
|
||||
|
||||
CONFIG(debug, debug|release) {
|
||||
DESTDIR = $$PWD/../outputd
|
||||
} else {
|
||||
DESTDIR = $$PWD/../output
|
||||
}
|
||||
|
||||
STATICDATAPATH = $${DESTDIR}\\..\\tools\\static_data\\dlls
|
||||
DLLSPATH = $${DESTDIR}\\dlls
|
||||
|
||||
otherlibs.path = $$DLLSPATH
|
||||
otherlibs.files += $${STATICDATAPATH}\\7z.dll \
|
||||
$${BOOSTPATH}\\stage\\lib\\boost_python-vc*-mt-1*.dll
|
||||
|
||||
qtlibs.path = $$DLLSPATH
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
QTLIBNAMES += Core Gui Network OpenGL Script Sql Svg Qml Quick Webkit Widgets Xml XmlPatterns
|
||||
} else {
|
||||
QTLIBNAMES += Core Declarative Gui Network OpenGL Script Sql Svg Webkit Xml XmlPatterns
|
||||
}
|
||||
|
||||
QTLIBSUFFIX = $${QT_MAJOR_VERSION}.dll
|
||||
CONFIG(debug, debug|release): QTLIBSUFFIX = "d$${QTLIBSUFFIX}" # Can't use Debug: .. here, it ignores the line - no idea why, as it works in BossDummy.pro
|
||||
|
||||
for(QTNAME, QTLIBNAMES) {
|
||||
QTFILE = Qt$${QTNAME}
|
||||
qtlibs.files += $$[QT_INSTALL_BINS]\\$${QTFILE}$${QTLIBSUFFIX}
|
||||
}
|
||||
|
||||
INSTALLS += qtlibs otherlibs
|
||||
|
||||
OTHER_FILES +=\
|
||||
../SConstruct\
|
||||
../scons_configure.py\
|
||||
SConscript
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user