Author SHA1 Message Date
Mikaël Capelle 9f97e0f1c7 Merge remote-tracking branch 'origin/master' into dev/extensions 2025-05-29 17:51:43 +02:00
Mikaël Capelle 621daac2ec Update README. (#152) 2025-05-29 11:59:34 +02:00
Mikaël CapelleandJeremy Rimpo 044a158340 Enable move to VCPKG (#142)
* Use CMake with presets to generate USVFS solution.
* Use preset when building super repository.
* Allow overriding VCPKG_ROOT with [paths] entry.
* Remove non needed stuff (gamebryo, nuget, third party dependencies, etc.).
* Use VCPKG from VS if no VCPKG_ROOT or path setting.
* Remove uibase from releases.

---------

Co-authored-by: Jeremy Rimpo <jrim@rimpo.org>
2025-05-29 10:48:30 +02:00
Matthew William Noel c29b1adca1 Update Qt version in build instructions (#151) 2025-05-24 09:33:14 +02:00
Mikaël Capelle ec6bb2a177 Add fallout london to build. (#150) 2025-05-23 14:03:40 +02:00
Mikaël Capelle bd6a03d2f8 Add VCPKG support for USVFS. (#149) 2025-05-22 19:02:43 +02:00
Jeremy Rimpo 1087129aac Dependency Update Meta PR (#148) 2025-05-21 17:46:44 +02:00
Jonathan Feenstra 237bd6ab5e Update readme.md for Qt 6.7.1, fix quick start commands (#146)
This also removes the `> ` before the commands to make copying and pasting more convenient.
2024-09-09 16:31:25 +02:00
Mikaël Capelle b6d75fd1a3 Add plugin_python to base translations. 2024-08-10 10:57:01 +02:00
Mikaël Capelle c9882c7d99 Add uibase to the base translations. 2024-08-09 20:53:44 +02:00
Mikaël Capelle 41bb2a3032 Fix issues with translations. 2024-08-09 17:44:38 +02:00
Mikaël Capelle 0d6a130ef8 Move to VCPKG.
* Use CMake with presets to generate USVFS solution.
* Use preset when building super repository.
* Allow overriding VCPKG_ROOT with [paths] entry.
* Remove gamebryo and nuget specific stuff.
* Remove cmake command. Add done log.
* Use VCPKG from VS if no VCPKG_ROOT or path setting.
2024-08-09 17:12:46 +02:00
Mikaël Capelle b3c66b3221 Bump Qt to 6.7.1. (#145) 2024-07-20 15:42:40 +02:00
Mikaël Capelle 9f1b33f3bd Bump libbsarch to 0.0.12. (#144) 2024-07-11 11:17:03 +02:00
Jeremy Rimpo ec429c01d6 Update libloot to 0.23.0 (#143) 2024-07-11 07:20:09 +02:00
Mikaël Capelle eba5bf49bd Build DirectXTex with mob. (#140) 2024-07-01 17:20:59 +02:00
Jeremy Rimpo a308e75cf8 Update to libbsarch 0.0.10 (#138) 2024-07-01 17:20:36 +02:00
Mikaël Capelle f99e777433 Add -d option to mob cmake to build in debug mode. (#137) 2024-06-21 17:14:11 +02:00
Mikaël Capelle ecd210d700 More flexibility to build Debug components (#136)
* Build components in all variant for boost to avoid issue with USVFS.
* Build googletest in both Debug and Release.
* Allow build configurations other than RelWithDebInfo.
2024-06-15 22:19:35 +02:00
Mikaël Capelle d1965acd1a Remove option to use USVFS prebuilt. (#135) 2024-06-03 07:35:28 +02:00
Twinki 27483d6ddc Updated README for 6.7.0 (#134)
* Updated README for 6.7.0
2024-05-27 20:51:48 +02:00
Mikaël Capelle 73d7d3dd2b Use MO2 formatting action. (#133)
* Use MO2 formatting action.
* Fix format for clang-format 17.
2024-05-26 10:26:44 +02:00
Twinki 11dafd063b Update installation README (#131)
* Update installation README
2024-05-25 14:26:18 +02:00
Mikaël CapelleandJeremy Rimpo b0688f81b9 WIP: Upgrade dependencies. (#132)
* Upgrade dependencies.
* Upgrade to Python 3.12
* Remove fmt tasks switch from fmt to std::format internally.

---------

Co-authored-by: Jeremy Rimpo <jrim@rimpo.org>
2024-05-25 14:25:40 +02:00
Mikaël Capelle eaae1e44c9 Merge pull request #129 from ModOrganizer2/version_updates
libloot 0.22.3, openssl 3.2.0
2024-05-17 18:42:19 +02:00
Jeremy Rimpo 0cb5771762 libloot 0.22.3, openssl 3.2.0 2023-12-16 17:52:13 -06:00
Jeremy Rimpo 5ca1a76ff8 Merge pull request #128 from ModOrganizer2/style_updates
Update 6788-00 styles
2023-11-20 12:07:56 -06:00
Jeremy Rimpo a03d95fef4 Update 6788-00 styles 2023-11-19 19:24:37 -06:00
Jeremy Rimpo a835d167b2 Merge pull request #125 from ModOrganizer2/trosski_starfield
Add Trosski's Starfield theme
2023-11-14 14:18:40 -06:00
Jeremy Rimpo bd4f529078 Correct version and filename 2023-11-12 13:00:25 -06:00
Jeremy Rimpo 6b1b8ef6ea Merge pull request #126 from ModOrganizer2/version_updates
Version updates
2023-11-08 09:21:02 -06:00
Jeremy Rimpo 6cee3f2411 Add Trosski's Starfield theme 2023-11-07 23:52:08 -06:00
Jeremy Rimpo 80618cd3e1 Version updates 2023-11-07 23:48:04 -06:00
Jeremy Rimpo 5ff7221b80 Add Trosski's Starfield theme 2023-11-07 23:46:22 -06:00
Jeremy Rimpo 144548aef5 Merge pull request #124 from ModOrganizer2/loot_0_22
Bump to libloot 0.22.1
2023-10-18 12:45:33 -05:00
Jeremy Rimpo cdc666a1d5 Bump to libloot 0.22.1 2023-10-18 00:25:23 -05:00
Mikaël Capelle 2816871e93 Merge pull request #123 from ModOrganizer2/loot_0_22
Bump to libloot 0.22
2023-10-03 15:29:29 +02:00
Jeremy Rimpo 1b05181858 Bump to libloot 0.22 2023-10-02 15:14:55 -05:00
Mikaël Capelle b2eae1bd23 Merge pull request #122 from ModOrganizer2/dev/clean-and-fix
Cleaning and improvements
2023-09-24 20:15:28 +02:00
Mikaël Capelle 13ed5bcd26 Add option to bootstrap.ps1 for build config. 2023-09-24 10:08:57 +02:00
Mikaël Capelle 29eb8a7598 Simple precedence of task-specific config over pattern config. 2023-09-24 10:08:41 +02:00
Mikaël Capelle 7e08ce29c0 Use riverbank repository for building dev builds of PyQt6. 2023-09-24 09:37:42 +02:00
Mikaël Capelle 9fdf00417b Exclude version string from NMake stderr. 2023-09-24 09:36:06 +02:00
Mikaël Capelle ac15674069 Remove NCC patch. 2023-09-24 09:35:55 +02:00
Jeremy Rimpo b31d41b539 Fix openssl patch for python 3.11 2023-09-23 11:40:58 -05:00
Mikaël Capelle 09886da058 Merge pull request #121 from ModOrganizer2/dev/prebuilt-mob-repositories
Move prebuilt dependencies to mob repository.
2023-09-23 18:40:32 +02:00
Mikaël Capelle e03ea3854d Move prebuilt dependencies to mob repository. 2023-09-23 15:50:06 +02:00
Mikaël Capelle fe710715aa Merge pull request #120 from ModOrganizer2/dev/formatting-and-ci
Formatting and CI
2023-09-23 15:19:04 +02:00
Mikaël Capelle d7061cc18c Add Github workflows. 2023-09-23 15:12:55 +02:00
Mikaël Capelle e935d9adde Add .git-blame-ignore-revs. 2023-09-19 18:46:31 +02:00
Mikaël Capelle d0913d07d3 Apply formatting. 2023-09-19 18:46:15 +02:00
Mikaël Capelle 6b51c170c1 Merge pull request #119 from ModOrganizer2/dev/fix-vs-solution
Add headers to target to show them in VS.
2023-09-19 18:24:55 +02:00
Mikaël Capelle a4213dd4c6 Add headers to target to show them in VS. 2023-09-19 18:24:19 +02:00
Mikaël Capelle 9ebabacc32 Merge pull request #118 from ModOrganizer2/libloot_0_21
Update to libloot 0.21.0
2023-09-18 19:54:34 +02:00
Jeremy Rimpo 70983cb2e7 Update to libloot 0.21.0 2023-09-18 10:53:07 -05:00
Jeremy Rimpo d61079e1f6 Merge pull request #113 from ModOrganizer2/starfield
Starfield
2023-09-17 16:14:29 -05:00
Jeremy Rimpo 76e8c56235 Use PyQt dev build to fix bool issue 2023-09-15 21:06:59 -05:00
Jeremy Rimpo 10db7fe1a5 Merge remote-tracking branch 'origin/master' into starfield 2023-09-12 16:28:32 -05:00
Jeremy Rimpo 8afb96c229 Patch for python 3.11 2023-09-08 01:15:58 -05:00
Jeremy Rimpo 66539d7f1f Dependency updates
* Python 3.11.5
* Boost 1.83
* Targetting Qt 6.5 for best apparent stability
* Updates to Trosski styles
2023-09-08 01:15:09 -05:00
Mikaël Capelle 5f7c5eb1a2 Merge pull request #117 from ModOrganizer2/dev/better-bootstrap
Use cmake to generate solution and msbuild to build.
2023-09-06 18:50:47 +02:00
Mikaël Capelle 886dadfedb Use cmake to generate solution and msbuild to build. Add a verbosity flag. 2023-09-06 18:50:00 +02:00
Mikaël Capelle 66daf5054b Merge remote-tracking branch 'origin/master' into starfield 2023-09-06 18:30:43 +02:00
Mikaël Capelle 9aec5a70a8 Merge pull request #116 from ModOrganizer2/dev/run-bootstrap-ps1-different-folder
Allow running bootstrap.ps1 from a different folder.
2023-09-06 18:30:34 +02:00
Mikaël Capelle 42aef59f9e Allow running bootstrap.ps1 from a different folder. 2023-09-06 18:30:01 +02:00
Mikaël Capelle 7d1fdce8b5 Merge pull request #114 from ModOrganizer2/dev/cmake
Switch build process to CMake
2023-09-06 18:07:40 +02:00
Mikaël Capelle 45508c3d99 Organize files as trees in the generated VS solution. 2023-09-06 18:05:57 +02:00
Jeremy Rimpo 5cb43da0e5 Merge remote-tracking branch 'origin/qt6' 2023-09-04 22:35:53 -05:00
Jeremy Rimpo 858662e225 Update licenses 2023-09-04 19:56:48 -05:00
Jeremy Rimpo a30dd8399b Update openssl and pyqt versions 2023-09-04 17:55:21 -05:00
Jeremy Rimpo 3e4b31aebb Bump zlib to 1.3 2023-09-04 16:11:16 -05:00
Jeremy Rimpo e3401732c1 Bump Qt 2023-09-03 23:41:17 -05:00
Jeremy Rimpo 6284f7869f Add starfield to build 2023-09-03 23:41:01 -05:00
Mikael CAPELLE 95fa410e45 Use CMake to build. 2023-08-30 15:52:35 +02:00
96 changed files with 1335 additions and 16149 deletions
+1
View File
@@ -0,0 +1 @@
d0913d07d33929d7b753a3a09a0dac70e5befbc1
+16
View File
@@ -0,0 +1,16 @@
name: Build Mob
on:
push:
branches: master
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- name: Build Mob
shell: pwsh
run: ./bootstrap.ps1 -Verbose
+17
View File
@@ -0,0 +1,17 @@
name: Lint Mob
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"
+25
View File
@@ -0,0 +1,25 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
exclude: '^(third-party|licenses)/.*$'
- id: end-of-file-fixer
exclude: '^(third-party|licenses)/.*$'
- id: check-merge-conflict
exclude: '^(third-party|licenses)/.*$'
- id: check-case-conflict
exclude: '^(third-party|licenses)/.*$'
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.5
hooks:
- id: clang-format
'types_or': [c++, c]
exclude: '^third-party/.*$'
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
+6
View File
@@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.16)
project(mob)
add_subdirectory(src)
set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT mob)
+21 -6
View File
@@ -1,8 +1,20 @@
param(
[switch]
$Verbose,
[ValidateSet("Debug", "RelWithDebInfo", "Release")]
[string]
$Config = "Release"
)
$root = $PSScriptRoot $root = $PSScriptRoot
if (!$root) { if (!$root) {
$root = "." $root = "."
} }
$output = if ($Verbose) { "Out-Default" } else { "Out-Null" }
cmake -B $root/build -G "Visual Studio 17 2022" $root | & $output
$installationPath = & $root\third-party\bin\vswhere.exe -products * -nologo -prerelease -latest -property installationPath $installationPath = & $root\third-party\bin\vswhere.exe -products * -nologo -prerelease -latest -property installationPath
if (! $?) { if (! $?) {
Write-Error "vswhere returned $LastExitCode" Write-Error "vswhere returned $LastExitCode"
@@ -15,13 +27,16 @@ if (! $installationPath) {
} }
$opts = "" $opts = ""
$opts += " $root\vs\mob.sln" $opts += " $root\build\mob.sln"
$opts += " -m" $opts += " -m"
$opts += " -p:Configuration=Release" $opts += " -p:Configuration=${Config}"
$opts += " -noLogo" $opts += " -noLogo"
$opts += " -p:UseMultiToolTask=true" $opts += " -p:UseMultiToolTask=true"
$opts += " -p:EnforceProcessCountAcrossBuilds=true" $opts += " -p:EnforceProcessCountAcrossBuilds=true"
$opts += " -clp:ErrorsOnly;Verbosity=minimal"
if (!$Verbose) {
$opts += " -clp:ErrorsOnly;Verbosity=minimal"
}
$vsDevCmd = "$installationPath\Common7\Tools\VsDevCmd.bat" $vsDevCmd = "$installationPath\Common7\Tools\VsDevCmd.bat"
if (!(Test-Path "$vsDevCmd")) { if (!(Test-Path "$vsDevCmd")) {
@@ -36,5 +51,5 @@ if (! $?) {
exit $LastExitCode exit $LastExitCode
} }
Copy-Item "$root\build\Release\x64\mob.exe" "$root\mob.exe" Copy-Item "$root\build\src\${Config}\mob.exe" "$root\mob.exe"
echo "run ``.\mob -d prefix/path build`` to start building" Write-Output "run ``.\mob -d prefix/path build`` to start building"
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

+110 -49
View File
@@ -1,27 +1,28 @@
7-Zip 7-Zip source code
~~~~~ ~~~~~~~~~~~~~~~~~
License for use and distribution License for use and distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7-Zip Copyright (C) 1999-2023 Igor Pavlov. 7-Zip Copyright (C) 1999-2024 Igor Pavlov.
The licenses for files are: The licenses for files are:
1) 7z.dll: - CPP/7zip/Compress/Rar* files: the "GNU LGPL" with "unRAR license restriction"
- The "GNU LGPL" as main license for most of the code - CPP/7zip/Compress/LzfseDecoder.cpp: the "BSD 3-clause License"
- The "GNU LGPL" with "unRAR license restriction" for some code - C/ZstdDec.c: the "BSD 3-clause License"
- The "BSD 3-clause License" for some code - C/Xxh64.c: the "BSD 2-clause License"
2) All other files: the "GNU LGPL". - Some files are "public domain" files, if "public domain" status is stated in source file.
- the "GNU LGPL" for all other files. If there is no license information in
some source file, that file is under the "GNU LGPL".
Redistributions in binary form must reproduce related license information from this file. The "GNU LGPL" with "unRAR license restriction" means that you must follow both
"GNU LGPL" rules and "unRAR license restriction" rules.
Note:
You can use 7-Zip on any computer, including a computer in a commercial
organization. You don't need to register or pay for 7-Zip.
GNU LGPL information
--------------------
GNU LGPL information
--------------------
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public
@@ -33,58 +34,118 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You can receive a copy of the GNU Lesser General Public License from You should have received a copy of the GNU Lesser General Public
License along with this library; if not,
you can get a copy of the GNU Lesser General Public License from
http://www.gnu.org/ http://www.gnu.org/
BSD 3-clause License BSD 3-clause License in 7-Zip code
-------------------- ----------------------------------
The "BSD 3-clause License" is used for the code in 7z.dll that implements LZFSE data decompression. The "BSD 3-clause License" is used for the following code in 7z.dll
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc, 1) LZFSE data decompression.
that also uses the "BSD 3-clause License": CPP/7zip/Compress/LzfseDecoder.cpp.
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc,
that also uses the "BSD 3-clause License".
2) ZSTD data decompression.
C/ZstdDec.c
that code was developed using original zstd decoder code as reference code.
The original zstd decoder code was developed by Facebook Inc,
that also uses the "BSD 3-clause License".
---- Copyright (c) 2015-2016, Apple Inc. All rights reserved.
Copyright (c) 2015-2016, Apple Inc. All rights reserved. Copyright (c) Facebook, Inc. All rights reserved.
Copyright (c) 2023-2024 Igor Pavlov.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Text of the "BSD 3-clause License"
----------------------------------
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer 1. Redistributions of source code must retain the above copyright notice, this
in the documentation and/or other materials provided with the distribution. list of conditions and the following disclaimer.
3. Neither the name of the copyright holder(s) nor the names of any contributors may be used to endorse or promote products derived 2. Redistributions in binary form must reproduce the above copyright notice,
from this software without specific prior written permission. this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3. Neither the name of the copyright holder nor the names of its contributors may
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE be used to endorse or promote products derived from this software without
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES specific prior written permission.
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
---- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
unRAR license restriction BSD 2-clause License in 7-Zip code
------------------------- ----------------------------------
The decompression engine for RAR archives was developed using source The "BSD 2-clause License" is used for the XXH64 code in 7-Zip.
code of unRAR program. C/Xxh64.c
All copyrights to original unRAR code are owned by Alexander Roshal.
The license for original unRAR code has the following restriction: XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.
The unRAR sources cannot be used to re-create the RAR compression algorithm, Copyright (c) 2012-2021 Yann Collet.
which is proprietary. Distribution of modified unRAR sources in separate form Copyright (c) 2023-2024 Igor Pavlov.
or as a part of other software is permitted, provided that it is clearly
stated in the documentation and source comments that the code may Text of the "BSD 2-clause License"
not be used to develop a RAR (WinRAR) compatible archiver. ----------------------------------
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
--
Igor Pavlov
unRAR license restriction
-------------------------
The decompression engine for RAR archives was developed using source
code of unRAR program.
All copyrights to original unRAR code are owned by Alexander Roshal.
The license for original unRAR code has the following restriction:
The unRAR sources cannot be used to re-create the RAR compression algorithm,
which is proprietary. Distribution of modified unRAR sources in separate form
or as a part of other software is permitted, provided that it is clearly
stated in the documentation and source comments that the code may
not be used to develop a RAR (WinRAR) compatible archiver.
--
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Matthias Moeller 2016 m_moeller@live.de
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (c) 2012 - present, Victor Zverovich Copyright (c) 2012 - present, Victor Zverovich and {fmt} contributors
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the
+170 -118
View File
@@ -1,125 +1,177 @@
LICENSE ISSUES Apache License
============== Version 2.0, January 2004
https://www.apache.org/licenses/
The OpenSSL toolkit stays under a double license, i.e. both the conditions of TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
the OpenSSL License and the original SSLeay license apply to the toolkit.
See below for the actual license texts.
OpenSSL License 1. Definitions.
---------------
/* ==================================================================== "License" shall mean the terms and conditions for use, reproduction,
* Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. and distribution as defined by Sections 1 through 9 of this document.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
Original SSLeay License "Licensor" shall mean the copyright owner or entity authorized by
----------------------- the copyright owner that is granting the License.
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) "Legal Entity" shall mean the union of the acting entity and all
* All rights reserved. other entities that control, are controlled by, or are under common
* control with that entity. For the purposes of this definition,
* This package is an SSL implementation written "control" means (i) the power, direct or indirect, to cause the
* by Eric Young (eay@cryptsoft.com). direction or management of such entity, whether by contract or
* The implementation was written so as to conform with Netscapes SSL. otherwise, or (ii) ownership of fifty percent (50%) or more of the
* outstanding shares, or (iii) beneficial ownership of such entity.
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
+6 -6
View File
@@ -2,12 +2,12 @@ A. HISTORY OF THE SOFTWARE
========================== ==========================
Python was created in the early 1990s by Guido van Rossum at Stichting Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands
as a successor of a language called ABC. Guido remains Python's as a successor of a language called ABC. Guido remains Python's
principal author, although it includes many contributions from others. principal author, although it includes many contributions from others.
In 1995, Guido continued his work on Python at the Corporation for In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the in Reston, Virginia where he released several versions of the
software. software.
@@ -19,7 +19,7 @@ https://www.python.org/psf/) was formed, a non-profit organization
created specifically to own Python-related Intellectual Property. created specifically to own Python-related Intellectual Property.
Zope Corporation was a sponsoring member of the PSF. Zope Corporation was a sponsoring member of the PSF.
All Python releases are Open Source (see http://www.opensource.org for All Python releases are Open Source (see https://opensource.org for
the Open Source Definition). Historically, most, but not all, Python the Open Source Definition). Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes releases have also been GPL-compatible; the table below summarizes
the various releases. the various releases.
@@ -84,7 +84,7 @@ analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version, distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright, provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation; 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;
All Rights Reserved" are retained in Python alone or in any derivative version All Rights Reserved" are retained in Python alone or in any derivative version
prepared by Licensee. prepared by Licensee.
@@ -191,9 +191,9 @@ version prepared by Licensee. Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement. This Agreement together with conditions in CNRI's License Agreement. This Agreement together with
Python 1.6.1 may be located on the Internet using the following Python 1.6.1 may be located on the internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013. This unique, persistent identifier (known as a handle): 1895.22/1013. This
Agreement may also be obtained from a proxy server on the Internet Agreement may also be obtained from a proxy server on the internet
using the following URL: http://hdl.handle.net/1895.22/1013". using the following URL: http://hdl.handle.net/1895.22/1013".
3. In the event Licensee prepares a derivative work that is based on 3. In the event Licensee prepares a derivative work that is based on
+18 -45
View File
@@ -1,49 +1,22 @@
RIVERBANK COMPUTING LIMITED LICENSE AGREEMENT FOR SIP Copyright 2024 Phil Thompson <phil@riverbankcomputing.com>
1. This LICENSE AGREEMENT ("the SIP License") is between Riverbank Computing Redistribution and use in source and binary forms, with or without
Limited ("Riverbank"), and the Individual or Organization ("Licensee") modification, are permitted provided that the following conditions are met:
accessing and otherwise using SIP software in source or binary form and its
associated documentation. SIP comprises a software tool for generating Python
bindings for software C and C++ libraries, and a Python extension module used
at runtime by those generated bindings. This License Agreement may also be
applied to other software packages written by Riverbank.
2. Subject to the terms and conditions of this License Agreement, Riverbank 1. Redistributions of source code must retain the above copyright notice, this
hereby grants Licensee a nonexclusive, royalty-free, world-wide license to list of conditions and the following disclaimer.
reproduce, analyze, test, perform and/or display publicly, prepare derivative
works, distribute, and otherwise use SIP alone or in any derivative version,
provided, however, that Riverbank's License Agreement and Riverbank's notice of
copyright, e.g., "Copyright (c) 2015 Riverbank Computing Limited; All Rights
Reserved" are retained in SIP alone or in any derivative version prepared by
Licensee.
3. In the event Licensee prepares a derivative work that is based on or 2. Redistributions in binary form must reproduce the above copyright notice,
incorporates SIP or any part thereof, and wants to make the derivative work this list of conditions and the following disclaimer in the documentation
available to others as provided herein, then Licensee hereby agrees to include and/or other materials provided with the distribution.
in any such work a brief summary of the changes made to SIP.
4. Licensee may not use SIP to generate Python bindings for any C or C++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
library for which bindings are already provided by Riverbank. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
5. Riverbank is making SIP available to Licensee on an "AS IS" basis. DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
RIVERBANK MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
OF EXAMPLE, BUT NOT LIMITATION, RIVERBANK MAKES NO AND DISCLAIMS ANY DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
PURPOSE OR THAT THE USE OF SIP WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
6. RIVERBANK SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF SIP FOR ANY OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING,
DISTRIBUTING, OR OTHERWISE USING SIP, OR ANY DERIVATIVE THEREOF, EVEN IF
ADVISED OF THE POSSIBILITY THEREOF.
7. This License Agreement will automatically terminate upon a material breach
of its terms and conditions.
8. Nothing in this License Agreement shall be deemed to create any relationship
of agency, partnership, or joint venture between Riverbank and Licensee. This
License Agreement does not grant permission to use Riverbank trademarks or
trade name in a trademark sense to endorse or promote products or services of
Licensee, or any third party.
9. By copying, installing or otherwise using SIP, Licensee agrees to be bound
by the terms and conditions of this License Agreement.
+1 -1
View File
@@ -22,5 +22,5 @@ THE SOFTWARE.
-- NOTE: Third party dependency used by this software -- -- NOTE: Third party dependency used by this software --
This software depends on the fmt lib (MIT License), This software depends on the fmt lib (MIT License),
and users must comply to its license: https://github.com/fmtlib/fmt/blob/master/LICENSE.rst and users must comply to its license: https://raw.githubusercontent.com/fmtlib/fmt/master/LICENSE
+3 -1
View File
@@ -1,4 +1,6 @@
(C) 1995-2017 Jean-loup Gailly and Mark Adler Copyright notice:
(C) 1995-2022 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
+26 -50
View File
@@ -18,21 +18,22 @@ install_message = never
host = host =
[aliases] [aliases]
super = cmake_common modorganizer* githubpp super = cmake_common modorganizer*
plugins = check_fnis bsapacker bsa_extractor diagnose_basic installer_* plugin_python preview_base preview_bsa tool_* game_* plugins = check_fnis bsapacker bsa_extractor diagnose_basic installer_* plugin_python preview_base preview_bsa tool_* game_*
[translations] [translations]
mo2-translations = organizer mo2-translations = organizer uibase plugin_python
mo2-game-bethesda = game_creation game_enderal game_enderalse game_fallout3 game_fallout4 game_fallout4vr game_falloutNV game_gamebryo game_morrowind game_nehrim game_oblivion game_skyrim game_skyrimse game_skyrimvr game_ttw mo2-game-bethesda = game_creation game_enderal game_enderalse game_fallout3 game_fallout4 game_fallout4vr game_falloutNV game_gamebryo game_morrowind game_nehrim game_oblivion game_skyrim game_skyrimse game_skyrimvr game_ttw
[task] [task]
enabled = true enabled = true
mo_org = ModOrganizer2 mo_org = ModOrganizer2
mo_branch = master mo_branch = master
mo_fallback = mo_fallback =
no_pull = false no_pull = false
ignore_ts = false ignore_ts = false
revert_ts = false revert_ts = false
configuration = RelWithDebInfo
git_url_prefix = https://github.com/ git_url_prefix = https://github.com/
git_shallow = true git_shallow = true
@@ -50,6 +51,7 @@ git_shallow = false
[usvfs:task] [usvfs:task]
git_shallow = false git_shallow = false
configuration = Release
[installer:task] [installer:task]
enabled = false enabled = false
@@ -87,57 +89,31 @@ force = false
configure = true configure = true
pull = true pull = true
[prebuilt]
boost = true
lz4 = true
openssl = true
pyqt = true
python = true
usvfs = false
[versions] [versions]
vs = 17 vs = 17
vs_year = 2022 vs_year = 2022
vs_toolset = 14.3 vs_toolset = 14.3
sdk = 10.0.22621.0 sdk = 10.0.26100.0
sevenz = 23.01 pyqt = 6.7.1
boost = 1.82.0 qt = 6.7.3
boost_vs = 14.3 qt_vs = 2022
fmt = 8.1.1 usvfs = master
gtest = main explorerpp = 1.4.0
libloot = 0.19.4 ss_paper_lad_6788 = 7.2
lz4 = v1.9.4 ss_paper_automata_6788 = 3.2
nmm = 0.71.2 ss_paper_mono_6788 = 3.2
openssl = 1.1.1u
pyqt = 6.5.1
pyqt_builder = 1.15.1
pyqt_sip = 13.5.1
python = v3.10.12
pybind11 = v2.10.4
bzip2 = 1.0.8
sip = 6.7.1
spdlog = v1.10.0
qt = 6.5.1
qt_vs = 2019
zlib = v1.2.13
libbsarch = 0.0.9
usvfs = qt6
explorerpp = 1.3.5
ss_paper_lad_6788 = 7.0
ss_paper_automata_6788 = 3.0
ss_paper_mono_6788 = 2.2
ss_dark_mode_1809_6788 = 3.0 ss_dark_mode_1809_6788 = 3.0
ss_morrowind_trosski = 1.1 ss_morrowind_trosski = 1.1
ss_skyrim_trosski = v1.1 ss_skyrim_trosski = v1.1
ss_fallout3_trosski = v1.1 ss_starfield_trosski = V1.11
ss_fallout4_trosski = v1.1 ss_fallout3_trosski = v1.11
ss_fallout4_trosski = v1.11
[paths] [paths]
third_party = third_party =
prefix = prefix =
cache = cache =
patches = icons =
licenses = licenses =
build = build =
install = install =
@@ -146,13 +122,13 @@ install_installer =
install_libs = install_libs =
install_pdbs = install_pdbs =
install_dlls = install_dlls =
install_loot =
install_plugins = install_plugins =
install_extensions = install_extensions =
install_stylesheets = install_stylesheets =
install_licenses = install_licenses =
install_pythoncore = install_translations =
vs = vs =
vcpkg =
qt_install = qt_install =
qt_bin = qt_bin =
qt_translations = qt_translations =
-10
View File
@@ -1,10 +0,0 @@
--- publish.bat Thu Apr 30 00:08:44 2020
+++ publish.bat Thu Apr 30 00:08:14 2020
@@ -1,6 +1,6 @@
set _NMMPATH=%~dp0..\Nexus-Mod-Manager
set _NMMCLIPATH=%~dp0
-set outputPath=..\..\install\bin
+set outputPath=%~1
mkdir "%outputPath%\NCC"
copy "%_NMMPATH%\Stage\Release\AntlrUtil.dll" "%outputPath%\NCC"
-36
View File
@@ -1,36 +0,0 @@
--- builder.py (date 1575938575861)
+++ builder.py (date 1575938575861)
@@ -402,17 +402,29 @@
'QMAKE_LFLAGS += -Wl,--version-script={}.exp'.format(
buildable.target))
- pro_lines.append(
+ if project.py_platform == 'win32':
+ for include_dir in project.py_include_dir.split(';'):
+ pro_lines.append(
+ 'INCLUDEPATH += {}'.format(
+ self.qmake_quote(include_dir)))
+ else:
+ pro_lines.append(
'INCLUDEPATH += {}'.format(
- self.qmake_quote(project.py_include_dir)))
+ self.qmake_quote(project.py_include_dir)))
+ if project.py_pylib_shlib != "":
+ pro_lines.append(
+ 'DEFINES += {}'.format(
+ self.qmake_quote("PYTHON_LIB=\"{}\"".format(
+ project.py_pylib_shlib))))
+
# Python.h on Windows seems to embed the need for pythonXY.lib, so tell
# it where it is.
# TODO: is this still necessary for Python v3.8?
if not buildable.static:
pro_lines.extend(['win32 {',
- ' LIBS += -L{}'.format(
- self.qmake_quote(project.py_pylib_dir)),
+ ' LIBS += -L{}{}'.format(
+ self.qmake_quote(project.py_pylib_dir), '' if project.py_pylib_lib == '' else ' -l' + project.py_pylib_lib),
'}'])
# Add any installables from the buildable
@@ -1,10 +0,0 @@
--- PCbuild/openssl.props (revision 5c02a39a0b31a330e06b4d6f44835afb205dc7cc)
+++ PCbuild/openssl.props (date 1575994670797)
@@ -13,6 +13,7 @@
<_DLLSuffix>-1_1</_DLLSuffix>
<_DLLSuffix Condition="$(Platform) == 'ARM'">$(_DLLSuffix)-arm</_DLLSuffix>
<_DLLSuffix Condition="$(Platform) == 'ARM64'">$(_DLLSuffix)-arm64</_DLLSuffix>
+ <_DLLSuffix Condition="$(Platform) == 'x64'">$(_DLLSuffix)-x64</_DLLSuffix>
</PropertyGroup>
<ItemGroup>
<_SSLDLL Include="$(opensslOutDir)\libcrypto$(_DLLSuffix).dll" />
+173 -123
View File
@@ -1,105 +1,155 @@
# `mob` - ModOrganizer Build Tool
This README explains how to use `mob` and build ModOrganizer2 with it.
If you want to contribute to a single plugin of MO2 or even write your own plugins,
check the [ModOrganizer2 Wiki](https://github.com/ModOrganizer2/modorganizer/wiki).
## Table of contents ## Table of contents
- [Quick start](#quick-start) - [Quick start](#quick-start)
- [Slow start](#slow-start) - [Extended start](#extended-start)
- [Changing options](#changing-options) - [Changing options](#changing-options)
* [INI files](#ini-files) - [INI files](#override-options-using-ini-files)
* [Command line](#command-line) - [Command line](#override-options-using-command-line)
* [INI format](#ini-format) - [INI format](#ini-format)
- [Options](#options) - [Options](#options)
* [`[global]`](#global) - [`[global]`](#global)
* [`[task]`](#task) - [`[task]`](#task)
* [`[tools]`](#tools) - [`[tools]`](#tools)
* [`[prebuilt]`](#prebuilt) - [`[versions]`](#versions)
* [`[versions]`](#versions) - [`[paths]`](#paths)
* [`[paths]`](#paths) - [Command line](#command-line)
- [Command line](#command-line-1) - [Global options](#global-options)
* [Global options](#global-options) - [`build`](#build)
* [`build`](#build) - [`list`](#list)
* [`list`](#list) - [`options`](#options)
* [`options`](#options) - [`release`](#release)
* [`release`](#release) - [`git`](#git)
* [`git`](#git) - [`cmake-config`](#cmake-config)
* [`cmake`](#cmake) - [`inis`](#inis)
* [`inis`](#inis)
## Quick start ## Quick start
```
> git clone https://github.com/ModOrganizer2/mob ```powershell
> cd mob git clone https://github.com/ModOrganizer2/mob
> bootstrap cd mob
> mob -d c:\somewhere build ./bootstrap
mob -d c:\somewhere build
``` ```
## Slow start ## Extended start
- Install Qt 6.5.1 ([Installer](https://download.qt.io/official_releases/online_installers/qt-unified-windows-x64-online.exe)) and select these components:
- MSVC 2019 64-bit ### Qt Installation
Check [`mob.ini`](https://github.com/ModOrganizer2/mob/blob/master/mob.ini#L94) to find
out which version of Qt you need.
#### CLI based install using [aqt](https://github.com/miurahr/aqtinstall)
[aqt](https://github.com/miurahr/aqtinstall) is a CLI installer for Qt, it makes
installing Qt extremely quick and painless, and doesn't require a login.
Check the [documentation](https://aqtinstall.readthedocs.io/en/latest/installation.html)
to install **aqt** itself.
When using **aqt**, you can choose which modules to install but we recommend installing
all of them in case of changes.
```powershell
# you can also use -m all to install all modules
aqt install-qt --outputdir "C:\Qt" windows desktop ${QT_VERSION} win64_msvc2022_64 `
-m qtwebengine qtimageformats qtpositioning qtserialport qtwebchannel qtwebsockets
```
#### Manual installation
- Install Qt ([Installer](https://download.qt.io/official_releases/online_installers/qt-unified-windows-x64-online.exe)) and select these components:
- MSVC 2022 64-bit
- Additional Libraries: - Additional Libraries:
- Qt WebEngine (display nexus pages) - Qt WebEngine (display nexus pages)
- Qt Image Formats (display images in image tab and preview) - Qt Image Formats (display images in image tab and preview)
- Qt Positioning (required by QtWebEngine) - Qt Positioning (required by QtWebEngine)
- Qt Serial Port (required by Qt Core) - Qt Serial Port (required by Qt Core)
- Qt Web Channel (required by QtWebEngine) - Qt WebChannel (required by QtWebEngine)
- Qt WebSockets (Nexus api/download) - Qt WebSockets (Nexus api/download)
- Optional: - Optional:
- Qt Source Files - Qt Source Files
- Qt Debug Files - Qt Debug Files
### Visual Studio
- Install Visual Studio 2022 ([Installer](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false)) - Install Visual Studio 2022 ([Installer](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false))
- Desktop development with C++ - Desktop development with C++
- Desktop .NET desktop development (needed by OMOD and FOMOD installers) - Desktop .NET desktop development (needed by OMOD and FOMOD installers)
- Individual Components: - Individual Components:
- .Net Framework 4.8 SDK - .Net Framework 4.8 SDK
- .Net Framework 4.7.2 targeting pack (OMOD targets 4.8 but VS still requires the package for other .Net components) - .Net Framework 4.7.2 targeting pack (OMOD targets 4.8 but VS still requires
the package for other .Net components)
- Windows Universal C Runtime - Windows Universal C Runtime
- C++ ATL for latest v143 build Tools (x86 & x64) - C++ ATL for latest v143 build Tools (x86 & x64)
- C++ /CLI support for v143 build Tools (Latest) (for OMOD and FOMOD installers) - C++ /CLI support for v143 build Tools (Latest) (for OMOD and FOMOD installers)
- Windows 11 SDK (get latest) - Windows 11 SDK (get latest)
- C++ Build Tools core features - C++ Build Tools core features
- Optional: - Git for Windows (Skip if you have this already installed outside of the VS installer)
- Git for Windows (if you don't have git already installed) - CMake tools for Windows (Skip if you have this already installed outside of the VS installer)
- Start a shell
- If you have git in your path, a regular cmd shell works.
- If not, start the _x64 Native Tools Command Prompt for VS 2019_, it'll use Git for Windows installed above.
- Do:
```
mkdir C:\dev
cd C:\dev
git clone https://github.com/ModOrganizer2/mob
cd mob
bootstrap
mob -d C:\dev\modorganizer build
```
- Once `mob` is finished, everything will be in `C:\dev\modorganizer`. Mod Organizer can be run from `install\bin\ModOrganizer.exe`. The Visual Studio solution for Mod Organizer itself is `build\modorganizer_super\modorganizer\vsbuild\organizer.sln`.
## Setting up MOB
### Prebuilts ```powershell
Some third-parties are not normally built from source, but this can be changed in the options by setting the various tasks in `[prebuilt]` to `false`. If OpenSSL is built from source, perl is required ([Strawberry Perl 5.30.2.1 installer](http://strawberryperl.com/download/5.30.2.1/strawberry-perl-5.30.2.1-64bit.msi)). mkdir C:\dev
cd C:\dev
# close this repository
git clone https://github.com/ModOrganizer2/mob
# build mob itself - this will create mob.exe in the current directory
./bootstrap.ps1
# build MO2 itself - this will take a LONG time
mob -d C:\dev\modorganizer build
```
Once `mob` is finished, everything will be in `C:\dev\modorganizer`.
Mod Organizer can be run from `install\bin\ModOrganizer.exe`.
The Visual Studio solution for Mod Organizer itself is `build\modorganizer_super\modorganizer\vsbuild\organizer.sln`.
## Changing options ## Changing options
`mob` has two ways of setting options: from INI files, the `MOBINI` environment variable, or from the command line.
### INI files `mob` has two ways of setting options: from INI files, the `MOBINI` environment
`mob` builds a list of available INI files in order of priority. Higher numbers override lower numbers: variable, or from the command line.
### OVerride options using INI files
`mob` builds a list of available INI files in order of priority. Higher numbers
override lower numbers:
1) The master INI `mob.ini` in the directory where `mob.exe` lives (required). 1) The master INI `mob.ini` in the directory where `mob.exe` lives (required).
2) Any files set in `MOBINI` (separated by semicolons). 2) Any files set in `MOBINI` (separated by semicolons).
3) Another `mob.ini` in the current directory. 3) Another `mob.ini` in the current directory.
4) Files given with `--ini`. 4) Files given with `--ini`.
Use `mob inis` to see the list of INI files in order. If `--no-default-inis` is given, `mob` will skip 1) and 2). The first INI it finds after that is considered the master. Use `mob inis` to see the list of INI files in order. If `--no-default-inis` is given,
`mob` will skip 1) and 2). The first INI it finds after that is considered the master.
### Command line ### Override options using command line
Any option can be overridden from the command like with `-s task:section/key=value`, where `task:` is optional. Some options have shortcuts, such as `--dry` for `-s global/dry=true` and `-l5` for `-s global:output_log_level=5`. See `mob options` for the list of options.
Any option can be overridden from the command like with `-s task:section/key=value`,
where `task:` is optional. Some options have shortcuts, such as `--dry`
for `-s global/dry=true` and `-l5` for `-s global:output_log_level=5`.
See `mob options` for the list of options.
### INI format ### INI format
Inside the INI file are `[sections]` and `key = value` pairs. The `[task]` section is special because it can be changed for specific tasks instead of globally. Any value under a `[task_name:task]` section will only apply to a task named `task_name`. The list of available tasks can be seen with `mob list`. See [Task names](#task-names).
Inside the INI file are `[sections]` and `key = value` pairs. The `[task]` section is
special because it can be changed for specific tasks instead of globally.
Any value under a `[task_name:task]` section will only apply to a task
named `task_name`. The list of available tasks can be seen with `mob list`.
See [Task names](#task-names).
## Options ## Options
### `[global]` ### `[global]`
| Option | Type | Description | | Option | Type | Description |
| --- | --- | --- | | --- | --- | --- |
| `dry` | bool | Whether filesystem operations are simulated. Note that many operations will fail and that the build process will most probably not complete. This is mostly useful to get a dump of the options. | | `dry` | bool | Whether filesystem operations are simulated. Note that many operations will fail and that the build process will most probably not complete. This is mostly useful to get a dump of the options. |
@@ -110,33 +160,36 @@ Inside the INI file are `[sections]` and `key = value` pairs. The `[task]` secti
| `clean_task` | bool | For `build`, whether tasks are cleaned. | | `clean_task` | bool | For `build`, whether tasks are cleaned. |
| `fetch_task` | bool | For `build`, whether tasks are fetched (download, git, etc.) | | `fetch_task` | bool | For `build`, whether tasks are fetched (download, git, etc.) |
| `build_task` | bool | For `build`, whether tasks are built (msbuild, jobm etc.) | | `build_task` | bool | For `build`, whether tasks are built (msbuild, jobm etc.) |
| `output_log_level` | [0-6]| The log level for stdout: 0=silent, 1=errors, 2=warnings, 3=info (default), 4=debug, 5=trace, 6=dump. Note that 6 will dump _a lot_ of stuff, such as debug information from curl during downloads. | `output_log_level` | [0-6]| The log level for stdout: 0=silent, 1=errors, 2=warnings, 3=info (default), 4=debug, 5=trace, 6=dump. Note that 6 will dump _a lot_ of stuff, such as debug information from curl during downloads. |
| `file_log_level` | [0-6]| The log level for the log file. | | `file_log_level` | [0-6]| The log level for the log file. |
| `log_file` | path | The path to a log file. | | `log_file` | path | The path to a log file. |
| `ignore_uncommitted` | bool | When `--redownload` or `--reextract` is given, directories controlled by git will be deleted even if they contain uncommitted changes.| | `ignore_uncommitted` | bool | When `--redownload` or `--reextract` is given, directories controlled by git will be deleted even if they contain uncommitted changes.|
### `[task]` ### `[task]`
Options for individual tasks. Can be `[task_name:task]`, where `task_name` is the name of a task (see `mob list`) , `super` for all MO tasks or a glob like `installer_*`. Options for individual tasks. Can be `[task_name:task]`, where `task_name` is the name of a task (see `mob list`) , `super` for all MO tasks or a glob like `installer_*`.
| Option | Type | Description | | Option | Type | Description |
| --- | --- | --- | | --- | --- | --- |
| `enabled` | bool | Whether this task is enabled. Disabled tasks are never built. When specifying task names with `mob build task1 task2...`, all tasks except those given are turned off. | | `enabled` | bool | Whether this task is enabled. Disabled tasks are never built. When specifying task names with `mob build task1 task2...`, all tasks except those given are turned off. |
| `configuration` | enum | Which configuration to build, should be one of Debug, Release or RelWithDebInfo with RelWithDebInfo being the default.|
#### Common git options #### Common git options
Unless otherwise stated, applies to any task that is a git repo. Unless otherwise stated, applies to any task that is a git repo.
| Option | Type | Description | | Option | Type | Description |
| --- | --- | --- | | --- | --- | --- |
| `mo_org` | string | The organisation name when pulling from Github. Only applies to ModOrganizer projects, plus NCC and usvfs. | | `mo_org` | string | The organisation name when pulling from Github. Only applies to ModOrganizer projects, plus NCC and usvfs. |
| `mo_branch` | string | The branch name when pulling from Github. Only applies to ModOrganizer projects, plus NCC and usvfs. | | `mo_branch` | string | The branch name when pulling from Github. Only applies to ModOrganizer projects, plus NCC and usvfs. |
| `mo_master` | string | The fallback branch name when pulling from Github. Only applies to ModOrganizer projects, plus NCC and usvfs. | `mo_master` | string | The fallback branch name when pulling from Github. Only applies to ModOrganizer projects, plus NCC and usvfs. This branch is used when `mo_branch` does not exists. If this value is empty, the fallback mechanism is disabled (default behavior). |
This branch is used when `mo_branch` does not exists. If this value is empty, the fallback mechanism is disabled (default behavior). |
| `no_pull` | bool | If a repo is already cloned, a `git pull` will be done on it every time `mob build` is run. Set to `false` to never pull and build with whatever is in there. | | `no_pull` | bool | If a repo is already cloned, a `git pull` will be done on it every time `mob build` is run. Set to `false` to never pull and build with whatever is in there. |
| `ignore_ts` | bool | Marks all the `.ts` files in a repo with `--assume-unchanged`. Note that `mob git ignore-ts off` can be used to revert it. | | `ignore_ts` | bool | Marks all the `.ts` files in a repo with `--assume-unchanged`. Note that `mob git ignore-ts off` can be used to revert it. |
| `git_url_prefix` | string | When cloning a repo, the URL will be `$(git_url_prefix)mo_org/repo.git`. | | `git_url_prefix` | string | When cloning a repo, the URL will be `$(git_url_prefix)mo_org/repo.git`. |
| `git_shallow` | bool | When true, clones with `--depth 1` to avoid having to fetch all the history. Defaults to true for third-parties. | | `git_shallow` | bool | When true, clones with `--depth 1` to avoid having to fetch all the history. Defaults to true for third-parties. |
#### Git credentials #### Git credentials
These are used to set `user.name` and `user.email`. Applies to any task that is a git repo. These are used to set `user.name` and `user.email`. Applies to any task that is a git repo.
| Option | Type | Description | | Option | Type | Description |
@@ -145,7 +198,9 @@ These are used to set `user.name` and `user.email`. Applies to any task that is
| `git_email` | string | Email | | `git_email` | string | Email |
#### Origin and upstream remotes #### Origin and upstream remotes
When `git` clones, it automatically creates a remote named `origin` for the URL that was cloned. When `set_origin_remote` is `true`, this will: When `git` clones, it automatically creates a remote named `origin` for the URL that was cloned. When `set_origin_remote` is `true`, this will:
1) Rename `origin` to `upstream`, and 1) Rename `origin` to `upstream`, and
2) Create a new `origin` with the given parameters. 2) Create a new `origin` with the given parameters.
@@ -159,7 +214,7 @@ When `git` clones, it automatically creates a remote named `origin` for the URL
For example, this will create an `origin` remote for all ModOrganizer2 projects and mark all `.ts` files as `--assume-unchanged`. For example, this will create an `origin` remote for all ModOrganizer2 projects and mark all `.ts` files as `--assume-unchanged`.
``` ```ini
[super:task] [super:task]
ignore_ts = true ignore_ts = true
git_username = isanae git_username = isanae
@@ -172,21 +227,22 @@ remote_push_default_origin = true
``` ```
### `[tools]` ### `[tools]`
The various tools in this section are used verbatim when creating processes and so will be looked in the `PATH` environment variable. `vcvars` is best left empty, it will be found using the `vswhere.exe` that's bundled as a third-party. The various tools in this section are used verbatim when creating processes and so will be looked in the `PATH` environment variable. `vcvars` is best left empty, it will be found using the `vswhere.exe` that's bundled as a third-party.
### `[prebuilt]`
Some tasks can use prebuilt binaries instead of building from source.
### `[versions]` ### `[versions]`
The versions for all the tasks. The versions for all the tasks.
### `[paths]` ### `[paths]`
The only path that's required is `prefix`, which is where `mob` will put everything. Within this directory will be `build/`, `downloads/` and `install/`. Everything else is derived from it. The only path that's required is `prefix`, which is where `mob` will put everything. Within this directory will be `build/`, `downloads/` and `install/`. Everything else is derived from it.
If `mob` is unable to find the Qt installation directory, it can be specified in `qt_install`. This directory should contain `bin/`, `include/`, etc. It's typically something like `C:\Qt\6.5.1\msvc2019_64\`. The other path `qt_bin` will be derived from it, it's just `$qt_install/bin/`. If `mob` is unable to find the Qt installation directory, it can be specified in `qt_install`. This directory should contain `bin/`, `include/`, etc.
It's typically something like `C:\Qt\6.7.3\msvc2022_64\`. The other path `qt_bin` will be derived from it, it's just `$qt_install/bin/`.
## Command line ## Command line
Do `mob --help` for global options and the list of available commands. Do `mob <command> --help` for more help about a command. Do `mob --help` for global options and the list of available commands. Do `mob <command> --help` for more help about a command.
To use global options with command options, ensure command options are together, with no global options in the middle. To use global options with command options, ensure command options are together, with no global options in the middle.
@@ -195,15 +251,15 @@ To use global options with command options, ensure command options are together,
| Option | Description | | Option | Description |
| --- | --- | | --- | --- |
| `--ini` | Adds an INI file, see [INI files](#ini-files). | | `--ini` | Adds an INI file, see [INI files](#override-options-using-ini-files). |
| `--dry` | Simulates filesystem operations. Note that many operations will fail and that the build process will stop with errors. This is mostly useful to get a dump of the options. | | `--dry` | Simulates filesystem operations. Note that many operations will fail and that the build process will stop with errors. This is mostly useful to get a dump of the options. |
| `-log-level` | The log level for stdout: 0=silent, 1=errors, 2=warnings, 3=info (default), 4=debug, 5=trace, 6=dump. Note that 6 will dump _a lot_ of stuff, such as debug information from curl during downloads. | `-log-level` | The log level for stdout: 0=silent, 1=errors, 2=warnings, 3=info (default), 4=debug, 5=trace, 6=dump. Note that 6 will dump _a lot_ of stuff, such as debug information from curl during downloads. |
| `--destination` | The build directory where `mob` will put everything. | `--destination` | The build directory where `mob` will put everything. |
| `--set` | Sets an option: `-s task:section/key=value`. | `--set` | Sets an option: `-s task:section/key=value`. |
| `--no-default-inis` | Does not auto detect INI files, only uses `--ini`. | | `--no-default-inis` | Does not auto detect INI files, only uses `--ini`. |
### `build` ### `build`
Builds tasks. The order in which tasks have to be built is handled by `mob`, but dependencies will not be built automatically when specifying tasks manually. That is, `mob build` will build `python` before `pyqt`, but `mob build pyqt` will not build `python`. Many tasks will be able to run in parallel, but not all, either because they hog the CPU (such as `usvfs`) or because they have dependencies that have to be built first. Builds tasks. The order in which tasks have to be built is handled by `mob`, but dependencies will not be built automatically when specifying tasks manually. That is, `mob build` will build `python` before `pyqt`, but `mob build pyqt` will not build `python`. Many tasks will be able to run in parallel, but not all, either because they hog the CPU (such as `usvfs`) or because they have dependencies that have to be built first.
If any task fails to build, all the active tasks are aborted as quickly as possible. If any task fails to build, all the active tasks are aborted as quickly as possible.
@@ -212,7 +268,7 @@ If any task fails to build, all the active tasks are aborted as quickly as possi
Each task has a name, some have more. MO tasks for example have a full name that corresponds to their git repo (such as `modorganizer-game_features`) and a shorter name (such as `game_features`). Both can be used interchangeably. The task name can also be `super`, which refers to all repos hosted on the Mod Organizer Github account, minus `libbsarch`, `usvfs` and `NexusClientCli`. Globs can be used, like `installer_*`. See `mob list` for a list of all available tasks. Each task has a name, some have more. MO tasks for example have a full name that corresponds to their git repo (such as `modorganizer-game_features`) and a shorter name (such as `game_features`). Both can be used interchangeably. The task name can also be `super`, which refers to all repos hosted on the Mod Organizer Github account, minus `libbsarch`, `usvfs` and `NexusClientCli`. Globs can be used, like `installer_*`. See `mob list` for a list of all available tasks.
#### Options #### Options for `build`
| Option | Description | | Option | Description |
| --- | --- | | --- | --- |
@@ -221,75 +277,78 @@ Each task has a name, some have more. MO tasks for example have a full name that
| `--reconfigure` | Reconfigures the task by running cmake, configure scripts, etc. Some tasks might have to delete the whole source directory. | | `--reconfigure` | Reconfigures the task by running cmake, configure scripts, etc. Some tasks might have to delete the whole source directory. |
| `--rebuild` | Cleans and rebuilds projects. Some tasks might have to delete the whole source directory | | `--rebuild` | Cleans and rebuilds projects. Some tasks might have to delete the whole source directory |
| `--new` | Implies all the four flags above. | | `--new` | Implies all the four flags above. |
| `--clean-task`,<br>`--no-clean-task` | Sets whether tasks are cleaned. With `--no-clean-task`, the flags above are ignored. | | `--clean-task`, `--no-clean-task` | Sets whether tasks are cleaned. With `--no-clean-task`, the flags above are ignored. |
| `--fetch-task`,<br>`--no-fetch-task` | Sets whether tasks are fetched. With `--no-fetch-task`, nothing is downloaded, extracted, cloned or pulled. | | `--fetch-task`, `--no-fetch-task` | Sets whether tasks are fetched. With `--no-fetch-task`, nothing is downloaded, extracted, cloned or pulled. |
| `--build-task`,<br>`--no-build-task` | Sets whether tasks are built. With `--no-build-task`, nothing is ever built or installed. | | `--build-task`, `--no-build-task` | Sets whether tasks are built. With `--no-build-task`, nothing is ever built or installed. |
| `--pull`,<br>`--no-pull` | For repos that are controlled by git, whether to pull repos that are already cloned. With `--no-pull`, once a repo is cloned, it is never updated automatically. | | `--pull`, `--no-pull` | For repos that are controlled by git, whether to pull repos that are already cloned. With `--no-pull`, once a repo is cloned, it is never updated automatically. |
| `--revert-ts`,<br>`--no-revert-ts` | Most projects will generate `.ts` files for translations. These files are typically not committed to Github and so will often conflict when trying to pull. With `--revert-ts`, any `.ts` file is reverted before pulling. | | `--revert-ts`, `--no-revert-ts` | Most projects will generate `.ts` files for translations. These files are typically not committed to Github and so will often conflict when trying to pull. With `--revert-ts`, any `.ts` file is reverted before pulling. |
| `--ignore-uncommitted-changes` | With `--reextract`, ignores repos that have uncommitted changes and deletes the directory without confirmation. | | `--ignore-uncommitted-changes` | With `--reextract`, ignores repos that have uncommitted changes and deletes the directory without confirmation. |
| `--keep-msbuild` | `mob` starts a lot of `msbuild.exe` processes, some of which hold locks on the build directory. Because that's pretty darn annoying, `mob` will kill all `msbuild.exe` processes when it finished, unless this flag is given. | | `--keep-msbuild` | `mob` starts a lot of `msbuild.exe` processes, some of which hold locks on the build directory. Because that's pretty darn annoying, `mob` will kill all `msbuild.exe` processes when it finished, unless this flag is given. |
| `<task>...` | List of tasks to run, see [Task names](#task-names). | | `<task>...` | List of tasks to run, see [Task names](#task-names). |
### `list` ### `list`
Lists all the available task names. If a task has multiple names, they are all shown, separated by a comma. Lists all the available task names. If a task has multiple names, they are all shown, separated by a comma.
#### Options #### Options for `list`
| Option | Description | | Option | Description |
| --- | --- | | --- | --- |
| `--all` | Shows a task tree to see which are built in parallel. | | `--all` | Shows a task tree to see which are built in parallel. |
| `<task>...` | This is the same list of tasks that can be given in the `build` command. With `--all`, this will only show the tasks that would be built. | | `<task>...` | This is the same list of tasks that can be given in the `build` command. With `--all`, this will only show the tasks that would be built. |
### `options` ### `options`
Lists all the options after parsing the INIs and the command line. Lists all the options after parsing the INIs and the command line.
### `release` ### `release`
Creates a release in `prefix/releases`. Only supports devbuilds for now. A release is made out of three archives: Creates a release in `prefix/releases`. Only supports devbuilds for now. A release is made out of three archives:
- Binaries from `prefix/install/bin`;
- PDBs from `prefix/install/pdb`; - Binaries from `prefix/install/bin`;
- Sources from various directories in `prefix/build`. - PDBs from `prefix/install/pdb`;
- Sources from various directories in `prefix/build`.
The archive filename is `Mod.Organizer-version-suffix-what.7z`, where: The archive filename is `Mod.Organizer-version-suffix-what.7z`, where:
- `version` is taken from `ModOrganizer.exe`, `version.rc` or from `--version`;
- `suffix` is the optional `--suffix` argument;
- `what` is either nothing, `src` or `pdbs`.
- `version` is taken from `ModOrganizer.exe`, `version.rc` or from `--version`;
- `suffix` is the optional `--suffix` argument;
- `what` is either nothing, `src` or `pdbs`.
#### Options for `release`
#### Options
| Option | Description | | Option | Description |
| --- | --- | | --- | --- |
| `--bin`,<br>`--no-bin` | Whether the binary archive is created [default: yes] | | `--bin`, `--no-bin` | Whether the binary archive is created [default: yes] |
| `--pdbs`,<br>`--no-pdbs` | Whether the PDBs archive is created [default: yes] | | `--pdbs`, `--no-pdbs` | Whether the PDBs archive is created [default: yes] |
| `--src`,<br>`--no-src` | Whether the source archive is created [default: yes] | | `--src`,, `--no-src` | Whether the source archive is created [default: yes] |
| `--version-from-exe` | Retrieves version information from ModOrganizer.exe [default] | | `--version-from-exe` | Retrieves version information from ModOrganizer.exe [default] |
| `--version-from-rc` | Retrieves version information from `modorganizer/src/version.rc` | | `--version-from-rc` | Retrieves version information from `modorganizer/src/version.rc` |
| `--rc <PATH>` | Overrides the path to `version.rc` | | `--rc <PATH>` | Overrides the path to `version.rc` |
| `--version <VERSION>` | Overrides the version string, ignores `--version-from-exe` and `--version-from-rc` | | `--version <VERSION>` | Overrides the version string, ignores `--version-from-exe` and `--version-from-rc` |
| `--output-dir <PATH>` | Sets the output directory to use instead of `prefix/releases` | | `--output-dir <PATH>` | Sets the output directory to use instead of `prefix/releases` |
| `--suffix <SUFFIX>` | Optional suffix to add to the archive filenames | `--suffix <SUFFIX>` | Optional suffix to add to the archive filenames. |
| `--force` | `mob` will refuse to create a source archive over 20MB because it would probably be incorrect. This ignores the file size warnings and creates the archive regardless of its size. | | `--force` | `mob` will refuse to create a source archive over 20MB because it would probably be incorrect. This ignores the file size warnings and creates the archive regardless of its size. |
### `git` ### `git`
Various commands to manage the git repos. Includes `usvfs`, `NexusClientCli` and all the projects under `modorganizer_super`. Various commands to manage the git repos. Includes `usvfs`, `NexusClientCli` and all the projects under `modorganizer_super`.
#### `set-remotes` #### `set-remotes`
Does the same thing as the when `set_origin_remotes` is set in the INI: renames `origin` to `upstream` and adds a new `origin` with the options below. See [Origin and upstream remotes](#origin-and-upstream-remotes). Does the same thing as the when `set_origin_remotes` is set in the INI: renames `origin` to `upstream` and adds a new `origin` with the options below. See [Origin and upstream remotes](#origin-and-upstream-remotes).
| Option | Description | | Option | Description |
| --- | --- | | --- | --- |
| `--username <USERNAME>` | Git username | | `--username <USERNAME>` | Git username. |
| `--email <EMAIL>` | Git email | | `--email <EMAIL>` | Git email. |
| `--key <PATH>` | Path to a putty key | | `--key <PATH>` | Path to a putty key. |
| `--no-push` | Disables pushing to `upstream` by changing the push url to `nopushurl` to avoid accidental pushes | | `--no-push` | Disables pushing to `upstream` by changing the push url to `nopushurl` to avoid accidental pushes. |
| `--push-origin` | Sets the new `origin` remote as the default push target | `--push-origin` | Sets the new `origin` remote as the default push target. |
| `<path>` | Only use this repo instead of going through all of them | | `<path>` | Only use this repo instead of going through all of them. |
#### `add-remote` #### `add-remote`
Simply adds a new remote with the given parameters to all the git repos. Simply adds a new remote with the given parameters to all the git repos.
| Option | Description | | Option | Description |
@@ -300,31 +359,22 @@ Simply adds a new remote with the given parameters to all the git repos.
| `--push-origin` | Sets this new remote as the default push target | | `--push-origin` | Sets this new remote as the default push target |
| `<path>` | Only use this repo instead of going through all of them | | `<path>` | Only use this repo instead of going through all of them |
### `cmake-config`
### `cmake` The `cmake-config` command can display the `CMAKE_INSTALL_PREFIX` and
Runs `cmake` in a directory, as if `mob` had done it as part of the build process for a `modorganizer` project. The `cmake` invocation will contain all variables required for `cmake_common` to work. `CMAKE_PREFIX_PATH` variable using by `mob` itself when building so that you can run
your own `cmake`.
By default, this runs: Below is a typical use of the command:
```powershell
# configure the current project with preset vs2022-windows using mob PATH
cmake --preset vs2022-windows `
("-DCMAKE_INSTALL_PREFIX=" + (mob cmake-config install-prefix)) `
("-DCMAKE_PREFIX_PATH=" + (mob cmake-config prefix-path))
``` ```
cmake
-G "Visual Studio version year"
-A x64
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_MESSAGE=NEVER
<all defines>
--log-level=ERROR
--no-warn-unused-cli
..
```
#### Options
| Option | Description |
| --- | --- |
| `--generator <GEN>` | Sets the `-G` option |
| `--cmd` | Sets the last bit of the command, defaults to `..` |
| `--x86`, `--x64` | Whether to use the 32-bit or 64-bit vcvars. If `--generator` is not given, also sets `-A`. |
| `--install-prefix <PATH>` | Passes `-DCMAKE_INSTALL_PREFIX=<path>` to cmake |
### `inis` ### `inis`
Shows a list of the all the INIs that would be loaded, in order of priority. See [INI files](#ini-files).
Shows a list of the all the INIs that would be loaded, in order of priority.
See [INI files](#override-options-using-ini-files).

Some files were not shown because too many files have changed in this diff Show More