140 Commits
Author SHA1 Message Date
Chris Bessent 26e7875e25 Make the installer use the same branch as everything else 2020-01-13 19:09:16 -07:00
Jeremy Rimpo cae2ad9a83 Update branch schemas
(cherry picked from commit 72314a1fa2)
2020-01-13 17:42:18 -06:00
Chris Bessent 76acf2ab02 Merge pull request #58 from ModOrganizer2/Develop
Stage for release 2.2.2
2020-01-06 05:14:59 -07:00
Silarn 3779f01a24 Some changes to help compile openssl in one pass 2019-12-31 03:04:01 -06:00
LostDragonist 2130313aa9 Modify openSSL build to use num_jobs config 2019-12-30 23:06:06 -07:00
LePresidente bf8be4b6f5 Update USVFS release version to latest. 2019-12-29 17:24:15 +02:00
Silarn ddd749cd7d Migrate openssl to JOM and only build libs 2019-12-22 15:04:52 -06:00
Silarn 14f7ff5752 Fix issues with building to a different drive from umbrella 2019-12-14 15:20:02 -06:00
Silarn 8d63cb63d7 Update transifex location to new organization project 2019-12-07 19:28:37 -06:00
isanae f60c0d1cd0 Merge pull request #57 from isanae/form43
Added form43 repo
2019-12-07 11:11:58 -05:00
isanae 9a35555324 added form43 repo 2019-12-07 11:11:20 -05:00
isanae bc6d98abf2 Merge pull request #56 from isanae/prereq-fix
Call check_prerequisites_config() after init_config()
2019-12-07 11:09:44 -05:00
isanae aa1707d58f call check_prerequisites_config() after init_config() 2019-12-07 11:08:18 -05:00
isanae ad5bf6d802 Merge pull request #55 from isanae/sf-progress
Fix bzip files being downloaded unconditionally
2019-12-07 06:30:34 -05:00
isanae 87e60b474b sourceforge downloader now uses a progress file to avoid connections 2019-12-07 06:28:06 -05:00
isanae e4a54b1bf6 Merge pull request #54 from isanae/download_c-fix
Fix for "download_c" progress files
2019-12-07 04:42:57 -05:00
isanae 014fe35728 fixed some download progress files named "download_c"
added a few eggs to the gitignore file
2019-12-07 04:21:29 -05:00
isanae 346fadda11 Merge pull request #53 from isanae/6788-stylesheets
Added stylesheets from 6788
2019-12-04 16:32:25 -05:00
isanae 619d53d62c removed unused imports
< and > should be have a replacement character
2019-12-04 15:38:42 -05:00
isanae 8d4753913e added stylesheets from 6788
fixed bad progress names for build.Execute() with lambdas
2019-12-04 15:35:45 -05:00
Jeremy Rimpo 0aaa7197c8 Add lootcli to modorganizer deps 2019-11-25 04:54:26 -06:00
isanae 9752748a0b Merge pull request #52 from isanae/libloot-0.15
updated libloot to 0.15
2019-11-25 05:35:44 -05:00
isanae fb1b964a1d updated libloot to 0.15 2019-11-25 05:32:09 -05:00
Silarn e5d34f6355 Shift dependencies so that MO2 deploys QT libraries for BSA Packer 2019-11-19 14:40:44 -06:00
Silarn d52ad7f70c Add bsa packer, libbsarch, and boost DI 2019-11-19 14:24:31 -06:00
Silarn 417dc28beb Update to Qt 5.13.2 2019-11-19 12:19:11 -06:00
Silarn 3b329da9f2 Add copyright 2019-11-19 12:18:32 -06:00
LePresidente af8b68a223 Use released version of explorer++ instead of master 2019-11-18 07:29:06 +02:00
LePresidente f0e987f33d Move some of the config initialising later in the init process. Since unimake can change these parameters using the -s flag, if they are checked to early they will return null. 2019-11-13 15:23:07 +02:00
Al ba65c1eee7 Upgrade qt appveyor version to 5.13.2
as 5.13.1 was removed.
2019-11-11 21:36:48 +01:00
LostDragonist 20a090fe0e Update README.md
Fix VS2019 link
2019-11-10 09:16:03 -07:00
Silarn e9f2cef641 Make sure dlls directory exists 2019-10-31 10:47:28 -05:00
Silarn eaaa8cfce6 Only move applink for full builds 2019-10-31 10:25:25 -05:00
Silarn 0d48b26c41 Add PYD PDBs 2019-10-29 13:47:22 -05:00
Silarn 92901de614 Updates for python, compiled core files
* Fixes for downloader progress bar
* Updates to sourceforge downloader
2019-10-29 13:42:24 -05:00
Silarn fa727a82d8 Avoid error if no content-length 2019-10-29 03:03:32 -05:00
Silarn d23ab7efdd Compile python with bzip and repack most files into zip 2019-10-29 02:05:36 -05:00
Silarn 270be1a652 Return to just using JOM on Appveyor 2019-10-19 19:16:20 -05:00
Silarn 88325e0b1a Try nmake one more time 2019-10-19 17:18:37 -05:00
Silarn 4dfe6261ab Add msbuild as appveyor builder 2019-10-19 16:32:16 -05:00
Silarn 84c1ce48c6 Need value to upack 2019-10-19 16:09:26 -05:00
Silarn 0c0ea34931 Experimental compiler override for python plugins 2019-10-19 15:58:32 -05:00
Silarn 9e6ac86aaa Update for compatibility with networkx 2.4 2019-10-19 14:52:58 -05:00
Silarn 80fd6ff192 Merge branch 'Develop' of https://github.com/Modorganizer2/modorganizer-umbrella into Develop 2019-10-19 14:51:58 -05:00
Silarn 806952e828 Allow setting specific versions for pip packages 2019-10-19 14:51:41 -05:00
Al 894e1a798c Update Appveyor qt version to 5.13.1 2019-10-19 18:58:49 +02:00
isanae cb511cf0ec Merge pull request #51 from isanae/missing-licenses
Fix missing CC license
2019-10-10 06:10:01 -04:00
isanae 2869a3253a BY-SA-v3.0.txt was missing
added firefox user-agent because CC returns a 403 with python's
2019-10-09 01:40:32 -04:00
Al c6dcc7b703 Merge pull request #50 from isanae/sip-fix
Patch for incorrect include directory
2019-10-04 22:13:49 +02:00
isanae 3effeb1203 patch for include directory 2019-10-04 05:07:19 -04:00
Jeremy Rimpo 882199b077 Merge pull request #49 from AnyOldName3/patch-2
Add new DDS Preview plugin to umbrella
2019-09-30 20:50:18 -05:00
Chris Djali df7b11c38c Add new DDS Preview plugin to umbrella 2019-10-01 01:38:18 +01:00
Jeremy Rimpo 1432f04b99 Update Qt version. 2019-09-30 10:34:07 -05:00
Silarn db07d4219b Update dependencies 2019-09-27 23:46:26 -05:00
isanae 17fecf77c2 Merge pull request #48 from isanae/find-qt-in-path
Find qt in path
2019-09-23 15:43:38 -04:00
LostDragonist c80fea8b16 Update Appveyor Qt version to 5.13.0 2019-09-16 16:52:36 -05:00
isanae d0bee7bb98 moved qt custom path to top so it can override auto detection 2019-09-09 02:59:06 -04:00
isanae 5e724e8a8a look for qmake.exe and qtcreator.exe in path 2019-09-09 02:58:12 -04:00
Silarn d6c22b9dc4 Update libloot and NMM versions 2019-08-09 00:14:37 -05:00
Jeremy Rimpo a34c453a78 Merge pull request #46 from isanae/logging-rework
Added dependencies for fmt and spdlog
2019-08-02 00:20:17 -05:00
Jeremy Rimpo c2ffad707a Merge branch 'Develop' into logging-rework 2019-08-02 00:19:15 -05:00
Silarn 1f1e1b20f9 Merge branch 'Develop' of https://github.com/Modorganizer2/modorganizer-umbrella into Develop 2019-08-02 00:07:48 -05:00
Silarn 5a6bc3e91b Merge remote-tracking branch 'upstream/qt-5.13' into Develop 2019-08-02 00:07:36 -05:00
isanae f4b48e02aa added fmt and spdlog 2019-08-01 21:50:48 -04:00
Jeremy Rimpo 0a8c28b216 More dependency updates 2019-08-01 12:16:36 -05:00
Silarn 5a7b8972fe Replace Main_Branch with Dev_Branch and Release_Branch based on Release_Build setting 2019-07-22 01:15:26 -05:00
Silarn 5e8e05ba8f Replace Main_Branch with Dev_Branch and Release_Branch based on Release_Build setting 2019-07-22 01:07:51 -05:00
Silarn 3281486af9 Merge branch 'Develop' 2019-07-14 18:30:11 -05:00
Silarn bbc64f2817 Bump usvfs version for new release 2019-07-14 18:25:56 -05:00
Jeremy Rimpo 0e5618b3c3 Merge pull request #45 from ModOrganizer2/Develop
Stage for release 2.2.1
2019-07-14 17:54:29 -05:00
Jeremy Rimpo eafa310a6d Remove accidentally committed change 2019-07-10 19:58:48 -05:00
Silarn 21e8891617 Adding remaining OpenGL modules to PyQt5 2019-07-09 18:23:52 -05:00
Silarn 3eabe1d3f9 Update python to 3.7.4 2019-07-09 17:54:00 -05:00
Silarn 076ad2403f Update copyright date on egg init 2019-07-09 16:54:39 -05:00
Jeremy Rimpo 0e1eb57bcd Dependency updates and other clarifications 2019-07-09 16:45:38 -05:00
Silarn 4a2f36693e Update copyright year 2019-07-08 17:30:49 -05:00
Silarn 740eb5ee12 Use Installer bool to init InnoSetup location 2019-07-08 17:25:12 -05:00
Silarn 6965450496 Update openssl version 2019-07-03 19:10:55 -05:00
Silarn 023794a14c Merge remote-tracking branch 'origin/OpenSSL-1.1' into Develop 2019-07-03 19:04:50 -05:00
Silarn 34fba3bcba Merge branch 'Develop' of https://github.com/Modorganizer2/modorganizer-umbrella into Develop 2019-07-03 10:38:11 -05:00
Silarn 113c5f82d9 Update to Qt 5.12.4 2019-07-03 10:37:51 -05:00
Jeremy Rimpo bc11b71ae2 Don't process the patch file for flake8 checks 2019-07-02 15:28:12 -05:00
Silarn f5495a7125 PYI files are already copied into the python Libs
- Should be more compatible with prebuilts
2019-07-02 14:43:18 -05:00
Silarn 44056169a6 Experimental Qt 5.13 build 2019-07-02 13:25:48 -05:00
Silarn d6b72b8a18 Update sip and PyQt5 release versions with patch for new __init__ 2019-07-02 01:48:39 -05:00
Silarn 201cc57365 Add _QOpenGLFunctions_2_1 to PyQt5 build and copy pyi files into build 2019-07-02 01:42:16 -05:00
Silarn e82898ac9c Copy sip pyi into final build 2019-07-02 01:40:31 -05:00
Silarn e8547a76b3 Copy pyd files into pythoncore 2019-07-02 01:39:14 -05:00
Silarn 0fd9365142 Add patch __init__ file for newer PyQt5 releases (not yet implemented) 2019-07-01 22:25:22 -05:00
Silarn 84c38d6d4a Fix prebuilt lz4 dependency order 2019-07-01 22:24:32 -05:00
Silarn 3cb50b0767 Add download path variant for dev builds 2019-07-01 22:23:59 -05:00
Silarn 58d116a327 Update loot and let the branch be configurable 2019-07-01 22:23:16 -05:00
Al 18c81a63cc Updated link to Cmake 2019-06-18 21:59:36 +02:00
Al 18412990d0 Updated qt version in readme 2019-06-18 20:19:44 +02:00
Silarn 0d18b9f395 Update libloot, ICU, and openssl versions 2019-06-16 15:29:22 -05:00
Jeremy Rimpo 32a3cf1b22 CI: Set Qt back to 5.11 until VS 2019 image is usable 2019-05-22 13:44:40 -05:00
Jeremy Rimpo f3f001ff24 Avoid expansion error with nested array 2019-05-22 13:33:18 -05:00
Jeremy Rimpo a32159a3f0 Update Qt version for appveyor 2019-05-22 13:19:26 -05:00
Silarn a374e68d3d Use defined build type in config for MSBuild 2019-05-22 02:02:49 -05:00
Silarn 0608e1c829 Not necessary to specify build type again 2019-05-22 02:00:43 -05:00
Silarn bd31722c7d Set build type for nmake/jom cmake builds to relwithdebinfo 2019-05-22 01:34:04 -05:00
Silarn a753950cbb Add support for prebuilt lz4 2019-05-21 10:38:47 -05:00
Silarn 07a208ebb1 We don't need to check out code for the 'active' project 2019-05-21 10:02:56 -05:00
Silarn 83186d8219 Set appveyor build dir for main project and use jom for all deps 2019-05-21 02:00:01 -05:00
Silarn ca78973f2a Add jom to cmake environment and fix depends for jom 2019-05-21 01:01:06 -05:00
Silarn 6c8709c0dd Fix typo 2019-05-21 00:21:23 -05:00
Silarn 21124d0bc7 Log jom, bypass Inno if disabled, reduce repetition 2019-05-21 00:07:03 -05:00
Silarn 5843df1f11 Attempt to divert appveyor to jom 2019-05-20 23:41:14 -05:00
Al 569bfa9e62 Merge pull request #44 from SuperSandro2000/patch-1
Update Visual Studio Version to 2019
2019-05-20 11:24:58 +02:00
Sandro Jäckel 3062d177ab Update Visual Studio Version to 2019 2019-05-16 12:42:14 +02:00
LePresidente 9ad48ae53f allow multiple default paths for executable searches.
Fix inno setup binary search for V6
2019-05-10 16:12:17 +02:00
LePresidente 559961c65a Fixed a few PEP8 Style issues
Removed duplicate function, and used an import instead.
Fixed Lz4 build to not fail when trying to remove a folder when it doesn't exist.
2019-05-10 07:02:25 +02:00
Silarn d8bfd1b9ee Adding support for prebuilt boost 1.70 2019-05-09 03:48:05 -05:00
Silarn 1ffc73ebd2 Fall back to Qt 5.11.2 and add version override for appveyor 2019-05-09 03:14:58 -05:00
Silarn 160ede3dc9 Drop minor version and add some debug for Appveyor 2019-05-09 02:48:40 -05:00
Silarn 2c43536a28 Check for appveyor in 'config_setup' 2019-05-09 02:36:07 -05:00
Silarn 86f5bd3060 More updates for checking appveyor and Qt VC version 2019-05-09 02:30:19 -05:00
Silarn 32879159ca Appveyor detection for Qt 2019-05-09 02:19:37 -05:00
Silarn 0120ed2eb0 Add preview as possible VS 'edition' 2019-05-09 01:58:55 -05:00
Silarn fa842ed2f1 Remove temporary patch for VS2019 2019-05-08 23:39:51 -05:00
Silarn cbe9c8a4be Merge branch 'MSVC2019' into Develop 2019-05-08 23:17:51 -05:00
Silarn 4956a4fa37 Convert LZ4 to build with MSBuild, upgrade various projects 2019-05-08 23:01:24 -05:00
Silarn c71ada86b3 Changes to support VC2019 - backward compatible - boost not prebuilt yet 2019-04-30 15:16:29 -05:00
LePresidente fc6a6bb2d3 Fix Dependencies required by individual projects 2019-04-29 10:35:48 +02:00
LePresidente c73fb89585 Fix Dependencies required by individual projects 2019-04-29 10:31:46 +02:00
LePresidente 20aa1436e0 Change branch back to Develop and disable the Releasebuild option. 2019-04-26 07:39:02 +02:00
Brian Munro 3404b7bd30 Merge pull request #40 from ModOrganizer2/Develop
Stage for release 2.2.0
2019-04-26 07:10:02 +02:00
Brian Munro a5426ae46d Merge branch 'master' into Develop 2019-04-26 07:09:06 +02:00
LePresidente d1f3f5046f Upgrade pyqt and sip to latest stable release. 2019-04-25 11:07:54 +02:00
LePresidente 92b93c9696 Upgrade QT to 5.12.2 2019-04-19 10:52:26 +02:00
LePresidente 321436d896 Create folders required by appveyor. 2019-04-13 12:40:03 +02:00
LostDragonist bbe2a66b16 Merge pull request #35 from ModOrganizer2/Develop
Stage for release 2.1.6
2018-12-20 15:48:29 -06:00
Brian Munro 92b33e224f Merge pull request #27 from Modorganizer2/Develop
Stage for 2.1.5 release
2018-08-21 12:10:35 +02:00
LePresidente 227cdd01ef Changed branch to master, Set Release Build to True. 2018-08-02 09:25:05 +02:00
Brian Munro 659bfdfc40 Merge pull request #26 from Modorganizer2/Develop
Stage for 2.1.4 release
2018-08-02 09:21:49 +02:00
Silarn dd6c0c27f4 Merge branch 'OpenSSL-1.1' of https://github.com/Silarn/modorganizer-umbrella into OpenSSL-1.1 2018-04-17 00:18:21 -05:00
Silarn 31df9b0324 We still need to install it 2018-04-17 00:18:15 -05:00
Silarn a638754eab Modifications to build and deploy OpenSSL 1.1 once we make the switch 2018-04-17 00:18:14 -05:00
Silarn 7a40dd871d We still need to install it 2018-04-10 23:13:46 -05:00
Silarn 663e3c1350 Modifications to build and deploy OpenSSL 1.1 once we make the switch 2018-04-10 15:34:35 -05:00
69 changed files with 1224 additions and 382 deletions
+3
View File
@@ -31,3 +31,6 @@ graph.png
Thumbs.db
graph.dot
graph.pdf
/eggs/requests
/eggs/colorama
/eggs/tqdm
+40 -25
View File
@@ -15,37 +15,52 @@ First you need to clone the umbrella repository. We recommend that you clone it
Open there a console and copy in: ``git clone https://github.com/Modorganizer2/modorganizer-umbrella``
### Software Requirements
Now you need to install all required software to build Mod Organizer.
* If you want to install everything by hand you need all this stuff:
* 7zip (Latest 64Bit) Link: http://www.7-zip.org/a/7z1700-x64.exe
* Inno (Only required to build Installer) Setup Link: http://www.jrsoftware.org/download.php/is.exe
* CMake (latest 64bit) Link: https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.msi
* Git Link: https://github.com/git-for-windows/git/releases/download/v2.16.2.windows.1/Git-2.16.2-64-bit.exe
* ~~Python 2.7.14 (64Bit) Link: https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi~~ *If you've previously used a Python 2 version of Umbrella, you may need to run `git clean -xdf` to remove cached data which interferes with Python 3.*
* Python 3.7.1 (64Bit) Link: https://www.python.org/downloads/windows/
* Qt 5.12.0 http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe
#### Qt Packages required:
* msvc2017-64
* qtwebengine
Be sure to expand the options to show ALL the available choices and then select those packages. Failure to do so will result in a missing qmake.exe error.
#### Manual Requirements
* Qt 5.13.2 http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe
#### Qt Packages required:
* msvc2017-64
* qtwebengine
Be sure to expand the options to show ALL the available choices and then select those packages. Failure to do so will result in a missing qmake.exe error or other build errors.
* Visual Studio Community 2019 Link: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16
#### Visual Studio Packages required:
* .NET desktop development
* Desktop development for C++
Additionally you need to activate under Individual components:
* "Windows Universal C Runtime" (Under SDKs, libraries, and frameworks)
* "Windows 10 SDK (10.0.17763.0) for Desktop C++ [x86 and x64]" (Under SDKs, libraries, and frameworks)
* C++ ATL for v141/v142 build tools (x86 & x64) (Under SDKs, libraries, and frameworks)
* Ensure v141 build tools are selected for some dependencies that may not support v142 yet
* Note: If you have problems building Python due to a "missing SDK version", edit the registry key [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0] to point to the the 10.0.17763.0 SDK.
* .NET Framework 3.5 Link: https://www.microsoft.com/en-us/download/details.aspx?id=21
* Strawberry Perl Link: http://strawberryperl.com/download/5.26.1.1/strawberry-perl-5.26.1.1-64bit.msi
* Visual Studio Community 2017 Link: https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15
#### Visual Studio Packages required:
* .NET desktop development
* Desktop development for C++
#### Additional Requirements
##### Manual Install
* 7zip (Latest 64Bit) Link: http://www.7-zip.org/a/7z1900-x64.exe
* Inno 5 or 6(Only required to build Installer) Setup Link: http://www.jrsoftware.org/download.php/is.exe
* CMake (latest 64bit) Link: https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5-win64-x64.msi
* Git Link: https://github.com/git-for-windows/git/releases/download/v2.22.0.windows.1/Git-2.22.0-64-bit.exe
* Python 3.7.4 (64Bit) Link: https://www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe
* *If you've previously used a Python 2 version of Umbrella, you may need to run `git clean -xdf` to remove cached data which interferes with Python 3.*
* Strawberry Perl Link: http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-64bit.msi
##### Chocolatey
Optionally, you can use [Chocolatey](https://chocolatey.org/install) to install these dependencies. The packages are:
* 7zip
* cmake
* git
* InnoSetup
* python
* strawberyperl
Additionally you need to activate under Individual components:
* "Windows Universal CRT SDK" (Under Compilers, build tools, and runtimes)
* "Windows 8.1 SDK" (Under SDKs, libraries, and frameworks)
* "Windows 10 SDK (10.0.16299.0) for Desktop C++ [x86 and x64]" (Under SDKs, libraries, and frameworks
* Note: If you have problems building Python due to a "missing SDK version", edit the registry key [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0] to point to the the 10.0.16299.0 SDK.
#### Build
Now we can finally start the build process. Just run the following command in the modorganizer-umbrella folder: ``python.exe unimake.py``
If you wish to rebuild only one target once everything is complete, you simply delete the relevant txt file in the progress folder, e.g C:\modorganizer-umbrella\progress\modorganizer_complete_cmake modorganizer.txt
You can specify a build location using ``-d <directory path>``
If you wish to rebuild only one target once everything is complete, you simply delete the relevant txt file or directory in the progress folder, e.g C:\modorganizer-umbrella\progress\modorganizer
Then rerun the build script and it will rebuild the relevant project.
## Purpose
+52 -49
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -15,6 +15,7 @@
#
# You should have received a copy of the GNU General Public License
# along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
import multiprocessing
import os
@@ -22,12 +23,13 @@ from unibuild.utility import config_utility
from unibuild.utility.lazy import Lazy
def path_or_default(filename, *default):
def path_or_default(filename, default):
from distutils.spawn import find_executable
defaults = gen_search_folders(*default)
for path in default:
defaults = gen_search_folders(*path)
res = find_executable(filename, os.environ['PATH'] + ";" + ";".join(defaults))
if res is None:
print('Cannot find', filename, 'on your path or in', os.path.join('', *default))
print('Cannot find', filename, 'on your path or in', os.path.join('', *default[0]))
return res
@@ -37,25 +39,12 @@ def gen_search_folders(*subpath):
for search_folder in config_utility.program_files_folders
]
def check_prerequisites_config():
if not config['paths']['cmake']:
return False
if not config['paths']['git']:
return False
if not config['paths']['perl']:
return False
if config["Installer"]:
if not config['paths']['InnoSetup']:
return False
if not config['paths']['7z']:
return False
return True
config = {
'Appveyor_Build': False, #Should only be used for the AppVeyor build as it will use as many prebuilt binaries as possible
'Release_Build': False, #Used to override certain versions in umbrella when doing an officail release
#eg. Using the usvfs_version below instead of the Main_Branch config
'vc_CustomInstallPath': '', # If you installed VC to a custom location put the full path here
# eg. 'E:\Microsoft Visual Studio 14.0'
@@ -70,7 +59,8 @@ config = {
'prefer_binary_dependencies': True, # Try to use official binary package/SDKs. Won't work for all stuff
# works for: 7z, CMake, Git, Perl, Python, Visual Studio
'binary_qt': True, # use binary Qt5 from the offical website
'binary_boost': True, # Custom prebuilt boost compiled by MO2 team and uploaded to https://github.com/Modorganizer2/3rdParty_Dependencies
'binary_boost': True, # Custom prebuilt boost compiled by MO2 team and uploaded to https://github.com/ModOrganizer2/3rdParty_Dependencies
'binary_lz4': True, # Custom prebuilt lz4 to get around issues with latest releases uploaded to https://github.com/ModOrganizer2/3rdParty_Dependencies
'shallowclone': True, # reduces size of repos drastically
'repo_update_frequency': 60 * 60 * 12, # in seconds
'num_jobs': multiprocessing.cpu_count() + 1,
@@ -80,44 +70,59 @@ config = {
# folders: <project>\<task>_complete.txt
'Main_Author': 'ModOrganizer2', # the current maintainer
'Main_Branch': "Develop",
'Dev_Branch': "master",
'Release_Branch': "2_2_2",
'Distrib_Author': 'TanninOne', # the current distribution (and the original Author)
'Work_Author': '', # yourself
# manualy set all versions
'7zip_version': '19.00',
'boost_version': '1.69.0',
'boost_version': '1.71.0',
'boost_version_tag': '',
'fmt_version': '6.0.0',
'googletest_version': '1.8.0', # unused. We use the latest source
'grep_version': '2.5.4',
'icu_version': '63',
'grep_version': '3.3',
'icu_version': '65',
'icu_version_minor': '1',
'loot_version': '0.14.5',
'loot_commit': 'g68ecc02',
'lz4_version': '1.8.3',
'loot_version': '0.15.0',
'loot_commit': 'g629fdab',
'loot_branch': 'master',
'lz4_version': '1.9.2',
'lz4_version_minor': '', # leave empty if no patch version (1.2.3.x)
'nasm_version': '2.14.02',
'nuget_version': '4.9.3',
'nmm_version': '0.65.11',
'openssl_version': '1.0.2r',
'pyqt_version': '5.12',
'nmm_version': '0.70.9',
'openssl_version': '1.1.1d',
'pyqt_version': '5.13.1',
'pyqt_dev_version': '', # leave empty for a standard release
'python_version': '3.7',
'python_version_minor': '.1',
'sip_version': '4.19.14',
'python_version_minor': '.5',
'bzip2_version': '1.0.6', # For python
'sip_version': '4.19.19',
'sip_dev_version': '', # leave empty for a standard release
'qt_version': '5.12',
'qt_version_minor': '1',
'vc_platformtoolset': 'v141',
'spdlog_version': 'v1.4.2',
'qt_version': '5.13',
'qt_version_minor': '2',
'qt_version_appveyor': '5.13',
'qt_version_minor_appveyor': '2',
'qt_vc_version': '15.0',
'vc_platformtoolset': 'v142',
'vc_TargetPlatformVersion': '10.0.17763.0',
'vc_version': '15.0',
'vc_version_for_boost': '14.1',
'vc_version': '16.0',
'vc_version_for_boost': '14.2',
'WixToolset_version': '311',
'zlib_version': '1.2.11',
'explorer++_version': '1.3.5',
'libbsarch_version': '0.0.7',
#stylesheets
'paper-light-and-dark_version': '5.3',
'paper-automata_version': '2.2',
'paper-mono_version': '2.1',
'1809-dark-mode_version': '1.3',
#the usvfs version below will only be used if
'usvfs_version': 'v0.4.2',
'usvfs_version': 'v0.4.6',
'optimize': True, # activate link-time code generation and other optimization. This massively increases build time but
# produces smaller binaries and marginally faster code
@@ -137,25 +142,23 @@ config = {
#url used for all prebuilt downloads
'prebuilt_url': "https://github.com/ModOrganizer2/modorganizer-umbrella/releases/download/1.1/"
}
config['paths'] = {
'download': "{base_dir}\\downloads",
'build': "{base_dir}\\{build_dir}",
'progress': "{base_dir}\\{progress_dir}",
'install': "{base_dir}\\{install_dir}",
# 'graphviz': path_or_default("dot.exe", "Graphviz2.38", "bin"),
'cmake': path_or_default("cmake.exe", "CMake", "bin"),
'git': path_or_default("git.exe", "Git", "bin"),
'perl': path_or_default("perl.exe", "StrawberryPerl", "perl", "bin"),
'InnoSetup': path_or_default("ISCC.exe", "Inno Setup 5"),
#'svn': path_or_default("svn.exe", "SlikSvn", "bin"),
'7z': path_or_default("7z.exe", "7-Zip"),
# 'graphviz': path_or_default("dot.exe", [["Graphviz2.38", "bin"]]),
'cmake': path_or_default("cmake.exe", [["CMake", "bin"]]),
'git': path_or_default("git.exe", [["Git", "bin"]]),
'perl': path_or_default("perl.exe", [["StrawberryPerl", "perl", "bin"], ["Strawberry", "perl", "bin"]]),
#'svn': path_or_default("svn.exe", [["SlikSvn", "bin"]]),
'7z': path_or_default("7z.exe", [["7-Zip"]]),
# we need a python that matches the build architecture
'python': "", # Registry Key can be in multiple places. set in config_setup.py
'jom': "",
'visual_studio_base': "",
'qt_binary_install': "",
'visual_studio': "" # will be set in unimake.py after args are evaluated
}
if not check_prerequisites_config():
print('\nMissing prerequisites listed above - cannot continue')
exit(1)
+3 -3
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -43,8 +43,8 @@ for dep in [
download(dep, eggpath)
sys.path.append(eggpath)
for dep in ["decorator", "lxml", "PyYAML", "six", "jinja2", "psutil", "patch", "networkx", "pydot", "pydotplus","colorama","tqdm"]:
destpath = "{0}/{1}".format(path, dep)
for dep in ["decorator", "lxml", "PyYAML", "six", "jinja2", "psutil", "patch", "networkx", "pydot", "pydotplus", "colorama", "tqdm", "requests"]:
destpath = "{0}/{1}".format(path, dep.split("==")[0])
if not os.path.exists(destpath):
subprocess.check_call(["python", "-m", "pip", "install", "--target={0}".format(destpath), dep])
sys.path.append(destpath)
+102 -63
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -17,12 +17,14 @@
# along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
import os.path
import shutil
import zipfile
from config import config
from string import Formatter
from glob import glob
from unibuild import Project
from unibuild.modules import build, cmake, git, github, urldownload, msbuild, appveyor
from unibuild.projects import boost, googletest, libloot, lz4, nasm, ncc, openssl, sevenzip, sip, usvfs, python, pyqt5, qt5, zlib, nuget
from unibuild.projects import boost, fmt, googletest, libloot, lz4, nasm, ncc, openssl, sevenzip, sip, usvfs, python, pyqt5, qt5, spdlog, zlib, nuget, libbsarch, boost_di, stylesheets
from unibuild.utility import FormatDict
from unibuild.utility.config_utility import cmake_parameters, qt_inst_path
@@ -41,76 +43,83 @@ def gen_userfile_content(project):
for author, git_path, path, branch, dependencies, Build in [
(config['Main_Author'], "modorganizer-game_features", "game_features", config['Main_Branch'], [], False),
(config['Main_Author'], "modorganizer-archive", "archive", config['Main_Branch'], ["7zip", "Qt5", "boost"], True),
(config['Main_Author'], "modorganizer-uibase", "uibase", config['Main_Branch'], ["Qt5", "boost"], True),
(config['Main_Author'], "modorganizer-lootcli", "lootcli", config['Main_Branch'], ["libloot", "boost"], True),
(config['Main_Author'], "modorganizer-esptk", "esptk", config['Main_Branch'], ["boost"], True),
(config['Main_Author'], "modorganizer-bsatk", "bsatk", config['Main_Branch'], ["zlib", "boost", "lz4"], True),
(config['Main_Author'], "modorganizer-nxmhandler", "nxmhandler", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-helper", "helper", config['Main_Branch'], ["Qt5","boost"], True),
(config['Main_Author'], "modorganizer-game_gamebryo", "game_gamebryo", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_features", "game_features", config['Build_Branch'], [], False),
(config['Main_Author'], "modorganizer-archive", "archive", config['Build_Branch'], ["7zip", "Qt5", "boost"], True),
(config['Main_Author'], "modorganizer-uibase", "uibase", config['Build_Branch'], ["Qt5", "boost", "fmt", "spdlog"], True),
(config['Main_Author'], "modorganizer-lootcli", "lootcli", config['Build_Branch'], ["libloot", "boost"], True),
(config['Main_Author'], "modorganizer-esptk", "esptk", config['Build_Branch'], ["boost"], True),
(config['Main_Author'], "modorganizer-bsatk", "bsatk", config['Build_Branch'], ["zlib", "boost", "lz4"], True),
(config['Main_Author'], "modorganizer-nxmhandler", "nxmhandler", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-helper", "helper", config['Build_Branch'], ["Qt5","boost"], True),
(config['Main_Author'], "modorganizer-game_gamebryo", "game_gamebryo", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_features",
"lz4"], True),
(config['Main_Author'], "modorganizer-game_oblivion", "game_oblivion", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_oblivion", "game_oblivion", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_fallout3", "game_fallout3", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_fallout3", "game_fallout3", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_fallout4", "game_fallout4", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_fallout4", "game_fallout4", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_fallout4vr", "game_fallout4vr", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_fallout4vr", "game_fallout4vr", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_falloutnv", "game_falloutnv", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_falloutnv", "game_falloutnv", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_morrowind", "game_morrowind", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_morrowind", "game_morrowind", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_skyrim", "game_skyrim", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_skyrim", "game_skyrim", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_skyrimse", "game_skyrimse", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_skyrimse", "game_skyrimse", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_skyrimvr", "game_skyrimvr", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_skyrimvr", "game_skyrimvr", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_ttw", "game_ttw", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_ttw", "game_ttw", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-game_enderal", "game_enderal", config['Main_Branch'], ["Qt5", "modorganizer-uibase",
(config['Main_Author'], "modorganizer-game_enderal", "game_enderal", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-tool_inieditor", "tool_inieditor", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-tool_inibakery", "tool_inibakery", config['Main_Branch'], ["modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-tool_configurator", "tool_configurator", config['Main_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-fnistool", "fnistool", config['Main_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-preview_base", "preview_base", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-diagnose_basic", "diagnose_basic", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-script_extender_plugin_checker", "script_extender_plugin_checker", config['Main_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-check_fnis", "check_fnis", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_bain", "installer_bain", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_manual", "installer_manual", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_bundle", "installer_bundle", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_quick", "installer_quick", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_fomod", "installer_fomod", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_ncc", "installer_ncc", config['Main_Branch'], ["Qt5", "modorganizer-uibase", "ncc"], True),
(config['Main_Author'], "modorganizer-bsa_extractor", "bsa_extractor", config['Main_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-plugin_python", "plugin_python", config['Main_Branch'], ["Qt5", "boost", "Python",
"modorganizer-uibase", "sip"], True),
(config['Main_Author'], "githubpp", "githubpp", config['Main_Branch'], ["Qt5"], True),
(config['Main_Author'], "modorganizer", "modorganizer", config['Main_Branch'], ["Qt5", "boost", "usvfs_32",
(config['Main_Author'], "modorganizer-tool_inieditor", "tool_inieditor", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-tool_inibakery", "tool_inibakery", config['Build_Branch'], ["modorganizer-uibase", "modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-tool_configurator", "tool_configurator", config['Build_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-fnistool", "fnistool", config['Build_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-preview_base", "preview_base", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-preview_dds", "preview_dds", config['Build_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-diagnose_basic", "diagnose_basic", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-script_extender_plugin_checker", "script_extender_plugin_checker", config['Build_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-form43_checker", "form43_checker", config['Build_Branch'], ["PyQt5"], True),
(config['Main_Author'], "modorganizer-check_fnis", "check_fnis", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_bain", "installer_bain", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_manual", "installer_manual", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_bundle", "installer_bundle", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_quick", "installer_quick", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-installer_fomod", "installer_fomod", config['Build_Branch'], ["Qt5", "modorganizer-uibase","modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-installer_ncc", "installer_ncc", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "ncc","modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-bsa_extractor", "bsa_extractor", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "modorganizer-bsatk"], True),
(config['Main_Author'], "modorganizer-plugin_python", "plugin_python", config['Build_Branch'], ["Qt5", "boost", "Python",
"modorganizer-uibase", "sip","modorganizer-game_features"], True),
(config['Main_Author'], "githubpp", "githubpp", config['Build_Branch'], ["Qt5"], True),
(config['Main_Author'], "modorganizer-bsapacker", "bsapacker", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "libbsarch", "boost_di"], True),
(config['Main_Author'], "modorganizer", "modorganizer", config['Build_Branch'], ["Qt5", "boost", "usvfs_32",
"modorganizer-uibase",
"modorganizer-archive",
"modorganizer-bsatk",
"modorganizer-esptk",
"modorganizer-game_features",
"modorganizer-bsapacker",
"modorganizer-lootcli",
"usvfs", "githubpp",
"ncc", "openssl"], True),]:
"ncc", "openssl",
"paper-light-and-dark", "paper-automata", "paper-mono", "1809-dark-mode"], True),
]:
cmake_param = cmake_parameters() + ["-DCMAKE_INSTALL_PREFIX:PATH={}".format(config["paths"]["install"])]
# build_step = cmake.CMake().arguments(cmake_param).install()
@@ -120,22 +129,41 @@ for author, git_path, path, branch, dependencies, Build in [
project = Project(git_path)
if Build:
if config['Appveyor_Build']:
appveyor_cmake_step = cmake.CMakeJOM().arguments(cmake_param).install()
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
for dep in dependencies:
vs_cmake_step.depend(dep)
build_path = config["paths"]["build"]
vs_target = "Clean;Build" if config['rebuild'] else "Build"
vs_msbuild_step = msbuild.MSBuild(os.path.join("vsbuild", "INSTALL.vcxproj"), None, None,
"{}".format("x64" if config['architecture'] == 'x86_64' else "x86"),
"RelWithDebInfo")
if config['Appveyor_Build'] and os.getenv("APPVEYOR_PROJECT_NAME","") == git_path:
project.depend(vs_msbuild_step.depend(vs_cmake_step.depend(appveyor.SetProjectFolder(os.getenv("APPVEYOR_BUILD_FOLDER","")))))
for dep in dependencies:
appveyor_cmake_step.depend(dep)
if os.getenv("APPVEYOR_PROJECT_NAME","") == git_path:
project.depend(
appveyor_cmake_step.depend(
appveyor.SetProjectFolder(os.getenv("APPVEYOR_BUILD_FOLDER", ""))
)
)
else:
project.depend(
appveyor_cmake_step.depend(
github.Source(author, git_path, branch, super_repository=tl_repo).set_destination(path)
)
)
else:
project.depend(vs_msbuild_step.depend(vs_cmake_step.depend(github.Source(author, git_path, branch, super_repository=tl_repo).set_destination(path))))
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
for dep in dependencies:
vs_cmake_step.depend(dep)
#vs_target = "Clean;Build" if config['rebuild'] else "Build"
vs_msbuild_step = msbuild.MSBuild(os.path.join("vsbuild", "INSTALL.vcxproj"), None, None,
"{}".format("x64" if config['architecture'] == 'x86_64' else "x86"),
config['build_type'])
project.depend(
vs_msbuild_step.depend(
vs_cmake_step.depend(
github.Source(author, git_path, branch, super_repository=tl_repo).set_destination(path)
)
)
)
else:
project.depend(github.Source(author, git_path, branch, super_repository=tl_repo)
.set_destination(path))
@@ -144,13 +172,23 @@ for author, git_path, path, branch, dependencies, Build in [
def python_core_collect(context):
ip = os.path.join(config["paths"]["install"], "bin")
bp = python.python['build_path']
path_segments = [bp, "PCbuild"]
if config['architecture'] == "x86_64":
path_segments.append("amd64")
path_segments.append("pythoncore")
try:
shutil.rmtree(os.path.join(ip, "pythoncore"))
except OSError:
pass
shutil.copytree(os.path.join(bp, "Lib"), os.path.join(ip, "pythoncore"), ignore=shutil.ignore_patterns("site-packages", '__pycache__'))
shutil.copyfile(os.path.join(*path_segments, "python{}.zip".format(config["python_version"].replace(".", ""))), os.path.join(ip, "pythoncore.zip"))
#shutil.copytree(os.path.join(bp, "Lib"), os.path.join(ip, "pythoncore"), ignore=shutil.ignore_patterns("site-packages", '__pycache__'))
os.mkdir(os.path.join(ip, "pythoncore"))
for f in glob(os.path.join(*path_segments,"*.pyd")):
shutil.copy(f, os.path.join(ip, "pythoncore"))
return True
@@ -176,7 +214,7 @@ def copy_licenses(context):
pass
shutil.copy(os.path.join(config["paths"]["download"], "gpl-3.0.txt"), os.path.join(license_path, "GPL-v3.0.txt"))
shutil.copy(os.path.join(config["paths"]["download"], "lgpl-3.0.txt"), os.path.join(license_path, "LGPL-v3.0.txt"))
#shutil.copy(os.path.join(config["paths"]["download"], "BY-SA-v3.0.txt"), os.path.join(license_path, "BY-SA-v3.0.txt")) figure out a source, creative commons download doesn't work...
shutil.copy(os.path.join(config["paths"]["download"], "BY-SA-v3.0.txt"), os.path.join(license_path, "BY-SA-v3.0.txt"))
shutil.copy(os.path.join(build_path, "usvfs", "udis86", "LICENSE"), os.path.join(license_path, "udis86.txt"))
shutil.copy(os.path.join(build_path, "usvfs", "spdlog", "LICENSE"), os.path.join(license_path, "spdlog.txt"))
shutil.copy(os.path.join(build_path, "usvfs", "fmt", "LICENSE.rst"), os.path.join(license_path, "fmt.txt"))
@@ -199,7 +237,7 @@ def copy_licenses(context):
shutil.copy(os.path.join(build_path, "7zip-{}".format(config['7zip_version']), "DOC", "copying.txt"), os.path.join(license_path, "GNU-LGPL-v2.1.txt"))
shutil.copy(os.path.join(build_path, "NexusClientCli", "NexusClientCLI", "Castle_License.txt"), os.path.join(license_path, "Castle.txt"))
shutil.copy(os.path.join(build_path, "Nexus-Mod-Manager", "lib", "Antlr", "LICENSE.txt"), os.path.join(license_path, "AntlrBuildTask.txt"))
shutil.copy(os.path.join(config["paths"]["download"], "LICENSE"), os.path.join(license_path, "DXTex.txt"))
shutil.copy(os.path.join(config["paths"]["download"], "DXTex.txt"), os.path.join(license_path, "DXTex.txt"))
return True
@@ -207,7 +245,8 @@ Project("licenses") \
.depend(build.Execute(copy_licenses)
.depend(urldownload.URLDownload("https://www.gnu.org/licenses/lgpl-3.0.txt", 0))
.depend(urldownload.URLDownload("https://www.gnu.org/licenses/gpl-3.0.txt", 0))
.depend(urldownload.URLDownload("https://raw.githubusercontent.com/Microsoft/DirectXTex/master/LICENSE", 0).set_destination("DXTex.txt"))
.depend(urldownload.URLDownload("https://raw.githubusercontent.com/Microsoft/DirectXTex/master/LICENSE", 0).set_download_filename("DXTex.txt"))
.depend(urldownload.URLDownload("https://creativecommons.org/licenses/by-sa/3.0/legalcode.txt", 0).set_download_filename("BY-SA-v3.0.txt"))
.depend("modorganizer"))
@@ -220,7 +259,7 @@ def copy_explorerpp(context):
Project("explorerpp") \
.depend(build.Execute(copy_explorerpp)
.depend(urldownload.URLDownload("https://ci.appveyor.com/api/projects/derceg/explorerplusplus/artifacts/explorer++_x64.zip?branch=master&job=Platform%3A%20x64", 0)
.depend(urldownload.URLDownload("https://explorerplusplus.com/software/explorer++_{}_x64.zip".format(config["explorer++_version"]), 0)
.set_destination("explorer++")))
@@ -230,6 +269,6 @@ if config['Installer']:
installer = Project("Installer") \
.depend(build_installer
.depend(github.Source(config['Main_Author'], "modorganizer-Installer", "Develop", super_repository=tl_repo)
.set_destination("Installer")) \
.depend(github.Source(config['Main_Author'], "modorganizer-Installer", config['Build_Branch'], super_repository=tl_repo)
.set_destination("installer")) \
.depend("modorganizer").depend("usvfs").depend("usvfs_32").depend("translationsBuild").depend("modorganizer-fnistool"))
+49
View File
@@ -0,0 +1,49 @@
# Copyright (c) 2019 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt5.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
# flake8: noqa
from ctypes import CDLL
def find_qt():
import os
try:
qt5 = CDLL("Qt5Core")
except OSError as e:
path = os.environ['PATH']
dll_dir = os.path.dirname(__file__) + '\\Qt\\bin'
if os.path.isfile(dll_dir + '\\Qt5Core.dll'):
path = dll_dir + ';' + path
os.environ['PATH'] = path
else:
for dll_dir in path.split(';'):
if os.path.isfile(dll_dir + '\\Qt5Core.dll'):
break
else:
raise ImportError("unable to find Qt5Core.dll on PATH")
try:
os.add_dll_directory(dll_dir)
except AttributeError:
pass
find_qt()
del find_qt
+55
View File
@@ -0,0 +1,55 @@
Index: configure.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- configure.py (date 1562041436573)
+++ configure.py (date 1562041436573)
@@ -1552,26 +1552,32 @@
if target_config.py_platform == 'win32':
inf.write("""
+from ctypes import CDLL
+
+
def find_qt():
import os
- path = os.environ['PATH']
+ try:
+ qt5 = CDLL("Qt5Core")
+ except OSError as e:
+ path = os.environ['PATH']
- dll_dir = os.path.dirname(__file__) + '\\\\Qt\\\\bin'
- if os.path.isfile(dll_dir + '\\\\Qt5Core.dll'):
- path = dll_dir + ';' + path
- os.environ['PATH'] = path
- else:
- for dll_dir in path.split(';'):
- if os.path.isfile(dll_dir + '\\\\Qt5Core.dll'):
- break
- else:
- raise ImportError("unable to find Qt5Core.dll on PATH")
+ dll_dir = os.path.dirname(__file__) + '\\Qt\\bin'
+ if os.path.isfile(dll_dir + '\\Qt5Core.dll'):
+ path = dll_dir + ';' + path
+ os.environ['PATH'] = path
+ else:
+ for dll_dir in path.split(';'):
+ if os.path.isfile(dll_dir + '\\Qt5Core.dll'):
+ break
+ else:
+ raise ImportError("unable to find Qt5Core.dll on PATH")
- try:
- os.add_dll_directory(dll_dir)
- except AttributeError:
- pass
+ try:
+ os.add_dll_directory(dll_dir)
+ except AttributeError:
+ pass
find_qt()
+9
View File
@@ -0,0 +1,9 @@
--- siputils.py Sat Sep 7 20:22:30 2019
+++ siputils.py Fri Oct 4 04:42:15 2019
@@ -441,3 +441,5 @@
if self._python:
- incdir.append(self.config.py_inc_dir)
+ for inc_dir in self.config.py_inc_dir.split(";"):
+ incdir.append(inc_dir)
+
incdir.append(self.config.py_conf_inc_dir)
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+2 -2
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -54,7 +54,7 @@ class TaskManager(object, metaclass=Singleton):
"""
for suc in graph.neighbors(node):
self.enable(graph, suc)
graph.node[node]["enable"] = True
graph.nodes[node]["enable"] = True
def enable_all(self, graph):
for node in graph.nodes():
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+7 -3
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -210,12 +210,16 @@ class Execute(Builder):
@property
def name(self):
if self._context is None:
return "execute {}".format(self.__name or self.__function.__name__)
return "execute {}_{}".format(self._context.name, self.__name or self.__function.__name__)
return "execute {}".format(self.__name or self.sanitize(self.__function.__name__))
return "execute {}_{}".format(self._context.name, self.__name or self.sanitize(self.__function.__name__))
def process(self, progress):
return self.__function(context=self._context)
def sanitize(self, f):
# this is mostly for "<lambda>"
return f.replace("<", "_").replace(">", "_")
class Run(Builder):
def __init__(self, command, fail_behaviour=Task.FailBehaviour.FAIL, environment=None, working_directory=None,
+119 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -17,6 +17,7 @@
# along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
import logging
import os.path
import multiprocessing
import re
import shutil
from subprocess import PIPE, Popen
@@ -166,6 +167,10 @@ class CMakeEdit(Builder):
return "2013"
elif version == "14.0":
return "2015"
elif version == "15.0":
return "2017"
elif version == "16.0":
return "2019"
def __generator_name(self):
if self.__type == CMakeEdit.Type.VC:
@@ -272,3 +277,116 @@ class CMakeVS(Builder):
return False
return True
class CMakeJOM(Builder):
def __init__(self):
super(CMakeJOM, self).__init__()
self.__arguments = []
self.__install = False
@property
def name(self):
if config['architecture'] == 'x86_64':
suffix = ""
else:
suffix = "_32"
if self._context is None:
return "cmake" + suffix
return "cmake{} {}".format(suffix, self._context.name)
def applies(self, parameters):
return True
def fulfilled(self):
return False
def arguments(self, arguments):
self.__arguments = arguments
return self
def install(self):
self.__install = True
return self
def jom_environment(self):
result = config["__environment"].copy()
result["PATH"] += ";{}".format(os.path.dirname(os.path.abspath(config["paths"]["jom"])))
return result
def process(self, progress):
if "build_path" not in self._context:
logging.error("source path not known for {},"
" are you missing a matching retrieval script?".format(self._context.name))
return False
if config['architecture'] == 'x86_64':
suffix = ""
else:
suffix = "_32"
# prepare for out-of-source build
build_path = os.path.join(self._context["build_path"], "build" + suffix)
# if os.path.exists(build_path):
# shutil.rmtree(build_path)
try:
os.mkdir(build_path)
except Exception:
pass
soutpath = os.path.join(self._context["build_path"], "stdout" + suffix + ".log")
serrpath = os.path.join(self._context["build_path"], "stderr" + suffix + ".log")
try:
with on_exit(lambda: progress.finish()):
with open(soutpath, "w") as sout:
with open(serrpath, "w") as serr:
cmdline = [config["paths"]["cmake"], "-G", "NMake Makefiles JOM", ".."] + self.__arguments
print("{}> {}".format(build_path, ' '.join(cmdline)))
proc = Popen(cmdline,
cwd=build_path,
env=self.jom_environment(),
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
raise Exception("failed to generate makefile (returncode %s), see %s and %s" % (proc.returncode, soutpath, serrpath))
cmdline = [config['paths']['jom'], "/D", "/J", multiprocessing.cpu_count().__str__()]
print("{}> {}".format(build_path, ' '.join(cmdline)))
proc = Popen(cmdline,
shell=True,
env=config["__environment"],
cwd=build_path,
stdout=PIPE, stderr=serr)
progress.job = "Compiling"
progress.maximum = 100
while proc.poll() is None:
while True:
line = proc.stdout.readline().decode("utf-8")
if line != '':
match = re.search("^\\[([0-9 ][0-9 ][0-9])%\\]", line)
if match is not None:
progress.value = int(match.group(1))
sout.write(line)
else:
break
if proc.returncode != 0:
raise Exception("failed to build (returncode %s), see %s and %s" % (proc.returncode, soutpath, serrpath))
if self.__install:
cmdline = [config['paths']['jom'], "install", "/D", "/J", multiprocessing.cpu_count().__str__()]
print("{}> {}".format(build_path, ' '.join(cmdline)))
proc = Popen(cmdline,
shell=True,
env=config["__environment"],
cwd=build_path,
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
raise Exception("failed to install (returncode %s), see %s and %s" % (proc.returncode, soutpath, serrpath))
except Exception as e:
logging.exception(e)
return False
return True
+1 -1
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
+5 -2
View File
@@ -1,5 +1,5 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2018 Mod Organizer contributors.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
@@ -26,7 +26,10 @@ from unibuild import Task
def Popen(cmd, **kwargs):
pc = ''
if 'cwd' in kwargs:
pc += os.path.relpath(kwargs['cwd'],os.path.abspath('..'))
try:
pc += os.path.relpath(kwargs['cwd'],os.path.abspath('..'))
except ValueError:
pc += kwargs['cwd']
pc += '>'
for arg in cmd:
pc += ' ' + arg

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