mirror of
https://github.com/ModOrganizer2/mob.git
synced 2026-07-27 14:07:05 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63bbf443d9 | ||
|
|
7d1fdce8b5 | ||
|
|
45508c3d99 | ||
|
|
95fa410e45 | ||
|
|
fe14219400 | ||
|
|
b8fe18effa | ||
|
|
a9be58aaa3 | ||
|
|
35083f28e8 | ||
|
|
a433afe54f | ||
|
|
0b839834a5 | ||
|
|
932e639850 | ||
|
|
6a4f047a13 | ||
|
|
3f2aad38cd | ||
|
|
0039738ca2 | ||
|
|
93ec9f2409 | ||
|
|
862e6d3684 | ||
|
|
f9bb4a15d8 | ||
|
|
ad06c600ab | ||
|
|
25bcd55b3b | ||
|
|
a2e9b63b65 | ||
|
|
f0fdead031 | ||
|
|
cc5e49ba5c | ||
|
|
9df84177d1 | ||
|
|
7d38877fa4 | ||
|
|
abcd5aef03 | ||
|
|
a526409349 | ||
|
|
55b57aa44b | ||
|
|
a3857ae64b | ||
|
|
676a9c1911 | ||
|
|
9d9e3b38fb | ||
|
|
6712f78dd4 | ||
|
|
0266fc0133 | ||
|
|
19ec6fbf2e | ||
|
|
3f4eed9e2a | ||
|
|
3e8f5b83e2 | ||
|
|
b98e4ae653 | ||
|
|
57453530b4 | ||
|
|
fb0b446e13 | ||
|
|
e2493b5da2 | ||
|
|
e397eae7b1 | ||
|
|
a6f2cbee45 | ||
|
|
b7de6c4dfa | ||
|
|
a3c0c72644 | ||
|
|
8d70ec1ca6 | ||
|
|
e8c4835bc9 | ||
|
|
6cc1883492 | ||
|
|
80b002cffa | ||
|
|
7c677c142e | ||
|
|
5398952bad | ||
|
|
720cd53d3d | ||
|
|
8ce78c529d | ||
|
|
8a16685805 | ||
|
|
863364b7ac | ||
|
|
f1f9ec72cc | ||
|
|
936d0f7d37 | ||
|
|
ec573c1266 | ||
|
|
e2747c4163 | ||
|
|
1bcda87303 | ||
|
|
1874e6287f | ||
|
|
af407c8ea8 | ||
|
|
196390e5f2 | ||
|
|
8af608de5a | ||
|
|
ed0f05a96e | ||
|
|
359f277dff |
@@ -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)
|
||||
+9
-30
@@ -1,40 +1,19 @@
|
||||
$root = $PSScriptRoot
|
||||
if (!$root) {
|
||||
$root = "."
|
||||
$root = "."
|
||||
}
|
||||
|
||||
$installationPath = & $root\third-party\bin\vswhere.exe -products * -nologo -prerelease -latest -property installationPath
|
||||
if (! $?) {
|
||||
Write-Error "vswhere returned $LastExitCode"
|
||||
exit $LastExitCode
|
||||
}
|
||||
|
||||
if (! $installationPath) {
|
||||
Write-Error "Empty installation path"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$opts = ""
|
||||
$opts += " $root\vs\mob.sln"
|
||||
$opts += " -m"
|
||||
$opts += " -p:Configuration=Release"
|
||||
$opts += " -noLogo"
|
||||
$opts += " -p:UseMultiToolTask=true"
|
||||
$opts += " -p:EnforceProcessCountAcrossBuilds=true"
|
||||
$opts += " -clp:ErrorsOnly;Verbosity=minimal"
|
||||
|
||||
$vsDevCmd = "$installationPath\Common7\Tools\VsDevCmd.bat"
|
||||
if (!(Test-Path "$vsDevCmd")) {
|
||||
Write-Error "VdDevCmd.bat not found at $vsDevCmd"
|
||||
exit 1
|
||||
}
|
||||
|
||||
& "${env:COMSPEC}" /c "`"$vsDevCmd`" -no_logo -arch=amd64 -host_arch=amd64 && msbuild $opts"
|
||||
cmake -B build $root | Out-Null
|
||||
cmake --build $root/build --config Release -- `
|
||||
"-p:UseMultiToolTask=true" `
|
||||
"-noLogo" `
|
||||
"-p:EnforceProcessCountAcrossBuilds=true" `
|
||||
"-clp:ErrorsOnly;Verbosity=minimal"
|
||||
|
||||
if (! $?) {
|
||||
Write-Error "Build failed"
|
||||
exit $LastExitCode
|
||||
}
|
||||
|
||||
Copy-Item "$root\build\Release\x64\mob.exe" "$root\mob.exe"
|
||||
echo "run ``.\mob -d prefix/path build`` to start building"
|
||||
Copy-Item "$root\build\src\Release\mob.exe" "$root\mob.exe"
|
||||
Write-Output "run ``.\mob -d prefix/path build`` to start building"
|
||||
|
||||
+21
-21
@@ -1,22 +1,23 @@
|
||||
7-Zip source code
|
||||
~~~~~~~~~~~~~~~~~
|
||||
7-Zip
|
||||
~~~~~
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
7-Zip Copyright (C) 1999-2019 Igor Pavlov.
|
||||
7-Zip Copyright (C) 1999-2023 Igor Pavlov.
|
||||
|
||||
The licenses for files are:
|
||||
|
||||
1) CPP/7zip/Compress/Rar* files: the "GNU LGPL" with "unRAR license restriction"
|
||||
2) CPP/7zip/Compress/LzfseDecoder.cpp: the "BSD 3-clause License"
|
||||
3) Some files are "public domain" files, if "public domain" status is stated in source file.
|
||||
4) the "GNU LGPL" for all other files. If there is no license information in
|
||||
some source file, that file is under the "GNU LGPL".
|
||||
|
||||
The "GNU LGPL" with "unRAR license restriction" means that you must follow both
|
||||
"GNU LGPL" rules and "unRAR license restriction" rules.
|
||||
1) 7z.dll:
|
||||
- The "GNU LGPL" as main license for most of the code
|
||||
- The "GNU LGPL" with "unRAR license restriction" for some code
|
||||
- The "BSD 3-clause License" for some code
|
||||
2) All other files: the "GNU LGPL".
|
||||
|
||||
Redistributions in binary form must reproduce related license information from this file.
|
||||
|
||||
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
|
||||
@@ -32,9 +33,8 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
You can receive a copy of the GNU Lesser General Public License from
|
||||
http://www.gnu.org/
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
BSD 3-clause License
|
||||
--------------------
|
||||
|
||||
The "BSD 3-clause License" is used for the code in LzfseDecoder.cpp that implements LZFSE data decompression.
|
||||
The "BSD 3-clause License" is used for the code in 7z.dll that implements LZFSE data decompression.
|
||||
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc,
|
||||
that also uses the "BSD 3-clause License":
|
||||
|
||||
@@ -73,17 +73,17 @@
|
||||
unRAR license restriction
|
||||
-------------------------
|
||||
|
||||
The decompression engine for RAR archives was developed using source
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
--
|
||||
|
||||
+23
-19
@@ -1,23 +1,27 @@
|
||||
Copyright (c) 2012 - 2016, Victor Zverovich
|
||||
Copyright (c) 2012 - present, Victor Zverovich
|
||||
|
||||
All rights reserved.
|
||||
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:
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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 OWNER 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.
|
||||
--- Optional exception to the license ---
|
||||
|
||||
As an exception, if, as a result of your compiling your source code, portions
|
||||
of this Software are embedded into a machine-executable object form of such
|
||||
source code, you may redistribute such embedded portions in such object form
|
||||
without including the above copyright and permission notices.
|
||||
|
||||
@@ -59,6 +59,17 @@ direction to make these releases possible.
|
||||
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
|
||||
===============================================================
|
||||
|
||||
Python software and documentation are licensed under the
|
||||
Python Software Foundation License Version 2.
|
||||
|
||||
Starting with Python 3.8.6, examples, recipes, and other code in
|
||||
the documentation are dual licensed under the PSF License Version 2
|
||||
and the Zero-Clause BSD license.
|
||||
|
||||
Some software incorporated into Python is under different licenses.
|
||||
The licenses are listed with code falling under that license.
|
||||
|
||||
|
||||
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
||||
--------------------------------------------
|
||||
|
||||
@@ -252,3 +263,17 @@ FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
+7
-6
@@ -1,11 +1,12 @@
|
||||
RIVERBANK COMPUTING LIMITED LICENSE AGREEMENT FOR SIP
|
||||
|
||||
1. This LICENSE AGREEMENT is between Riverbank Computing Limited ("Riverbank"),
|
||||
and the Individual or Organization ("Licensee") 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.
|
||||
1. This LICENSE AGREEMENT ("the SIP License") is between Riverbank Computing
|
||||
Limited ("Riverbank"), and the Individual or Organization ("Licensee")
|
||||
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
|
||||
hereby grants Licensee a nonexclusive, royalty-free, world-wide license to
|
||||
|
||||
@@ -20,3 +20,7 @@ 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.
|
||||
|
||||
-- NOTE: Third party dependency used by this software --
|
||||
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
|
||||
|
||||
|
||||
+1
-6
@@ -1,7 +1,4 @@
|
||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||
version 1.2.11, January 15th, 2017
|
||||
|
||||
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||
(C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
@@ -21,5 +18,3 @@
|
||||
|
||||
Jean-loup Gailly Mark Adler
|
||||
jloup@gzip.org madler@alumni.caltech.edu
|
||||
|
||||
*/
|
||||
@@ -13,17 +13,22 @@ log_file = mob.log
|
||||
ignore_uncommitted = false
|
||||
github_key =
|
||||
|
||||
[cmake]
|
||||
install_message = never
|
||||
host =
|
||||
|
||||
[aliases]
|
||||
super = cmake_common modorganizer* githubpp
|
||||
plugins = check_fnis bsapacker bsa_extractor diagnose_basic installer_* plugin_python preview_base preview_bsa tool_* game_*
|
||||
|
||||
[task]
|
||||
enabled = true
|
||||
mo_org = ModOrganizer2
|
||||
mo_branch = master
|
||||
no_pull = false
|
||||
ignore_ts = false
|
||||
revert_ts = false
|
||||
enabled = true
|
||||
mo_org = ModOrganizer2
|
||||
mo_branch = master
|
||||
mo_fallback =
|
||||
no_pull = false
|
||||
ignore_ts = false
|
||||
revert_ts = false
|
||||
|
||||
git_url_prefix = https://github.com/
|
||||
git_shallow = true
|
||||
@@ -58,10 +63,11 @@ cmake = cmake.exe
|
||||
perl = perl.exe
|
||||
devenv = devenv.exe
|
||||
msbuild = msbuild.exe
|
||||
nmake = nmake.exe
|
||||
nuget = nuget.exe
|
||||
vswhere = vswhere.exe
|
||||
nasm = nasm.exe
|
||||
tx = tx.py37-x64.exe
|
||||
tx = tx.exe
|
||||
lrelease = lrelease.exe
|
||||
iscc = ISCC.exe
|
||||
vcvars =
|
||||
@@ -71,7 +77,7 @@ enabled = true
|
||||
key =
|
||||
team = mod-organizer-2-team
|
||||
project = mod-organizer-2
|
||||
url = https://www.transifex.com
|
||||
url = https://app.transifex.com
|
||||
minimum = 60
|
||||
force = false
|
||||
configure = true
|
||||
@@ -86,33 +92,32 @@ python = true
|
||||
usvfs = false
|
||||
|
||||
[versions]
|
||||
vs = 16
|
||||
vs_year = 2019
|
||||
vs_toolset = 14.2
|
||||
sdk = 10.0.19041.0
|
||||
sevenz = 19.00
|
||||
boost = 1.75.0
|
||||
boost_vs = 14.2
|
||||
fmt = 7.1.3
|
||||
vs = 17
|
||||
vs_year = 2022
|
||||
vs_toolset = 14.3
|
||||
sdk = 10.0.22621.0
|
||||
sevenz = 23.01
|
||||
boost = 1.82.0
|
||||
boost_vs = 14.3
|
||||
fmt = 8.1.1
|
||||
gtest = main
|
||||
libloot = 0.17.1
|
||||
libloot_hash = ge670605
|
||||
libloot_branch = 0.17.1
|
||||
lz4 = v1.9.3
|
||||
libloot = 0.19.4
|
||||
lz4 = v1.9.4
|
||||
nmm = 0.71.2
|
||||
openssl = 1.1.1i
|
||||
pyqt = 5.15.2
|
||||
pyqt_builder = 1.7.0
|
||||
pyqt_sip = 12.8.1
|
||||
python = v3.8.7
|
||||
bzip2 = 1.0.6
|
||||
sip = 5.5.0
|
||||
spdlog = v1.8.2
|
||||
qt = 5.15.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 = 1.2.12
|
||||
libbsarch = 0.0.8
|
||||
usvfs = master
|
||||
zlib = v1.2.13
|
||||
libbsarch = 0.0.9
|
||||
usvfs = qt6
|
||||
explorerpp = 1.3.5
|
||||
|
||||
ss_paper_lad_6788 = 7.0
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
--- CPP/7zip/7zip.mak Mon Jun 23 11:56:48 2014
|
||||
+++ CPP/7zip/7zip.mak Mon Apr 27 15:38:13 2020
|
||||
@@ -1,5 +1,4 @@
|
||||
-OBJS = \
|
||||
- $O\StdAfx.obj \
|
||||
+OBJS_NEEDING_PCH = \
|
||||
$(CURRENT_OBJS) \
|
||||
$(COMMON_OBJS) \
|
||||
$(WIN_OBJS) \
|
||||
@@ -26,9 +25,11 @@
|
||||
$(ZIP_OBJS) \
|
||||
$(COMPRESS_OBJS) \
|
||||
$(CRYPTO_OBJS) \
|
||||
- $(C_OBJS) \
|
||||
+ $(C_OBJS)
|
||||
+
|
||||
+OBJS = $(OBJS_NEEDING_PCH) \
|
||||
$(ASM_OBJS) \
|
||||
- $O\resource.res \
|
||||
+ $O\resource.res
|
||||
|
||||
!include "../../../Build.mak"
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
--- CPP/Build.mak Thu Feb 21 07:50:31 2019
|
||||
+++ CPP/Build.mak Tue Apr 28 21:24:54 2020
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
|
||||
!IF "$(PLATFORM)" == "x64"
|
||||
-MY_ML = ml64 -Dx64 -WX
|
||||
+MY_ML = ml64 -Dx64 -WX -nologo
|
||||
!ELSEIF "$(PLATFORM)" == "arm"
|
||||
MY_ML = armasm -WX
|
||||
!ELSE
|
||||
@@ -137,6 +137,8 @@
|
||||
|
||||
all: $(PROGPATH)
|
||||
|
||||
+$(OBJS_NEEDING_PCH): $O\StdAfx.obj
|
||||
+
|
||||
clean:
|
||||
-del /Q $(PROGPATH) $O\*.exe $O\*.dll $O\*.obj $O\*.lib $O\*.exp $O\*.res $O\*.pch $O\*.asm
|
||||
|
||||
@@ -146,7 +148,7 @@
|
||||
if not exist "$O/asm" mkdir "$O/asm"
|
||||
|
||||
$(PROGPATH): $O $O/asm $(OBJS) $(DEF_FILE)
|
||||
- link $(LFLAGS) -out:$(PROGPATH) $(OBJS) $(LIBS)
|
||||
+ link $(LFLAGS) -out:$(PROGPATH) $O\StdAfx.obj $(OBJS) $(LIBS)
|
||||
|
||||
!IFNDEF NO_DEFAULT_RES
|
||||
$O\resource.res: $(*B).rc
|
||||
@@ -1,11 +0,0 @@
|
||||
--- tools/build/src/engine/vswhere_usability_wrapper.cmd Wed Dec 4 23:03:07 2019
|
||||
+++ tools/build/src/engine/vswhere_usability_wrapper.cmd Wed Apr 29 20:23:25 2020
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
REM Visual Studio 2019 (16.X, toolset 14.2)
|
||||
set VSWHERE_LMT=-version "[16.0,17.0)"
|
||||
-SET VSWHERE_ARGS=-latest -products * %VSWHERE_REQ% %VSWHERE_PRP% %VSWHERE_LMT%
|
||||
+SET VSWHERE_ARGS=-latest -prerelease -products * %VSWHERE_REQ% %VSWHERE_PRP% %VSWHERE_LMT%
|
||||
for /f "usebackq tokens=*" %%i in (`vswhere %VSWHERE_ARGS%`) do (
|
||||
endlocal
|
||||
echo Found with vswhere %%i
|
||||
@@ -27,21 +27,37 @@
|
||||
## Quick start
|
||||
```
|
||||
> git clone https://github.com/ModOrganizer2/mob
|
||||
> cd mob
|
||||
> bootstrap
|
||||
> mob -d c:\somewhere build
|
||||
```
|
||||
|
||||
## Slow start
|
||||
- Install Qt 5.15.2 ([Installer](http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe))
|
||||
- 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 WebEngine
|
||||
- Optional: Sources, Debug Information Files
|
||||
- Install Visual Studio 2019 ([Installer](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16))
|
||||
- Additional Libraries:
|
||||
- Qt WebEngine (display nexus pages)
|
||||
- Qt Image Formats (display images in image tab and preview)
|
||||
- Qt Positioning (required by QtWebEngine)
|
||||
- Qt Serial Port (required by Qt Core)
|
||||
- Qt Web Channel (required by QtWebEngine)
|
||||
- Qt WebSockets (Nexus api/download)
|
||||
- Optional:
|
||||
- Qt Source Files
|
||||
- Qt Debug Files
|
||||
- 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++
|
||||
- Git for Windows (if you don't have git already installed)
|
||||
- .NET Framework 3.5 development tools
|
||||
- .NET Framework 4.6 targeting pack (alternative: [Developer Pack](https://dotnet.microsoft.com/download/dotnet-framework/net46))
|
||||
- .NET Framework 4.8 targeting pack and SDK (alternative: [Developer Pack](https://dotnet.microsoft.com/download/dotnet-framework/net48))
|
||||
- Desktop .NET desktop development (needed by OMOD and FOMOD installers)
|
||||
- Individual Components:
|
||||
- .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)
|
||||
- Windows Universal C Runtime
|
||||
- C++ ATL for latest v143 build Tools (x86 & x64)
|
||||
- C++ /CLI support for v143 build Tools (Latest) (for OMOD and FOMOD installers)
|
||||
- Windows 11 SDK (get latest)
|
||||
- C++ Build Tools core features
|
||||
- Optional:
|
||||
- Git for Windows (if you don't have git already installed)
|
||||
- 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.
|
||||
@@ -113,6 +129,8 @@ Unless otherwise stated, applies to any task that is a git repo.
|
||||
| --- | --- | --- |
|
||||
| `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_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). |
|
||||
| `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. |
|
||||
| `git_url_prefix` | string | When cloning a repo, the URL will be `$(git_url_prefix)mo_org/repo.git`. |
|
||||
@@ -165,7 +183,7 @@ The versions for all the tasks.
|
||||
### `[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.
|
||||
|
||||
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\5.14.2\msvc2017_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.5.1\msvc2019_64\`. The other path `qt_bin` will be derived from it, it's just `$qt_install/bin/`.
|
||||
|
||||
|
||||
## Command line
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
file(GLOB_RECURSE source_files *.cpp)
|
||||
file(GLOB RECURSE header_files *.h)
|
||||
|
||||
add_executable(mob ${source_files})
|
||||
set_target_properties(mob PROPERTIES CXX_STANDARD 20)
|
||||
|
||||
target_compile_definitions(mob PUBLIC NOMINMAX)
|
||||
target_compile_options(mob PUBLIC "/MT")
|
||||
target_include_directories(mob PUBLIC ${CMAKE_SOURCE_DIR}/third-party/include)
|
||||
target_link_libraries(mob PUBLIC
|
||||
wsock32 ws2_32 crypt32 wldap32 dbghelp shlwapi version
|
||||
optimized ${CMAKE_SOURCE_DIR}/third-party/lib/libcurl.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/third-party/lib/libcurl-d.lib
|
||||
optimized ${CMAKE_SOURCE_DIR}/third-party/lib/zlib.lib
|
||||
debug ${CMAKE_SOURCE_DIR}/third-party/lib/zlibd.lib)
|
||||
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PREFIX src
|
||||
FILES ${source_files} ${header_files})
|
||||
set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT mob)
|
||||
@@ -53,7 +53,7 @@ void help(const clipp::group& g, const std::string& more)
|
||||
command::common_options command::common;
|
||||
|
||||
command::command(flags f)
|
||||
: picked_(false), help_(false), flags_(f), code_(0)
|
||||
: picked_(false), help_(false), flags_(f), code_()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -261,11 +261,6 @@ std::vector<fs::path> git_command::get_repos() const
|
||||
if (fs::exists(tasks::usvfs::source_path()))
|
||||
v.push_back(tasks::usvfs::source_path());
|
||||
|
||||
// ncc
|
||||
if (fs::exists(tasks::ncc::source_path()))
|
||||
v.push_back(tasks::ncc::source_path());
|
||||
|
||||
|
||||
const auto super = tasks::modorganizer::super_path();
|
||||
|
||||
// all directories in super except for those starting with a dot
|
||||
|
||||
+1
-1
@@ -328,7 +328,7 @@ pr_command::pr_info pr_command::get_pr_info(
|
||||
json = nlohmann::json::parse(output);
|
||||
|
||||
const std::string repo = json["head"]["repo"]["name"];
|
||||
const std::string author = json["head"]["repo"]["owner"]["login"];
|
||||
const std::string author = json["head"]["repo"]["user"]["login"];
|
||||
const std::string branch = json["head"]["ref"];
|
||||
|
||||
return {repo, author, branch};
|
||||
|
||||
@@ -116,8 +116,6 @@ void release_command::make_uibase()
|
||||
|
||||
op::archive_from_glob(gcx(),
|
||||
tasks::modorganizer::super_path() / "uibase" / "src" / "*.h", out, {});
|
||||
op::archive_from_glob(gcx(),
|
||||
tasks::modorganizer::super_path() / "game_features" / "src" / "*.h", out, {});
|
||||
op::archive_from_files(gcx(), { conf().path().install_libs() / "uibase.lib" }, conf().path().install_libs(), out);
|
||||
}
|
||||
|
||||
|
||||
@@ -663,6 +663,11 @@ conf_task conf::task(const std::vector<std::string>& names)
|
||||
return {names};
|
||||
}
|
||||
|
||||
conf_cmake conf::cmake()
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
conf_tools conf::tool()
|
||||
{
|
||||
return {};
|
||||
@@ -726,6 +731,52 @@ bool conf_task::get_bool(std::string_view key) const
|
||||
}
|
||||
|
||||
|
||||
bool conf_cmake::cmake_constant::is_equivalent(std::string_view other) const
|
||||
{
|
||||
// _strcmpi does not have a n-overload, and since string_view is not
|
||||
// necessarily null-terminated, _strmcpi cannot be safely used
|
||||
return std::equal(
|
||||
std::begin(value_), std::end(value_),
|
||||
std::begin(other), std::end(other),
|
||||
[](auto&& c1, auto&& c2) { return ::tolower(c1) == ::tolower(c2); }
|
||||
);
|
||||
}
|
||||
|
||||
conf_cmake::conf_cmake()
|
||||
: conf_section("cmake")
|
||||
{
|
||||
}
|
||||
|
||||
const conf_cmake::cmake_constant conf_cmake::ALWAYS{"always"};
|
||||
const conf_cmake::cmake_constant conf_cmake::LAZY{"lazy"};
|
||||
const conf_cmake::cmake_constant conf_cmake::NEVER{"never"};
|
||||
|
||||
conf_cmake::cmake_constant conf_cmake::install_message() const
|
||||
{
|
||||
return read_cmake_constant("install_message", { ALWAYS, LAZY, NEVER });
|
||||
}
|
||||
|
||||
std::string conf_cmake::host() const
|
||||
{
|
||||
return details::get_string(name(), "host");
|
||||
}
|
||||
|
||||
conf_cmake::cmake_constant conf_cmake::read_cmake_constant(
|
||||
std::string_view key, std::vector<cmake_constant> const& allowed) const
|
||||
{
|
||||
const auto value = details::get_string(name(), key);
|
||||
for (const auto& constant : allowed)
|
||||
{
|
||||
if (constant.is_equivalent(value)) {
|
||||
return constant;
|
||||
}
|
||||
}
|
||||
|
||||
gcx().bail_out(context::conf,
|
||||
"bad value '{}' for {}/{} (expected one of {})",
|
||||
value, name(), key, join(allowed, ", ", std::string{}));
|
||||
}
|
||||
|
||||
conf_tools::conf_tools()
|
||||
: conf_section("tools")
|
||||
{
|
||||
|
||||
+74
-14
@@ -83,6 +83,8 @@ protected:
|
||||
{
|
||||
}
|
||||
|
||||
const auto& name() const { return name_; }
|
||||
|
||||
private:
|
||||
std::string name_;
|
||||
};
|
||||
@@ -129,20 +131,21 @@ public:
|
||||
return get_bool(key);
|
||||
}
|
||||
|
||||
std::string mo_org() const { return get("mo_org"); }
|
||||
std::string mo_branch() const { return get("mo_branch"); }
|
||||
bool no_pull() const { return get<bool>("no_pull"); }
|
||||
bool revert_ts() const { return get<bool>("revert_ts"); }
|
||||
bool ignore_ts()const { return get<bool>("ignore_ts"); }
|
||||
std::string git_url_prefix() const { return get("git_url_prefix"); }
|
||||
bool git_shallow() const { return get<bool>("git_shallow"); }
|
||||
std::string git_user() const { return get("git_username"); }
|
||||
std::string git_email() const { return get("git_email"); }
|
||||
bool set_origin_remote() const { return get<bool>("set_origin_remote"); }
|
||||
std::string remote_org() const { return get("remote_org"); }
|
||||
std::string remote_key() const { return get("remote_key"); }
|
||||
bool remote_no_push_upstream() const { return get<bool>("remote_no_push_upstream"); }
|
||||
bool remote_push_default_origin() const { return get<bool>("remote_push_default_origin"); }
|
||||
std::string mo_org() const { return get("mo_org"); }
|
||||
std::string mo_branch() const { return get("mo_branch"); }
|
||||
std::string mo_fallback_branch() const { return get("mo_fallback"); }
|
||||
bool no_pull() const { return get<bool>("no_pull"); }
|
||||
bool revert_ts() const { return get<bool>("revert_ts"); }
|
||||
bool ignore_ts()const { return get<bool>("ignore_ts"); }
|
||||
std::string git_url_prefix() const { return get("git_url_prefix"); }
|
||||
bool git_shallow() const { return get<bool>("git_shallow"); }
|
||||
std::string git_user() const { return get("git_username"); }
|
||||
std::string git_email() const { return get("git_email"); }
|
||||
bool set_origin_remote() const { return get<bool>("set_origin_remote"); }
|
||||
std::string remote_org() const { return get("remote_org"); }
|
||||
std::string remote_key() const { return get("remote_key"); }
|
||||
bool remote_no_push_upstream() const { return get<bool>("remote_no_push_upstream"); }
|
||||
bool remote_push_default_origin() const { return get<bool>("remote_push_default_origin"); }
|
||||
|
||||
private:
|
||||
std::vector<std::string> names_;
|
||||
@@ -151,6 +154,62 @@ private:
|
||||
};
|
||||
|
||||
|
||||
// options in [task] or [task_name:task]
|
||||
//
|
||||
class conf_cmake : conf_section<std::string>
|
||||
{
|
||||
public:
|
||||
class cmake_constant {
|
||||
std::string value_;
|
||||
|
||||
// check if the given string is equivalent to this constant
|
||||
//
|
||||
bool is_equivalent(std::string_view other) const;
|
||||
|
||||
friend class conf_cmake;
|
||||
|
||||
public:
|
||||
constexpr cmake_constant(std::string_view value) : value_{value} { }
|
||||
constexpr const auto& value() const { return value_; }
|
||||
constexpr operator const std::string& () const { return value(); }
|
||||
|
||||
|
||||
friend bool operator==(cmake_constant const& lhs, cmake_constant const& rhs)
|
||||
{
|
||||
return lhs.is_equivalent(rhs.value());
|
||||
}
|
||||
friend bool operator!=(cmake_constant const& lhs, cmake_constant const& rhs)
|
||||
{
|
||||
return !(lhs == rhs);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
static const cmake_constant ALWAYS;
|
||||
static const cmake_constant LAZY;
|
||||
static const cmake_constant NEVER;
|
||||
|
||||
|
||||
public:
|
||||
conf_cmake();
|
||||
|
||||
// specify the value for CMAKE_INSTALL_MESSAGE
|
||||
//
|
||||
cmake_constant install_message() const;
|
||||
|
||||
// specify the toolset host configuration, if any, this is equivalent
|
||||
// to -T host=XXX on the command line
|
||||
//
|
||||
// an empty string means no host configured
|
||||
//
|
||||
std::string host() const;
|
||||
|
||||
private:
|
||||
cmake_constant read_cmake_constant(
|
||||
std::string_view key, std::vector<cmake_constant> const& allowed) const;
|
||||
};
|
||||
|
||||
|
||||
// options in [tools]
|
||||
//
|
||||
class conf_tools : public conf_section<fs::path>
|
||||
@@ -238,6 +297,7 @@ class conf
|
||||
public:
|
||||
conf_global global();
|
||||
conf_task task(const std::vector<std::string>& names);
|
||||
conf_cmake cmake();
|
||||
conf_tools tool();
|
||||
conf_transifex transifex();
|
||||
conf_prebuilt prebuilt();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user