203 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
Jeremy Rimpo 0a79e53979 Temporarily downgrade Qt due to Appveyor support 2019-04-06 02:22:55 -05:00
Silarn 2f23cf7b1a Important and/or significant dependency updates 2019-04-06 02:10:48 -05:00
Silarn 2c0aa10aca Backward-compatible support for VS 2019 2019-04-06 02:08:52 -05:00
Silarn 7a0c7c9b59 Update architecture to use cmake parameter, which is available since 3.1
- This is required to use CMake with VS 2019 and is backward compatible
2019-04-06 02:07:45 -05:00
LostDragonist e3ce7fa856 Update URLs for SIP and PyQt 2019-03-24 18:01:12 -05:00
Brian Munro 7e8064e570 Merge pull request #39 from AnyOldName3/script-extender-plugin-checker
Add ScriptExtenderPluginChecker
2019-03-24 10:25:16 +02:00
AnyOldName3 c4da97ac28 Add ScriptExtenderPluginChecker 2019-03-23 22:29:20 +00:00
Brian Munro 92790986b1 Merge pull request #38 from Al12rs/Develop
Added explorer++ download and deploy.
2019-03-10 19:10:55 +02:00
Al 80190560de Added explorer++ download and deploy. 2019-03-10 16:45:16 +01:00
LePresidente a4ee451132 Code Clean to get Flake8 to pass the build.
Added appveyor badge.
2019-02-18 16:22:07 +02:00
Brian Munro 0fdcce3e05 Merge pull request #37 from ModOrganizer2/Appveyor
Allow umbrella to work with the appveyor build system
2019-02-18 15:16:07 +02:00
LePresidente 968a49df26 Reverted test branches back to config['Main_Branch'] 2019-02-18 15:13:13 +02:00
LePresidente 876af53cba created a appveyor class to set project folder destination to allow umbrella to build a remote project folder checked out by appveyor.
This will allow PR's to be tested by appveyor.
2019-02-18 13:21:17 +02:00
Brian Munro f7c8b81b28 arguments are now saved to config['__Arguments']
usvfs will only pass the set arguments instead of everything.
2019-02-17 14:03:00 +02:00
LePresidente 54e141e5a6 Updated location of license's when using prebuilt sip and python package. 2019-02-15 11:02:17 +02:00
Brian Munro 0f9c497cc1 specify WindowsTargetPlatformVersion to msbuild, using default of 10.0.17763.0 from config.py.
This is overrideable by passing project_WindowsTargetPlatformVersion=<SDKVersion> in the msbuild function
2019-02-15 07:13:10 +02:00
Brian Munro 7da3177aaa tool_configurator + fnistool should use Appveyor branch with fixes to work with prebuilt python archive during testing. 2019-02-12 21:47:44 +02:00
Brian Munro 6af30a2e08 Plugin_python should use the tempory Appveyor branch with fixes to work with prebuilt python archive. 2019-02-12 21:39:58 +02:00
LePresidente e58b1fd568 Added Modorganizer-game_enderal plugin to be built by umbrella. 2019-02-12 14:15:14 +02:00
LePresidente db6a38218a Should skip download if urllib.error.URLError is thrown aswell 2019-02-12 11:41:33 +02:00
LePresidente eec32ca93b Added mirror for nasm.
Updated NASM to 2.14.02
2019-02-12 11:07:01 +02:00
Brian Munro 98c89b8538 Merge branch 'Develop' into Appveyor 2019-02-12 09:11:15 +02:00
LostDragonist c735239c71 Update Qt to 5.12.1, SIP to 4.19.14, and PyQT to 5.12 2019-02-10 14:23:19 -06:00
LostDragonist 7da8eae53b Add module to get download from any available source 2019-02-10 14:21:49 -06:00
LostDragonist bb2036496a Update PyQt development version 2019-01-30 22:03:56 -06:00
LostDragonist 9c0c9e9219 Update sip development version 2019-01-30 22:01:22 -06:00
LostDragonist 368fd4de11 Update PyQT dev version 2019-01-25 11:00:49 -06:00
Silarn 2202404fe8 Update libloot 0.14.2 2019-01-21 22:30:13 -06:00
Jeremy Rimpo 4c1c9e6b57 7zip 18.06 update 2019-01-17 16:31:35 -06:00
Silarn a7dcb3e4ba Update versions of libloot and dev sip/PyQt5 2019-01-14 13:23:06 -06:00
LostDragonist cfaf5d1611 Update README.md 2019-01-10 04:53:13 -08:00
LostDragonist 6b5767d3a1 Add SDK for python compilation 2019-01-09 23:40:54 -08:00
LostDragonist 833cbcd718 Update individual components of Visual Studio 2019-01-09 22:35:17 -08:00
Brian Munro 5777e103cd Fixed if statement for openssl prebuilt archive to only be used when Appveyor_Build is set to true 2019-01-06 20:02:08 +02:00
Al 6e9912be18 Updated Readme for Qt 5.12.0 dependency 2019-01-06 13:48:02 +01:00
Brian Munro 16084dc0de Merge branch 'Develop' into Appveyor 2019-01-06 14:04:08 +02:00
Brian Munro f3c18b1509 Allow using prebuilt openssl archive. 2019-01-06 13:56:37 +02:00
Brian Munro 20a407e309 Pass python root directory to cmake using cmake variable. 2019-01-06 13:56:14 +02:00
LostDragonist dc386b492d Fix copying license for sip dev version 2019-01-05 22:48:32 -06:00
Silarn 4aad87c158 Add support for dev builds of sip and PyQt 2019-01-05 21:21:22 -06:00
Brian Munro d41628fce7 pass the 64bit unimake arguments to the 32bit process. 2019-01-05 21:07:02 +02:00
Brian Munro d663de632b Use prebuilt PyQt5 for Appveyor builds 2019-01-05 21:05:50 +02:00
Brian Munro a3a87eb9d9 Use prebuilt_url config entry instead of hardcodeing url. 2019-01-05 21:05:22 +02:00
Brian Munro 9a5d37cbfe Added config entry for prebuilt_url to be used as a common string. 2019-01-05 21:04:42 +02:00
Brian Munro d0d0cfbe74 Added prebuilt sip archive for Appveyor Build 2019-01-05 19:45:08 +02:00
Brian Munro 576ab4aab0 Added prebuilt python archive for Appveyor Build 2019-01-05 19:44:57 +02:00
Brian Munro b554108e44 Add new Appveyor_build configuration 2019-01-05 19:43:47 +02:00
Brian Munro 61d6c2b610 Allow clean to be enabled/disabled from a task.
Allow settings a custom name.
2019-01-05 19:43:06 +02:00
Al d5c1664f7e Updated python dep to 3.7.1 from 3.7 2019-01-05 12:33:58 +01:00
LePresidente 393e93c8c7 Use the latest release tag, to find the boost prebuilt archive. 2019-01-04 13:04:47 +02:00
LePresidente d1c33e2b1c fixed import rename from lootapi to libloot 2019-01-04 12:10:25 +02:00
Silarn 4d1224590a Update dependency versions, migrate to libloot, fix local build of boost 2019-01-04 02:25:16 -06:00
Brian Munro 98fd9d74e4 Update config.py
Removed my personal settings from config, from previous commit
2018-12-30 11:55:21 +02:00
Brian Munro 7df79baeef Fixed the prerequisites check, to allow the inno setup check to work only if the installer is required. 2018-12-30 11:52:09 +02:00
LostDragonist 64ed95187f Fix error reporting in translations project 2018-12-23 23:57:16 -06:00
LostDragonist bbe2a66b16 Merge pull request #35 from ModOrganizer2/Develop
Stage for release 2.1.6
2018-12-20 15:48:29 -06:00
LostDragonist 150543fff0 Update USVFS version 2018-12-20 15:46:27 -06:00
LostDragonist 4db9e411ff Add option for tiered progress files 2018-12-17 11:02:43 -06:00
LePresidente 5ac9d6ec26 Fixed dependency tree for the Installer 2018-12-12 19:47:57 +02:00
LePresidente 18b23f4190 Build the new InnoSetup installer from umbrella. 2018-12-12 15:43:57 +02:00
Brian Munro a9650b90a7 Merge pull request #34 from LePresidente/Prebuilt-Boost
Prebuilt boost
2018-10-23 15:00:19 +02:00
LePresidente 7de3ee1b19 Added the file copy for boost_python to install that was missing. 2018-10-23 14:04:46 +02:00
LePresidente a7aa01a589 Support Prebuilt Boost library download. 2018-10-22 16:07:05 +02:00
LePresidente 3d1ed32b51 boost now will build to a custom stage directory,
added config to enable/disable the binary install.
download url for boost binary archive still required to be changed
2018-10-18 12:32:12 +02: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
70 changed files with 1557 additions and 489 deletions
+3
View File
@@ -31,3 +31,6 @@ graph.png
Thumbs.db
graph.dot
graph.pdf
/eggs/requests
/eggs/colorama
/eggs/tqdm
+42 -23
View File
@@ -1,3 +1,5 @@
[![Python Check status](https://ci.appveyor.com/api/projects/status/ev4wj7qmscr5b09d?svg=true)](https://ci.appveyor.com/project/Modorganizer2/modorganizer-umbrella)
# modorganizer-umbrella
An umbrella- (super-) project for [modorganizer](https://github.com/Modorganizer2/modorganizer).
@@ -13,35 +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
* 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 (64Bit) Link: https://www.python.org/downloads/windows/
* Qt 5.11.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.
#### 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++
Additionally you need to activate under Individual components:
* "Windows 8.1 SDK and UCRT SDK" (Under Compilers, build tools, and runtimes)
* "Windows 10 SDK (10.0.16299.0) for Desktop c++" (near the bottom)
#### 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
#### 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
+68 -43
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,24 +15,21 @@
#
# 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
from unibuild.utility import config_utility
from unibuild.utility.lazy import Lazy
global missing_prerequisites
missing_prerequisites = False
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))
global missing_prerequisites
missing_prerequisites = True
print('Cannot find', filename, 'on your path or in', os.path.join('', *default[0]))
return res
@@ -45,7 +42,9 @@ def gen_search_folders(*subpath):
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'
@@ -60,46 +59,70 @@ 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_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,
'Main_Author': 'Modorganizer2', # the current maintainer
'Main_Branch': "Develop",
'progress_method': 'folders', # Changes how the progress files are generated
# flat: All files in one folder, <project>_complete_<task>.txt (default)
# folders: <project>\<task>_complete.txt
'Main_Author': 'ModOrganizer2', # the current maintainer
'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': '18.05',
'boost_version': '1.68.0',
'7zip_version': '19.00',
'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': '62',
'grep_version': '3.3',
'icu_version': '65',
'icu_version_minor': '1',
'loot_version': '0.13.7',
'loot_commit': 'g3a747b8',
'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.13.03',
'nuget_version': '4.7.1',
'nmm_version': '0.65.10',
'openssl_version': '1.0.2p',
'pyqt_version': '5.11.3',
'nasm_version': '2.14.02',
'nuget_version': '4.9.3',
'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': '.0',
'sip_version': '4.19.13',
'qt_version': '5.11',
'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
'spdlog_version': 'v1.4.2',
'qt_version': '5.13',
'qt_version_minor': '2',
'vc_platformtoolset': 'v141',
'vc_version': '15.0',
'vc_version_for_boost': '14.1',
'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': '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': '0.4.1',
'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
@@ -113,27 +136,29 @@ config = {
# Transifex Translation configuration
'transifex_Enable': False, # this should only be changed to true when doing a release
'transifex_API': '', # you can generate an api at https://www.transifex.com/user/settings/api/
'transifex-client_version': '0.13.4',
'transifex_minimum_percentage': '60'
'transifex-client_version': '0.13.6',
'transifex_minimum_percentage': '60',
#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"),
#'ruby': path_or_default("ruby.exe", "Ruby22-x64", "bin"),
#'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 missing_prerequisites:
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)
+135 -61
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
from unibuild.projects import boost, googletest, lootapi, lz4, nasm, ncc, openssl, sevenzip, sip, usvfs, python, pyqt5, qt5, WixToolkit, zlib, nuget
from unibuild.modules import build, cmake, git, github, urldownload, msbuild, appveyor
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,72 +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'], ["lootapi", "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-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-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-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['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()
@@ -116,16 +129,41 @@ for author, git_path, path, branch, dependencies, Build in [
project = Project(git_path)
if Build:
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
if config['Appveyor_Build']:
appveyor_cmake_step = cmake.CMakeJOM().arguments(cmake_param).install()
for dep in dependencies:
vs_cmake_step.depend(dep)
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:
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
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")
for dep in dependencies:
vs_cmake_step.depend(dep)
project.depend(vs_msbuild_step.depend(vs_cmake_step.depend(github.Source(author, git_path, branch, super_repository=tl_repo).set_destination(path))))
#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))
@@ -134,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
@@ -166,13 +214,22 @@ 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"))
shutil.copy(os.path.join(build_path, "sip-{}".format(config['sip_version']), "LICENSE"), os.path.join(license_path, "sip.txt"))
shutil.copy(os.path.join(build_path, "sip-{}".format(config['sip_version']), "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"))
if config['sip_dev_version']:
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']))
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, "boost_{}".format(boost_tag_version.replace(".", "_")), "LICENSE_1_0.txt"), os.path.join(license_path, "boost.txt"))
@@ -180,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
@@ -188,13 +245,30 @@ 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"))
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)
return True
Project("explorerpp") \
.depend(build.Execute(copy_explorerpp)
.depend(urldownload.URLDownload("https://explorerplusplus.com/software/explorer++_{}_x64.zip".format(config["explorer++_version"]), 0)
.set_destination("explorer++")))
if config['Installer']:
# build_installer = cmake.CMake().arguments(cmake_parameters
# +["-DCMAKE_INSTALL_PREFIX:PATH={}/installer".format(config["__build_base_path"])]).install()
wixinstaller = Project("WixInstaller") \
.depend(github.Source(config['Main_Author'], "modorganizer-WixInstaller", "master", super_repository=tl_repo)
.set_destination("WixInstaller")) \
.depend("modorganizer").depend("usvfs").depend("usvfs_32").depend("WixToolkit")
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", 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.
#
+42
View File
@@ -0,0 +1,42 @@
# Copyright (C) 2015 Sebastian Herbord. All rights reserved.
# Copyright (C) 2016 - 2019 Mod Organizer contributors.
#
# This file is part of Mod Organizer.
#
# Mod Organizer is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Mod Organizer is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# 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 logging
import os
from unibuild import Task
class SetProjectFolder(Task):
def __init__(self, projectpath):
super(SetProjectFolder, self).__init__()
self.__projectpath = projectpath
def prepare(self):
if 'build_path' not in self._context:
output_file_path = os.path.join(self.__projectpath)
self._context['build_path'] = output_file_path
@property
def name(self):
return "setting appveyor project path to {}".format(self.__projectpath)
def process(self, progress):
if not os.path.isdir(self.__projectpath):
logging.error("failed to set appveyor project dir to %s, doesn't exist", self.__projectpath)
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.
#
+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,
+124 -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.
#
@@ -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:
@@ -250,14 +255,16 @@ class CMakeVS(Builder):
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']))
if config["architecture"] == "x86_64":
vs_generator += " Win64"
# 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":
vs_generator_arch = "Win32"
try:
with on_exit(lambda: progress.finish()):
with open(soutpath, "w") as sout:
with open(serrpath, "w") as serr:
proc = Popen([config["paths"]["cmake"], "-G", vs_generator, ".."] + self.__arguments,
proc = Popen([config["paths"]["cmake"], "-G", vs_generator, "-A", vs_generator_arch, ".."] + self.__arguments,
cwd=build_path,
env=config["__environment"],
stdout=sout, stderr=serr)
@@ -270,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