275 Commits
Author SHA1 Message Date
Chris Bessent fe0da0e0c8 Change gtest branch from master to main 2021-11-23 21:36:04 -07:00
Mikaël Capelle 99ae56d650 Merge pull request #88 from LostDragonist/nehrim
Add Nehrim repo
2021-08-23 08:14:19 +02:00
Chris Bessent 6f05a070b8 Add Nehrim repo 2021-08-22 11:08:36 -07:00
Jeremy Rimpo e71164f3b8 Correct python license path for prebuilt 2021-01-29 12:46:38 -06:00
Jeremy Rimpo 19344619b0 Remove another appveyor path override for JOM 2021-01-29 11:39:40 -06:00
Jeremy Rimpo 882d946770 Just use msbuild for all builds 2021-01-29 10:46:32 -06:00
Jeremy Rimpo 941e89e12a Upgrade dependencies, add omod installer 2021-01-28 13:13:54 -06:00
Al d067c7a582 Merge pull request #87 from ModOrganizer2/Al12rs-qtupdate
Update qt to 5.15.2
2021-01-01 14:48:43 +01:00
Al ce7090edaf Update README.md 2020-12-30 22:23:45 +01:00
Al 60e7712c83 Bump qt to 5.15.2 2020-12-30 22:21:46 +01:00
Al b6a389f66f Merge pull request #85 from ModOrganizer2/Al12rs-patch-1
Bump appveyor qt version
2020-12-22 14:45:36 +01:00
isanae 1f4873f7d4 Merge pull request #86 from isanae/master
Added trosski's morrowind stylesheet
2020-12-20 23:13:36 -05:00
isanae 9ca74c1449 added trosski's morrowind stylesheet 2020-12-20 23:06:33 -05:00
Al 6bba8eb2a9 Bump appveyor qt version 2020-12-16 12:30:53 +01:00
Al 95176cc155 Merge pull request #83 from Holt59/add-installer-wizard
Add installer_wizard project.
2020-11-28 06:08:39 -08:00
isanae e11cd5eed0 Merge pull request #84 from ModOrganizer2/revert-78-master
Revert "Moving things around"
2020-11-27 07:47:13 -05:00
isanae ca7b0938d8 Revert "Moving things around" 2020-11-27 07:32:21 -05:00
Mikaël Capelle a429c982ea Add installer_wizard project. 2020-11-25 17:45:14 +01:00
isanae 754a03c486 Merge pull request #78 from Qudix/master
Moving things around
2020-11-14 06:54:09 -05:00
Mikaël Capelle 6afa3eef10 Merge pull request #81 from Holt59/fix-appveyor-sip
Fix sip AppVeyor build.
2020-11-09 15:49:02 +01:00
Mikaël Capelle d8804d7006 Fix sip AppVeyor build. 2020-11-09 15:40:46 +01:00
Mikaël Capelle 3728a265be Merge pull request #80 from Holt59/pyqt-python-extras
Add QtSvg to PyQt and _overlapped to Python.
2020-11-09 09:08:23 +01:00
Mikaël Capelle dfb097be8b Add QtSvg to PyQt and _overlapped to Python. 2020-11-08 22:42:26 +01:00
Qudix 5dd778aff0 Revert OpenSSL 2020-11-07 14:08:44 -06:00
isanae 68982e0a39 Merge pull request #79 from isanae/master
Boost and ncc
2020-11-06 12:06:27 -05:00
isanae 93815b400c added program_options to boost
added RunCodeAnalysis=false property to msbuild, ncc fails without it
2020-11-06 12:05:15 -05:00
Seth Riley c710353eeb Implemented suggestions 2020-11-03 18:49:59 -06:00
Seth Riley 73af81a6f2 Moving things around 2020-11-02 15:30:55 -06:00
Al 2a29e356df Merge pull request #77 from ModOrganizer2/appveyor_qt_ver_bump
appveyor moved to qt 5.15.1, which has a stylesheet bug
2020-10-27 08:08:46 -07:00
AL 0f32491974 appveyor moved to qt 5.15.1, which has a stylesheet bug
(https://bugreports.qt.io/browse/QTBUG-86587) so for now only update appveyor version.
2020-10-27 16:00:52 +01:00
Jeremy Rimpo 9e40c4a5cd Differentiate between VS and VC version 2020-09-29 19:22:00 -05:00
Jeremy Rimpo 2c1fb80959 Merge pull request #76 from ModOrganizer2/new-versions
New versions
2020-09-29 18:49:22 -05:00
Jeremy Rimpo 1ae0db7992 Readme version updates 2020-09-29 18:25:55 -05:00
Jeremy Rimpo e35c105416 Additional version updates 2020-09-29 17:39:41 -05:00
Jeremy Rimpo f2b9601c54 Merge pull request #75 from ModOrganizer2/libloot-0_16
Update libloot version
2020-09-25 00:00:34 -05:00
Jeremy Rimpo e987d1d61b Checkout PR merge instead of downstream branch 2020-09-21 13:42:09 -05:00
Jeremy Rimpo 677e403421 Use long-form checkout syntax 2020-09-21 12:22:20 -05:00
Jeremy Rimpo eb0e1a8923 Auto-fetch new remote 2020-09-21 12:14:54 -05:00
Jeremy Rimpo 69cb3db2ad Different filter method 2020-09-21 12:05:44 -05:00
Jeremy Rimpo 6aade3c7b4 Fixes 2020-09-21 11:48:16 -05:00
Jeremy Rimpo 96db40b252 Remove parameter 2020-09-21 11:37:25 -05:00
Jeremy Rimpo c847da5463 Attempt to parse github for matching PRs 2020-09-21 11:34:35 -05:00
Jeremy Rimpo ed3a0d5671 Revert "Test gh integration"
This reverts commit a3b89b18
2020-09-21 10:39:23 -05:00
Jeremy Rimpo 8aee0938b5 Revert "Fix pep error"
This reverts commit 11be2556
2020-09-21 10:39:19 -05:00
Jeremy Rimpo 9b3d30c565 Revert "Fixes for GH implementation"
This reverts commit f4f79516
2020-09-21 10:39:14 -05:00
Jeremy Rimpo 4136ec4086 Revert "Debugging"
This reverts commit 24c546c6
2020-09-21 10:39:09 -05:00
Jeremy Rimpo 6bc7428db5 Revert "Output token for testing"
This reverts commit 5a4a20ec
2020-09-21 10:39:02 -05:00
Jeremy Rimpo 5a4a20ec0c Output token for testing 2020-09-21 09:49:27 -05:00
Jeremy Rimpo 24c546c671 Debugging 2020-09-21 09:38:40 -05:00
Jeremy Rimpo f4f79516e3 Fixes for GH implementation 2020-09-21 09:11:39 -05:00
Jeremy Rimpo 11be255641 Fix pep error 2020-09-21 07:53:16 -05:00
Jeremy Rimpo a3b89b18af Test gh integration 2020-09-21 07:47:12 -05:00
Jeremy Rimpo f8489eaca0 Check for pull request branch first 2020-09-21 05:51:11 -05:00
Jeremy Rimpo 91a3f8ef43 Update libloot version 2020-09-20 23:08:09 -05:00
Jeremy Rimpo df793597b8 Set the appveyor feature branch if not default 2020-09-20 18:08:32 -05:00
Al 0c757b90d0 Merge pull request #74 from Holt59/master
Add game_features as dependency of installer_bain
2020-09-10 02:54:11 -07:00
Holt59 8ba9c8334c Add game_features as dependency of installer_bain 2020-09-10 08:58:31 +02:00
Jeremy Rimpo 4eccb42d85 Add game_features as dependency of installer_quick 2020-09-09 22:03:40 -05:00
Jeremy Rimpo 23360ca838 Add game_features as dependency of installer_manual 2020-09-09 22:02:14 -05:00
Jeremy Rimpo 47760e4d60 Add GTest dependency 2020-09-09 17:02:55 -05:00
Jeremy Rimpo dbdada7caa Update for 2.3 release 2020-09-09 17:00:41 -05:00
Jeremy Rimpo 0a53f9c433 Version and compatibility updates 2020-09-08 12:13:16 -05:00
Chris Bessent dc283726b9 Hacky fix for stylesheets 2020-08-20 07:51:18 -07:00
isanae 9246dc0301 Merge pull request #72 from isanae/tx-fixes
Some translation fixes
2020-07-11 19:55:54 -04:00
isanae 0573b66702 some tasks were not found because the case is different on transifex
don't fail because the language doesn't exist in the gamebryo project
2020-07-11 19:55:02 -04:00
isanae 5edc593bd1 Merge pull request #71 from isanae/deps
Dependencies
2020-07-10 13:11:46 -04:00
isanae 69e5ac8b94 updated libloot and stylesheets 2020-07-10 13:11:05 -04:00
isanae aa62fc344c Merge pull request #70 from isanae/gamebryo-translations
Gamebryo translations
2020-07-10 11:50:46 -04:00
isanae 1c270d6ffc add gamebryo's ts files when invoking lrelease for tasks that depend on it
fixed bad decode for env strings, they're ACP, not utf8
2020-07-10 11:43:56 -04:00
Jeremy Rimpo 5dbf6af2f8 Add native c# fomod installer 2020-06-12 18:12:40 -05:00
Jeremy Rimpo c7ab0511a2 Fix flake tests 2020-06-12 10:47:42 -05:00
Jeremy Rimpo de26d16555 Fix flake tests 2020-06-12 10:43:25 -05:00
Jeremy Rimpo a3b278b70b Workaround for googletest compile issues 2020-06-12 10:35:19 -05:00
Chris Bessent e1efc257fa Change user agent to be MO2 related 2020-05-31 11:04:35 -07:00
cibrhusk 4d89e7850e 403 Forbidden fix 2020-05-31 11:03:36 -07:00
Al 92a6039d84 Merge pull request #68 from AnyOldName3/more-fixup
Cope with cleaning downloads with unwanted read only flag
2020-05-21 01:50:01 +02:00
AnyOldName3 447212fa5c Cope with cleaning downloads with unwanted read only flag 2020-05-20 23:52:59 +01:00
Al d3c8a61727 Update README.md 2020-05-08 01:52:19 +02:00
Al 727d8e4e57 Update README.md 2020-05-07 22:31:08 +02:00
Silarn 66b85d4fe1 Use uibase for helper 2020-05-01 15:37:24 -05:00
Silarn 1150c9b512 Add fmt to helper deps 2020-05-01 15:27:08 -05:00
Silarn cfabc94dea Temporary fix for appveyor dependencies 2020-05-01 04:01:33 -05:00
Silarn be1d50c3d3 Final version updates 2020-05-01 03:39:16 -05:00
isanae 6f90d5b334 Merge pull request #66 from isanae/cmake-dependencies-fix
Dependencies fix
2020-05-01 04:25:41 -04:00
isanae dad4962a8a made a few more projects depend on boost and uibase because common_cmake requires them 2020-05-01 04:18:26 -04:00
Silarn 43b3aaf7b9 Merge branch 'new-versions' 2020-05-01 00:46:26 -05:00
isanae a42e00b2e8 Merge pull request #65 from isanae/qt-5.14.2-appveyor
updated qt appveyor version to 5.14.2
2020-05-01 01:38:41 -04:00
isanae 10f477bcbc updated qt appveyor version to 5.14.2 2020-05-01 01:38:14 -04:00
isanae 8df33103bf Merge pull request #64 from isanae/new-versions
Updates to Qt, PyQt5, SIP, openssl, NMM, spdlog, python
2020-05-01 01:34:10 -04:00
Silarn b8d4e78bb2 Updates to Qt, PyQt5, SIP, openssl, NMM, spdlog, python 2020-05-01 01:32:35 -04:00
AL 177f979d6b Revert "Appveyor project build location test, will be reverted."
This reverts commit c488ed087f.
2020-04-26 14:30:47 +02:00
AL c488ed087f Appveyor project build location test, will be reverted. 2020-04-26 14:16:30 +02:00
isanae 2c9c4afb66 Merge pull request #63 from isanae/new-cmakefiles
New cmakefiles
2020-04-26 02:59:16 -04:00
isanae 6288b85688 added cmake_common as dependency for all projects 2020-04-26 02:57:41 -04:00
isanae dfe6ef8d93 added SEVENZ_ROOT 2020-04-26 00:47:28 -04:00
isanae 8719a0dbf5 added BOOST_LIBRARYDIR, that's the one that's used by FindBoost.cmake, not Boost_LIBRARY_DIRS 2020-04-24 15:32:53 -04:00
Al d5efb3de50 Merge pull request #61 from AnyOldName3/explorerpp-overwrite-mark-2
Overwrite existing Explorer++ install when rebuilding
2020-04-17 10:11:08 +02:00
Silarn 2b7a474494 Merge branch 'master' into new-versions 2020-04-14 21:01:06 -05:00
AnyOldName3 7c3c68092c Overwrite existing Explorer++ install when rebuilding
Stops umbrella crashing when attempting a clean-ish build.

Also switch to Pathlib path joining becuase os.path must die.
2020-04-14 16:59:32 +01:00
Al afa0c60a0d Update qt version 2020-04-14 17:10:31 +02:00
LePresidente 51f896498d Try the archive download url for openssl aswell.
urldownload.py had to be updated to error correctly on tar read errors.
2020-04-09 11:03:18 +02:00
Silarn aa02c4e938 Updates to Qt, PyQt5, SIP, openssl, NMM, spdlog, python 2020-04-06 09:28:13 -05:00
AL 12d93ba2f1 Updated Appveyor builds to qt 5.14.1 2020-03-21 14:47:35 +01:00
LePresidente 2fb4672863 Fix Project Name for 64bit build 2020-03-03 15:00:14 +02:00
LePresidente fb93d0e170 Split the project to work on 32Bit And 64Bit build processes. 2020-03-03 14:45:02 +02:00
LePresidente 9b59a2bac5 Make sure the output paths exist before copying. 2020-03-03 13:05:19 +02:00
LePresidente 3dbfba0437 fixed download paths since the artifacts are seperated into two folders. 2020-03-03 12:53:10 +02:00
LePresidente d38605c91d Correct output folder for libs. 2020-03-03 12:23:19 +02:00
LePresidente ea24f744aa Fix Flake8 F632 Violation error. 2020-03-03 12:03:51 +02:00
LePresidente b4c27b4421 Grab the usvfs appveyor artifacts when doing a appveyor build, this should reduce build time of the main modorganizer build process 2020-03-03 11:50:41 +02:00
AL ae9cf5b4fc Add setting to override build version, useful for appveyor 2020-02-29 13:10:18 +01:00
Al 043eb0e0a9 Update README.md 2020-02-14 20:54:09 +01:00
Silarn 21343a082b Update Qt and SIP 2020-02-04 02:51:20 -06:00
AL 823c98fa9a Added BSA preview plugin 2020-02-02 01:51:41 +01:00
AL 8dde4039f9 Change libbsarch to use ModOrganizer2/libbsarch repo, maintained by deorder and G'k.
Updated libbsarch to 0.0.8
2020-01-30 02:58:34 +01:00
Silarn b17eacc525 Add feature branch option to git repos and config 2020-01-14 12:17:17 -06:00
Chris Bessent b381c7191c Make the installer use the same branch as everything else 2020-01-13 18:53:00 -07:00
Jeremy Rimpo 41b834b89a Merge pull request #59 from ModOrganizer2/new_branches
Update branch schemas
2020-01-13 17:38:44 -06:00
Jeremy Rimpo 72314a1fa2 Update branch schemas 2020-01-13 17:38:12 -06:00
Silarn 9591f889ab Use ExecutablePath in registry, if it exists 2020-01-12 00:32:15 -06:00
Silarn f266c2000c Detect python path based on running python 2020-01-12 00:18:29 -06:00
Silarn 612516d546 Clean up 2020-01-11 17:07:24 -06:00
Silarn daf9456b0b Updates to allow building in one pass
* Add configurable retries to Build.Run
* Use direct download link for PyQt5
2020-01-11 17:03:49 -06:00
Silarn 98df2b5f46 We need to make sure pdb is a directory 2020-01-07 16:28:45 -06:00
Silarn d3d9f4fe88 We probably don't need to 'set up' SIP for Appveyor 2020-01-07 15:46:26 -06:00
Silarn 0c8e49b275 Updates to fix PyQt5/sip prebuilts 2020-01-07 15:40:29 -06:00
Silarn 58385b94c3 Rework python plugin dependencies 2020-01-07 13:39:08 -06:00
Silarn 4a7e99a120 Update the dependency graph :) 2020-01-07 13:17:43 -06:00
Silarn a67ffc3108 Set another SDK reference 2020-01-07 13:03:17 -06:00
Silarn 4fcab2d8ed Update readme for latest versions 2020-01-07 13:02:08 -06:00
Silarn 02579f4179 Updating to latest PyQt5 and SIP 2020-01-07 12:33:48 -06:00
Silarn dbc89f9c3a Merge remote-tracking branch 'upstream/Develop' into new-versions 2020-01-07 12:08:21 -06:00
Silarn 3779f01a24 Some changes to help compile openssl in one pass 2019-12-31 03:04:01 -06:00
Silarn 6a50d52df3 Qt 5.14, PyQt 5.14, fmt 6.1.2, python 3.8.1, updated vc target platform 2019-12-31 03:01:25 -06:00
LostDragonist 2130313aa9 Modify openSSL build to use num_jobs config 2019-12-30 23:06:06 -07:00
Silarn 30da163f02 Merge branch 'Develop' into new-versions 2019-12-30 19:48:07 -06: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 023740f0d4 Update patch for latest pyqtbuilder package 2019-12-22 15:03:55 -06:00
Silarn 14f7ff5752 Fix issues with building to a different drive from umbrella 2019-12-14 15:20:02 -06:00
Silarn 4aece64e5a Merge branch 'python38' into new-versions 2019-12-14 14:16:36 -06:00
Jeremy Rimpo 7211153b77 Fix build script to use flag and set pro flags correctly 2019-12-13 15:14:53 -06:00
Silarn 5e2dea6e40 Updated libloot and NMM core 2019-12-13 03:04:42 -06:00
Silarn bc4ddc771e Python 3.8 seems to compile and work 2019-12-13 03:02:22 -06:00
Silarn 39a01b62f1 Updates for prebuilt libraries and other fixes 2019-12-10 14:46:16 -06:00
Silarn b0677dbcb3 Clean up files 2019-12-10 11:41:26 -06:00
Silarn a134228ea8 Migrate pyqt/sip build tools to sip 5.0.0 mechanics 2019-12-10 11:28:29 -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 bbc64f2817 Bump usvfs version for new release 2019-07-14 18:25:56 -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 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 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
72 changed files with 1859 additions and 546 deletions
+3
View File
@@ -31,3 +31,6 @@ graph.png
Thumbs.db
graph.dot
graph.pdf
/eggs/requests
/eggs/colorama
/eggs/tqdm
+46 -26
View File
@@ -15,39 +15,59 @@ 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.15.2: [Download Manager](http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe)
#### Qt Packages required:
* msvc2019-64
* qtwebengine
* Optional: Sources and Windows debug files
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: [Download 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.19041.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
* *v141 build tools may no longer be needed*
* 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.19041.0 SDK.
* .NET Framework 3.5: [Download Link](https://www.microsoft.com/en-us/download/details.aspx?id=21)
* *This is a dependency of the NCC install tool, which may be deprecated soon*
* 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): [Download Link](https://www.7-zip.org/a/7z1900-x64.exe)
* Inno 5 or 6 (Only required to build Installer): [Download Link](https://www.jrsoftware.org/download.php/is.exe)
* CMake (latest 64bit): [Download Link](https://github.com/Kitware/CMake/releases/download/v3.18.3/cmake-3.18.3-win64-x64.msi)
* Git: [Download Link](https://github.com/git-for-windows/git/releases/download/v2.28.0.windows.1/Git-2.28.0-64-bit.exe)
* Python 3 (64Bit): [Download Link](https://www.python.org/ftp/python/3.8.6/python-3.8.6-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: [Download Link](http://strawberryperl.com/download/5.32.0.1/strawberry-perl-5.32.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.
To build an individual project once the umbrella script has completed successfully, you can also use the relative VS solution, making sure to set the configuration to RelWithDebugInfo.
## Purpose
This repository contains a meta build-system that is able to download and build MO subprojects and dependencies as necessary.
It can be used to build the whole project to produce a build that should be equivalent to the release or to build subprojects (i.e. plugins) with the minimum of dependencies.
@@ -103,4 +123,4 @@ optional arguments:
I'd suggest to use a destination folder that isn't too deep, some dependencies don't handle long paths well.
If the make target is left empty, everything is built. A incomplete lists of targets can be found [here](targets.md).
Here are the dependency graphs that currently unimake takes care of: https://imgur.com/TT7TFGg.png
Here are the dependency graphs that currently unimake takes care of: https://www.dropbox.com/s/rqi1wrboevrxelu/graph.pdf?dl=1
+65 -54
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,26 +39,16 @@ 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
'override_build_version': '', #used to override the modorganizer.exe output version, useful for Appveyor nightlies and dev builds.
'vc_CustomInstallPath': '', # If you installed VC to a custom location put the full path here
# eg. 'E:\Microsoft Visual Studio 14.0'
'qt_CustomInstallPath': r'', # If you installed QT to a custom location put the full path here
@@ -70,7 +62,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 +73,64 @@ config = {
# folders: <project>\<task>_complete.txt
'Main_Author': 'ModOrganizer2', # the current maintainer
'Main_Branch': "Develop",
'Dev_Branch': "master",
'Release_Branch': "2_3_0",
'Feature_Branch': None, # Specify a branch or None to disable, used in place of the build branch when found
'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.75.0',
'boost_version_tag': '',
'fmt_version': '7.1.3',
'googletest_version': '1.8.0', # unused. We use the latest source
'grep_version': '2.5.4',
'icu_version': '63',
'icu_version_minor': '1',
'loot_version': '0.14.5',
'loot_commit': 'g68ecc02',
'lz4_version': '1.8.3',
'grep_version': '3.3',
'icu_version': '68',
'icu_version_minor': '2',
'loot_version': '0.16.1',
'loot_commit': 'gd8c9b98',
'loot_branch': '0.16.1',
'lz4_version': '1.9.3',
'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',
'nasm_version': '2.15.05',
'nuget_version': '5.8.1',
'nmm_version': '0.71.2',
'openssl_version': '1.1.1i',
'pyqt_version': '5.15.2',
'pyqt_pypi_hash': '28/6c/640e3f5c734c296a7193079a86842a789edb7988dca39eab44579088a1d1',
'pyqt_dev_version': '', # leave empty for a standard release
'python_version': '3.7',
'python_version_minor': '.1',
'sip_version': '4.19.14',
'pyqt_builder_version': '1.7.0',
'pyqt_sip_version': '12.8.1',
'python_version': '3.8',
'python_version_minor': '.7',
'bzip2_version': '1.0.6', # For python
'sip_version': '5.5.0',
'sip_dev_version': '', # leave empty for a standard release
'qt_version': '5.12',
'qt_version_minor': '1',
'vc_platformtoolset': 'v141',
'vc_TargetPlatformVersion': '10.0.17763.0',
'vc_version': '15.0',
'vc_version_for_boost': '14.1',
'spdlog_version': 'v1.8.2',
'qt_version': '5.15',
'qt_version_minor': '2',
'qt_version_appveyor': '5.15',
'qt_version_minor_appveyor': '2',
'qt_vs_version': '16.0',
'vc_platformtoolset': 'v142',
'vc_TargetPlatformVersion': '10.0.19041.0',
'vs_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.8',
#stylesheets
'paper-light-and-dark_version': '6.0',
'paper-automata_version': '2.2',
'paper-mono_version': '2.1',
'1809-dark-mode_version': '2.0',
'ModOrganizer_Style_Morrowind_version': '1.0',
#the usvfs version below will only be used if
'usvfs_version': 'v0.4.2',
'usvfs_version': 'v0.4.8',
'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 +150,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)
+6 -4
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.
#
@@ -25,7 +25,9 @@ def download(url, filename):
if os.path.exists(filename):
return False
data = urllib.request.urlopen(url)
user_agent = 'Mod Organizer 2/Umbrella'
req = urllib.request.Request(url, headers={'User-Agent' : user_agent})
data = urllib.request.urlopen(req)
with open(filename, 'wb') as outfile:
while True:
block = data.read(4096)
@@ -43,8 +45,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)
+120 -69
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,15 @@
# along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
import os.path
import shutil
import zipfile
from config import config
from pathlib import Path
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.modules import build, cmake, git, github, urldownload, msbuild, appveyor, Patch
from unibuild.projects import boost, fmt, googletest, libloot, lz4, nasm, ncc, usvfs_bin, 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
@@ -40,77 +43,99 @@ def gen_userfile_content(project):
return res
# Set the feature branch on appveyor if the build branch is not the default branch
if config['Appveyor_Build']:
branch = os.getenv('APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH')
branch = branch if branch is not None else os.getenv('APPVEYOR_REPO_BRANCH')
if branch is not None and branch != 'master':
config['Feature_Branch'] = branch
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'], "cmake_common", "cmake_common", config['Build_Branch'], ["boost", "zlib", "fmt"], False),
(config['Main_Author'], "modorganizer-uibase", "uibase", config['Build_Branch'], ["Qt5", "boost", "fmt", "spdlog", "lz4", "zlib", "GTest"], True),
(config['Main_Author'], "modorganizer-game_features", "game_features", config['Build_Branch'], ["modorganizer-uibase"], False),
(config['Main_Author'], "modorganizer-archive", "archive", config['Build_Branch'], ["7zip", "Qt5", "boost", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-lootcli", "lootcli", config['Build_Branch'], ["libloot", "boost", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-esptk", "esptk", config['Build_Branch'], ["boost", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-bsatk", "bsatk", config['Build_Branch'], ["zlib", "boost", "lz4", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-nxmhandler", "nxmhandler", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-helper", "helper", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], 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_nehrim", "game_nehrim", config['Build_Branch'], ["Qt5", "modorganizer-uibase",
"modorganizer-game_gamebryo",
"modorganizer-game_features"], True),
(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-preview_base", "preview_base", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], True),
(config['Main_Author'], "modorganizer-diagnose_basic", "diagnose_basic", config['Build_Branch'], ["Qt5", "modorganizer-uibase"], 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", "modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-installer_manual", "installer_manual", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "modorganizer-game_features"], 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", "modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-installer_fomod", "installer_fomod", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-installer_fomod_csharp", "installer_fomod_csharp", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "modorganizer-game_features"], True),
(config['Main_Author'], "modorganizer-installer_wizard", "installer_wizard", config['Build_Branch'], ["Python", "PyQt5"], True),
(config['Main_Author'], "modorganizer-installer_omod", "installer_omod", 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", "modorganizer-uibase", "modorganizer-game_features",
"Python", "PyQt5", "sip"], True),
(config['Main_Author'], "modorganizer-tool_configurator", "tool_configurator", config['Build_Branch'], ["modorganizer-plugin_python"], True),
(config['Main_Author'], "modorganizer-fnistool", "fnistool", config['Build_Branch'], ["modorganizer-plugin_python"], True),
(config['Main_Author'], "modorganizer-script_extender_plugin_checker", "script_extender_plugin_checker", config['Build_Branch'], ["modorganizer-plugin_python"], True),
(config['Main_Author'], "modorganizer-form43_checker", "form43_checker", config['Build_Branch'], ["modorganizer-plugin_python"], True),
(config['Main_Author'], "modorganizer-preview_dds", "preview_dds", config['Build_Branch'], ["modorganizer-plugin_python"], True),
(config['Main_Author'], "githubpp", "githubpp", config['Build_Branch'], ["Qt5", "boost"], True),
(config['Main_Author'], "modorganizer-bsapacker", "bsapacker", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "libbsarch", "boost_di"], True),
(config['Main_Author'], "modorganizer-preview_bsa", "preview_bsa", config['Build_Branch'], ["Qt5", "modorganizer-uibase", "libbsarch" ], 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", "ModOrganizer_Style_Morrowind"], True),
]:
cmake_param = cmake_parameters() + ["-DCMAKE_INSTALL_PREFIX:PATH={}".format(config["paths"]["install"])]
# build_step = cmake.CMake().arguments(cmake_param).install()
@@ -120,37 +145,61 @@ for author, git_path, path, branch, dependencies, Build in [
project = Project(git_path)
if Build:
#prepare build version override step
patch_version_step = Patch.RegexReplace("src/version.rc",
"#define VER_FILEVERSION_STR.*\n",
"#define VER_FILEVERSION_STR \"{}\"\n"
.format(config['override_build_version']))
#begin build
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
if git_path != "cmake_common":
vs_cmake_step.depend("cmake_common")
for dep in dependencies:
vs_cmake_step.depend(dep)
build_path = config["paths"]["build"]
vs_target = "Clean;Build" if config['rebuild'] else "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")
config['build_type'])
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","")))))
source_retrieval_step = github.Source(author, git_path, branch, feature_branch=config['Feature_Branch'], super_repository=tl_repo).set_destination(path)
if git_path == "modorganizer" and config['override_build_version']:
#add patching step that depends on source retrieval
patch_version_step.depend(source_retrieval_step)
vs_cmake_step.depend(patch_version_step)
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.depend(source_retrieval_step)
project.depend(vs_msbuild_step.depend(vs_cmake_step))
else:
project.depend(github.Source(author, git_path, branch, super_repository=tl_repo)
project.depend(github.Source(author, git_path, branch, feature_branch=config['Feature_Branch'], super_repository=tl_repo)
.set_destination(path))
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 +225,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"))
@@ -184,22 +233,22 @@ def copy_licenses(context):
sip_path = os.path.join(build_path, "sip-{}.dev{}".format(config['sip_version'], config['sip_dev_version']))
else:
sip_path = os.path.join(build_path, "sip-{}".format(config['sip_version']))
shutil.copy(os.path.join(sip_path, "LICENSE"), os.path.join(license_path, "sip.txt"))
shutil.copy(os.path.join(sip_path, "LICENSE-GPL2"), os.path.join(license_path, "GPL-v2.0.txt"))
# license path is different in the prebuilt archive
if config['Appveyor_Build']:
shutil.copy(os.path.join(build_path, "python-{}{}".format(config['python_version'], config['python_version_minor']),"Licenses","Sip", "LICENSE"), os.path.join(license_path, "sip.txt"))
shutil.copy(os.path.join(build_path, "python-{}{}".format(config['python_version'], config['python_version_minor']),"Licenses","Sip", "LICENSE-GPL2"), os.path.join(license_path, "GPL-v2.0.txt"))
shutil.copy(os.path.join(build_path, "python-{}{}".format(config['python_version'], config['python_version_minor']),"Licenses","Python","LICENSE"), os.path.join(license_path, "python.txt"))
else:
shutil.copy(os.path.join(sip_path, "LICENSE"), os.path.join(license_path, "sip.txt"))
shutil.copy(os.path.join(sip_path, "LICENSE-GPL2"), os.path.join(license_path, "GPL-v2.0.txt"))
shutil.copy(os.path.join(build_path, "python-{}{}".format(config['python_version'], config['python_version_minor']),"LICENSE"), os.path.join(license_path, "python.txt"))
shutil.copy(os.path.join(build_path, "openssl-{}".format(config['openssl_version']), "LICENSE"), os.path.join(license_path, "openssl.txt"))
shutil.copy(os.path.join(build_path, "modorganizer_super", "lootcli", "vsbuild", "src", "external", "src", "cpptoml", "LICENSE"), os.path.join(license_path, "cpptoml.txt"))
shutil.copy(os.path.join(build_path, "openssl-{}".format(config['openssl_version']), "LICENSE"), os.path.join(license_path, "openssl.txt"))
shutil.copy(os.path.join(build_path, "boost_{}".format(boost_tag_version.replace(".", "_")), "LICENSE_1_0.txt"), os.path.join(license_path, "boost.txt"))
shutil.copy(os.path.join(build_path, "7zip-{}".format(config['7zip_version']), "DOC", "License.txt"), os.path.join(license_path, "7zip.txt"))
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,29 +256,31 @@ 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("sip")
.depend("modorganizer"))
def copy_explorerpp(context):
target_path = os.path.join(config["paths"]["install"], "bin", "explorer++")
build_path = os.path.join(config["paths"]["build"], "explorer++")
shutil.copytree(build_path, target_path)
target_path = Path(config["paths"]["install"]) / "bin" / "explorer++"
build_path = Path(config["paths"]["build"]) / "explorer++"
shutil.copytree(build_path, target_path, dirs_exist_ok = True)
return True
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)
.set_destination("explorer++")))
.depend(urldownload.URLDownload("https://explorerplusplus.com/software/explorer++_{}_x64.zip".format(config["explorer++_version"]), 0)
.set_destination("explorer++")))
if config['Installer']:
build_installer = build.Run(r'"{}" {}'.format(config["paths"]["InnoSetup"],"dist/MO2-Installer.iss"),
name="Build MO2 Installer")
build_installer = build.Run(r'"{}" {}'.format(config["paths"]["InnoSetup"],"dist/MO2-Installer.iss"),
name="Build MO2 Installer")
installer = Project("Installer") \
.depend(build_installer
.depend(github.Source(config['Main_Author'], "modorganizer-Installer", "Develop", super_repository=tl_repo)
.set_destination("Installer")) \
.depend("modorganizer").depend("usvfs").depend("usvfs_32").depend("translationsBuild").depend("modorganizer-fnistool"))
.depend(github.Source(config['Main_Author'], "modorganizer-Installer", config['Build_Branch'], feature_branch=config['Feature_Branch'], super_repository=tl_repo)
.set_destination("installer"))
.depend("modorganizer").depend("usvfs").depend("usvfs_32").depend("translationsBuild").depend("modorganizer-fnistool"))
+36
View File
@@ -0,0 +1,36 @@
--- builder.py (date 1575938575861)
+++ builder.py (date 1575938575861)
@@ -441,17 +441,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
+10
View File
@@ -0,0 +1,10 @@
--- 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" />
+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)
+2
View File
@@ -50,6 +50,8 @@ modorganizer-game_gamebryo
modorganizer-game_oblivion
modorganizer-game_nehrim
modorganizer-game_fallout3
modorganizer-game_fallout4
+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():
+23 -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 os.path
import shutil
import re
from unibuild.task import Task
from unibuild.utility.lazy import Lazy
@@ -44,6 +45,27 @@ class Replace(Task):
f.write(data)
return True
class RegexReplace(Task):
def __init__(self, filename, search, substitute):
super(RegexReplace, self).__init__()
self.__file = filename
self.__search = search
self.__substitute = substitute
@property
def name(self):
return "Replace in {}".format(self.__file)
def process(self, progress):
full_path = os.path.join(self._context["build_path"], self.__file)
with open(full_path, "r") as f:
data = f.read()
data = re.sub(self.__search, self.__substitute, data)
with open(full_path, "w") as f:
f.write(data)
return True
class Copy(Task):
def __init__(self, source, destination):
+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.
#
+23 -11
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,20 +210,25 @@ 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,
name=None):
name=None, retries=0):
super(Run, self).__init__()
self.__command = Lazy(command)
self.__name = name
self.__fail_behaviour = fail_behaviour
self.__retries = retries
self.__environment = Lazy(environment)
self.__working_directory = Lazy(working_directory)
@@ -238,6 +243,8 @@ class Run(Builder):
logging.error("source path not known for {},"
" are you missing a matching retrieval script?".format(self.name))
tries = 0
return_code = -1
soutpath = os.path.join(self._context["build_path"], "stdout.log")
serrpath = os.path.join(self._context["build_path"], "stderr.log")
with open(soutpath, "w") as sout:
@@ -250,13 +257,18 @@ class Run(Builder):
else self._context["build_path"])
sout.write("running {} in {}".format(self.__command(), cwd))
proc = Popen(self.__command(),
env=environment,
cwd=cwd,
shell=True,
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
while tries <= self.__retries and return_code != 0:
tries += 1
proc = Popen(self.__command(),
env=environment,
cwd=cwd,
shell=True,
stdout=sout, stderr=serr)
proc.communicate()
return_code = proc.returncode
if return_code != 0:
logging.error("failed to run %s (returncode %s), see %s and %s",
self.__command(), proc.returncode, soutpath, serrpath)
return False
+121 -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.
#
@@ -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,11 +167,15 @@ 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:
return "Visual Studio {} {}" \
.format(config['vc_version'].split('.')[0], self.__vc_year(config['vc_version']))
.format(config['vs_version'].split('.')[0], self.__vc_year(config['vs_version']))
elif self.__type == CMakeEdit.Type.CodeBlocks:
return "CodeBlocks - NMake Makefiles"
@@ -249,7 +254,7 @@ class CMakeVS(Builder):
soutpath = os.path.join(self._context["build_path"], "vs_stdout.log")
serrpath = os.path.join(self._context["build_path"], "vs_stderr.log")
vs_generator = "Visual Studio {0} {1}".format(config['vc_version'].split(".", 1)[0],vc_year(config['vc_version']))
vs_generator = "Visual Studio {0} {1}".format(config['vs_version'].split(".", 1)[0],vc_year(config['vs_version']))
# Updated for latest versions of CMake > 3.1 - VS 2019 does not allow use of the deprecated method
vs_generator_arch = "x64"
if config["architecture"] == "x86":
@@ -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.
#

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