59 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 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
19 changed files with 181 additions and 130 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ Open there a console and copy in: ``git clone https://github.com/Modorganizer2/m
Now you need to install all required software to build Mod Organizer.
#### Manual Requirements
* Qt 5.15.0: [Download Manager](http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe)
* 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
+18 -17
View File
@@ -81,41 +81,41 @@ config = {
# manualy set all versions
'7zip_version': '19.00',
'boost_version': '1.74.0',
'boost_version': '1.75.0',
'boost_version_tag': '',
'fmt_version': '7.0.3',
'fmt_version': '7.1.3',
'googletest_version': '1.8.0', # unused. We use the latest source
'grep_version': '3.3',
'icu_version': '67',
'icu_version_minor': '1',
'icu_version': '68',
'icu_version_minor': '2',
'loot_version': '0.16.1',
'loot_commit': 'gd8c9b98',
'loot_branch': '0.16.1',
'lz4_version': '1.9.2',
'lz4_version': '1.9.3',
'lz4_version_minor': '', # leave empty if no patch version (1.2.3.x)
'nasm_version': '2.15.05',
'nuget_version': '5.7.0',
'nuget_version': '5.8.1',
'nmm_version': '0.71.2',
'openssl_version': '1.1.1h',
'pyqt_version': '5.15.1',
'pyqt_pypi_hash': '1d/31/896dc3dfb6c81c70164019a6cbba6ab037e3af7653d9ca60ccc874ee4c27',
'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
'pyqt_builder_version': '1.5.0',
'pyqt_builder_version': '1.7.0',
'pyqt_sip_version': '12.8.1',
'python_version': '3.8',
'python_version_minor': '.6',
'python_version_minor': '.7',
'bzip2_version': '1.0.6', # For python
'sip_version': '5.4.0',
'sip_version': '5.5.0',
'sip_dev_version': '', # leave empty for a standard release
'spdlog_version': 'v1.8.0',
'spdlog_version': 'v1.8.2',
'qt_version': '5.15',
'qt_version_minor': '0',
'qt_version_minor': '2',
'qt_version_appveyor': '5.15',
'qt_version_minor_appveyor': '0',
'qt_vc_version': '16.0',
'qt_version_minor_appveyor': '2',
'qt_vs_version': '16.0',
'vc_platformtoolset': 'v142',
'vc_TargetPlatformVersion': '10.0.19041.0',
'vc_version': '16.0',
'vs_version': '16.0',
'vc_version_for_boost': '14.2',
'WixToolset_version': '311',
'zlib_version': '1.2.11',
@@ -127,6 +127,7 @@ config = {
'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.8',
+36 -46
View File
@@ -43,9 +43,16 @@ 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'], "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"], True),
(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),
@@ -59,6 +66,9 @@ for author, git_path, path, branch, dependencies, Build in [
(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_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),
@@ -94,12 +104,14 @@ for author, git_path, path, branch, dependencies, Build in [
(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"], True),
(config['Main_Author'], "modorganizer-installer_manual", "installer_manual", 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"], 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",
@@ -122,7 +134,7 @@ for author, git_path, path, branch, dependencies, Build in [
"modorganizer-lootcli",
"usvfs", "githubpp",
"ncc", "openssl",
"paper-light-and-dark", "paper-automata", "paper-mono", "1809-dark-mode"], True),
"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()
@@ -139,52 +151,30 @@ for author, git_path, path, branch, dependencies, Build in [
"#define VER_FILEVERSION_STR \"{}\"\n"
.format(config['override_build_version']))
if config['Appveyor_Build']:
appveyor_cmake_step = cmake.CMakeJOM().arguments(cmake_param).install()
#begin build
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
if git_path != "cmake_common":
appveyor_cmake_step.depend("cmake_common")
if git_path != "cmake_common":
vs_cmake_step.depend("cmake_common")
for dep in dependencies:
appveyor_cmake_step.depend(dep)
for dep in dependencies:
vs_cmake_step.depend(dep)
if os.getenv("APPVEYOR_PROJECT_NAME","") == git_path:
source_retrieval_step = appveyor.SetProjectFolder(os.getenv("APPVEYOR_BUILD_FOLDER", ""))
else:
source_retrieval_step = github.Source(author, git_path, branch, feature_branch=config['Feature_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'])
if git_path == "modorganizer" and config['override_build_version']:
#add patching step that depends on source retrieval
patch_version_step.depend(source_retrieval_step)
appveyor_cmake_step.depend(patch_version_step)
else:
appveyor_cmake_step.depend(source_retrieval_step)
source_retrieval_step = github.Source(author, git_path, branch, feature_branch=config['Feature_Branch'], super_repository=tl_repo).set_destination(path)
project.depend(appveyor_cmake_step)
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:
vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install()
vs_cmake_step.depend(source_retrieval_step)
if git_path != "cmake_common":
vs_cmake_step.depend("cmake_common")
for dep in dependencies:
vs_cmake_step.depend(dep)
#vs_target = "Clean;Build" if config['rebuild'] else "Build"
vs_msbuild_step = msbuild.MSBuild(os.path.join("vsbuild", "INSTALL.vcxproj"), None, None,
"{}".format("x64" if config['architecture'] == 'x86_64' else "x86"),
config['build_type'])
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:
vs_cmake_step.depend(source_retrieval_step)
project.depend(vs_msbuild_step.depend(vs_cmake_step))
project.depend(vs_msbuild_step.depend(vs_cmake_step))
else:
project.depend(github.Source(author, git_path, branch, feature_branch=config['Feature_Branch'], super_repository=tl_repo)
.set_destination(path))
@@ -245,12 +235,12 @@ def copy_licenses(context):
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, "modorganizer_super", "lootcli", "build", "src", "external", "src", "cpptoml", "LICENSE"), os.path.join(license_path, "cpptoml.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(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, "python-{}{}".format(config['python_version'], config['python_version_minor']),"LICENSE"), os.path.join(license_path, "python.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"))
+1 -1
View File
@@ -1,6 +1,6 @@
--- builder.py (date 1575938575861)
+++ builder.py (date 1575938575861)
@@ -386,17 +386,29 @@
@@ -441,17 +441,29 @@
'QMAKE_LFLAGS += -Wl,--version-script={}.exp'.format(
buildable.target))
+2
View File
@@ -50,6 +50,8 @@ modorganizer-game_gamebryo
modorganizer-game_oblivion
modorganizer-game_nehrim
modorganizer-game_fallout3
modorganizer-game_fallout4
+2 -2
View File
@@ -175,7 +175,7 @@ class CMakeEdit(Builder):
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"
@@ -254,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":
+56 -1
View File
@@ -15,11 +15,31 @@
#
# 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 sys
import os
import urllib.request
import json
import subprocess
import logging
from config import config
from unibuild.modules.git import Clone
from unibuild.modules.urldownload import URLDownload
def Popen(cmd, **kwargs):
pc = ''
if 'cwd' in kwargs:
try:
pc += os.path.relpath(kwargs['cwd'], os.path.abspath('..'))
except ValueError:
pc += kwargs['cwd']
pc += '>'
for arg in cmd:
pc += ' ' + arg
print(pc)
return subprocess.Popen(cmd,**kwargs)
class Release(URLDownload):
def __init__(self, author, project, version, filename, extension="zip", tree_depth=0):
super(Release, self) \
@@ -43,10 +63,45 @@ class Tag(URLDownload):
class Source(Clone):
def __init__(self, author, project, branch="master", feature_branch=None, super_repository=None, update=True, commit=None, shallowclone=False):
def __init__(self, author, project, branch="master", feature_branch=None, super_repository=None, update=True, commit=None, pr_label=None, shallowclone=False):
self.__author = author
self.__project = project
if config['shallowclone']:
self.shallowclone = True
self.__pr_label = pr_label
super(Source, self).__init__("https://github.com/{author}/{project}.git".format(author=author, project=project),
branch, feature_branch, super_repository, update, commit, shallowclone)
self.set_destination(project)
def process(self, progress):
result = super(Source, self).process(progress)
if result is False:
return False
if self.__pr_label is not None:
url = "https://api.github.com/repos/{}/{}/pulls".format(self.__author, self.__project)
response = urllib.request.urlopen(url)
data = json.loads(response.read())
filtered_data = [x for x in data if x["head"]["label"] == self.__pr_label]
sys.stdout.write(filtered_data.__str__())
if len(filtered_data) > 0:
pr_number = filtered_data[0]["number"]
proc = Popen([config['paths']['git'], "fetch", "-q", "origin", "+refs/pull/{}/merge:".format(pr_number)],
cwd=self._context["build_path"],
env=config["__environment"])
proc.communicate()
if proc.returncode != 0:
logging.error("failed to fetch pr %s (returncode %s)", pr_number, proc.returncode)
return False
proc = Popen([config['paths']['git'], "checkout", "-qf", "FETCH_HEAD"],
cwd=self._context["build_path"],
env=config["__environment"])
proc.communicate()
if proc.returncode != 0:
logging.error("failed to checkout pr branch (returncode %s)", proc.returncode)
return False
return True
+2
View File
@@ -88,6 +88,8 @@ class MSBuild(Builder):
"/verbosity:" + verbosity,
"/consoleloggerparameters:Summary",
"/fileLogger",
"/property:RunCodeAnalysis=false",
"/restore",
"/fileloggerparameters:Summary;Verbosity=" + lverbosity]
+2 -1
View File
@@ -34,7 +34,8 @@ boost_components = ["date_time",
"filesystem",
"thread",
"log",
"locale"]
"locale",
"program_options"]
boost_components_shared = ["python"]
user_config_jam = "user-config-{}.jam".format("64" if config['architecture'] == "x86_64" else "32")
+1 -1
View File
@@ -22,5 +22,5 @@ from unibuild.modules import cmake, github, build
Project("GTest") \
.depend(cmake.CMake().arguments(["-DCMAKE_BUILD_TYPE={0}".format(config["build_type"])])
.depend(github.Source("google", "googletest", "master")))
.depend(github.Source("google", "googletest", "main")))
#.depend(github.Source("google", "googletest", "release-{}".format(googletest_version))))
+4 -4
View File
@@ -49,8 +49,8 @@ def upgrade_args():
return [os.path.join(devenv_path, "devenv.exe"),
os.path.join(lz_path, "visual", "VS2017", 'lz4.sln'),
"/upgrade"]
return [os.path.join(get_visual_studio(config["vc_version"]), "..", "..", "..", "Common7", "IDE", "devenv.exe"),
os.path.join(lz_path, "visual", "VS2017", 'lz4.sln'), "/upgrade"]
return [os.path.join(get_visual_studio(config["vs_version"]), "..", "..", "..", "Common7", "IDE", "devenv.exe"),
os.path.join(lz_path, "build", "VS2017", 'lz4.sln'), "/upgrade"]
def copy_binaries(context):
@@ -59,7 +59,7 @@ def copy_binaries(context):
os.path.join(lz_path, "bin")
)
shutil.copytree(
os.path.join(lz_path, "visual", "VS2017", "bin", "{}_Release".format(bitness())),
os.path.join(lz_path, "build", "VS2017", "bin", "{}_Release".format(bitness())),
os.path.join(lz_path, "bin")
)
return True
@@ -97,7 +97,7 @@ else:
copy_binaries
).depend(
msbuild.MSBuild(
os.path.join(lz_path, "visual", "VS2017", 'lz4.sln'),
os.path.join(lz_path, "build", "VS2017", 'lz4.sln'),
project="liblz4-dll",
working_directory=lazy.Evaluate(lambda: os.path.join(lz_path)),
reltarget="Release"
+1 -1
View File
@@ -44,7 +44,7 @@ if config['pyqt_dev_version']:
qt_binary_install = config["paths"]["qt_binary_install"]
__build_base_path = config["__build_base_path"]
enabled_modules = ["QtCore", "QtGui", "QtWidgets", "QtOpenGL", "_QOpenGLFunctions_2_0",
enabled_modules = ["QtCore", "QtGui", "QtWidgets", "QtOpenGL", "QtSvg", "_QOpenGLFunctions_2_0",
"_QOpenGLFunctions_2_1", "_QOpenGLFunctions_4_1_Core"] #, "_QOpenGLFunctions_ES2"]
+2 -2
View File
@@ -69,7 +69,7 @@ def upgrade_args():
return [os.path.join(devenv_path, "devenv.exe"),
"PCBuild/pcbuild.sln",
"/upgrade"]
return [os.path.join(get_visual_studio(config["vc_version"]), "..", "..", "..", "Common7", "IDE", "devenv.exe"),
return [os.path.join(get_visual_studio(config["vs_version"]), "..", "..", "..", "Common7", "IDE", "devenv.exe"),
"PCBuild/pcbuild.sln", "/upgrade"]
@@ -152,7 +152,7 @@ else:
.depend(build.Execute(install)
.depend(build.Execute(python_prepare)
.depend(PydCompiler()
.depend(msbuild.MSBuild("PCBuild/PCBuild.sln", "python,pythonw,python3dll,select,pyexpat,unicodedata,_queue,_bz2,_ssl",
.depend(msbuild.MSBuild("PCBuild/PCBuild.sln", "python,pythonw,python3dll,select,pyexpat,unicodedata,_queue,_bz2,_ssl,_overlapped",
project_PlatformToolset=config['vc_platformtoolset'],
reltarget="Release",
project_AdditionalParams=[
+1 -1
View File
@@ -42,7 +42,7 @@ def bitnessQt():
def variant():
return "msvc2013" if config['qt_vc_version'] == "12.0" else "msvc2015" if config['qt_vc_version'] == "14.0" else "msvc2017" if config['qt_vc_version'] == "15.0" else "msvc2019"
return "msvc2013" if config['qt_vs_version'] == "12.0" else "msvc2015" if config['qt_vs_version'] == "14.0" else "msvc2017" if config['qt_vs_version'] == "15.0" else "msvc2019"
qt_bin_variant = variant()
platform = "win32-{0}".format(variant())
+24 -25
View File
@@ -80,33 +80,32 @@ class SipSetup(build.Builder):
proc.returncode, soutpath, serrpath)
return False
if config["Appveyor_Build"] is False:
logging.debug("SIP base setup")
proc = Popen([os.path.join(bp, "PCbuild", arch, "python.exe"), "setup.py", "install"],
env=sip_environment(),
cwd=self._context["build_path"],
shell=True,
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
logging.error("failed to run sip setup.py (returncode %s), see %s and %s",
proc.returncode, soutpath, serrpath)
return False
logging.debug("SIP base setup")
proc = Popen([os.path.join(bp, "PCbuild", arch, "python.exe"), "setup.py", "install"],
env=sip_environment(),
cwd=self._context["build_path"],
shell=True,
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
logging.error("failed to run sip setup.py (returncode %s), see %s and %s",
proc.returncode, soutpath, serrpath)
return False
logging.debug("Generating sip.h")
proc = Popen([os.path.join(bp, "Scripts", "sip-module.exe"), "--sip-h", "PyQt5.sip"],
env=sip_environment(),
cwd=config["paths"]["download"],
shell=True,
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
logging.error("failed to run sip-module (returncode %s), see %s and %s",
proc.returncode, soutpath, serrpath)
return False
logging.debug("Generating sip.h")
proc = Popen([os.path.join(bp, "Scripts", "sip-module.exe"), "--sip-h", "PyQt5.sip"],
env=sip_environment(),
cwd=config["paths"]["download"],
shell=True,
stdout=sout, stderr=serr)
proc.communicate()
if proc.returncode != 0:
logging.error("failed to run sip-module (returncode %s), see %s and %s",
proc.returncode, soutpath, serrpath)
return False
logging.debug("Copy sip.h into python includes")
shutil.copy(os.path.join(config["paths"]["download"], "sip.h"), os.path.join(bp, "Include", "sip.h"))
logging.debug("Copy sip.h into python includes")
shutil.copy(os.path.join(config["paths"]["download"], "sip.h"), os.path.join(bp, "Include", "sip.h"))
return True
+7 -6
View File
@@ -47,8 +47,8 @@ def copy_stylesheets(context, dir):
copytree_fixed(src, dst)
return True
def create_stylesheet_project(author, name, filename=None, extension="7z"):
version = "v" + config[name + "_version"]
def create_stylesheet_project(author, name, filename=None, version_prefix="", extension="7z"):
version = version_prefix + config[name + "_version"]
if filename is None:
filename = config[name + "_version"]
dir = name + "-" + version
@@ -57,7 +57,8 @@ def create_stylesheet_project(author, name, filename=None, extension="7z"):
.depend(build.Execute(lambda context: copy_stylesheets(context, dir))
.depend(github.Release(author, name, version, filename, extension)))
create_stylesheet_project("6788-00", "paper-light-and-dark")
create_stylesheet_project("6788-00", "paper-automata", "Paper-Automata")
create_stylesheet_project("6788-00", "paper-mono", "Paper-Mono")
create_stylesheet_project("6788-00", "1809-dark-mode")
create_stylesheet_project("6788-00", "paper-light-and-dark", version_prefix="v")
create_stylesheet_project("6788-00", "paper-automata", "Paper-Automata", version_prefix="v")
create_stylesheet_project("6788-00", "paper-mono", "Paper-Mono", version_prefix="v")
create_stylesheet_project("6788-00", "1809-dark-mode", version_prefix="v")
create_stylesheet_project("Trosski", "ModOrganizer_Style_Morrowind", "Transparent-Style-Morrowind")
+4 -4
View File
@@ -82,12 +82,12 @@ def init_config(args):
if config['architecture'] not in ['x86_64', 'x86']:
raise ValueError("only architectures supported are x86 and x86_64")
visual_studio(config["vc_version"]) # forced set after args are evaluated
visual_studio(config["vs_version"]) # forced set after args are evaluated
if config['prefer_binary_dependencies']:
if os.environ.get('APPVEYOR') is not None:
qt_install(config["qt_version_appveyor"], config["qt_version_minor_appveyor"], config["qt_vc_version"])
qt_install(config["qt_version_appveyor"], config["qt_version_minor_appveyor"], config["qt_vs_version"])
else:
qt_install(config["qt_version"], config["qt_version_minor"], config["qt_vc_version"])
qt_install(config["qt_version"], config["qt_version_minor"], config["qt_vs_version"])
config['__Default_environment'] = os.environ
config['__environment'] = visual_studio_environment()
config['__build_base_path'] = os.path.abspath(args.destination)
@@ -117,7 +117,7 @@ def dump_config():
logging.debug(" Config: config['paths']['python']=%s", Evaluate(config['paths']['python']))
logging.debug(" Config: config['paths']['visual_studio']=%s", config['paths']['visual_studio'])
logging.debug(" Config: config['paths']['qt_binary_install']=%s", config['paths']['qt_binary_install'])
logging.debug(" Config: config['vc_version']=%s", config['vc_version'])
logging.debug(" Config: config['vs_version']=%s", config['vs_version'])
def check_config():
+7 -7
View File
@@ -25,12 +25,12 @@ from unibuild.utility.config_utility import program_files_folders
from unibuild.utility.visualstudio import vc_year
def get_qt_install(qt_version, qt_version_minor, vc_version):
def get_qt_install(qt_version, qt_version_minor, vs_version):
# Start with the custom Qt install path, overrides automatic detection
try:
p = os.path.join(config['qt_CustomInstallPath'], "{}".format(qt_version + "." + qt_version_minor
if qt_version_minor != '' else qt_version),
"msvc{0}_64".format(vc_year(vc_version)))
"msvc{0}_64".format(vc_year(vs_version)))
f = os.path.join(p, "bin", "qmake.exe")
if os.path.isfile(f):
return os.path.realpath(p)
@@ -42,14 +42,14 @@ def get_qt_install(qt_version, qt_version_minor, vc_version):
# Offline installer default location
p = os.path.join(baselocation, "Qt", "Qt{}".format(qt_version + "." + qt_version_minor
if qt_version_minor != '' else qt_version), "{}".format(qt_version + "." + qt_version_minor
if qt_version_minor != '' else qt_version), "msvc{0}_64".format(vc_year(vc_version)))
if qt_version_minor != '' else qt_version), "msvc{0}_64".format(vc_year(vs_version)))
f = os.path.join(p, "bin", "qmake.exe")
if os.path.isfile(f):
return os.path.realpath(p)
# Online installer default location
p = os.path.join(baselocation, "Qt", "{}".format(qt_version + "." + qt_version_minor
if qt_version_minor != '' else qt_version),
"msvc{0}_64".format(vc_year(vc_version)))
"msvc{0}_64".format(vc_year(vs_version)))
f = os.path.join(p, "bin", "qmake.exe")
if os.path.isfile(f):
return os.path.realpath(p)
@@ -73,7 +73,7 @@ def get_qt_install(qt_version, qt_version_minor, vc_version):
p = os.path.join(root, "{}".format(qt_version + "." + qt_version_minor
if qt_version_minor != '' else qt_version),
"msvc{0}_64".format(vc_year(vc_version)))
"msvc{0}_64".format(vc_year(vs_version)))
f = os.path.join(p, "bin", "qmake.exe")
if os.path.isfile(f):
return os.path.realpath(p)
@@ -83,8 +83,8 @@ def get_qt_install(qt_version, qt_version_minor, vc_version):
return None
def qt_install(qt_version, qt_version_minor, vc_version):
config["paths"]["qt_binary_install"] = get_qt_install(qt_version, qt_version_minor, vc_version)
def qt_install(qt_version, qt_version_minor, vs_version):
config["paths"]["qt_binary_install"] = get_qt_install(qt_version, qt_version_minor, vs_version)
if not config["paths"]["qt_binary_install"]:
if qt_version_minor != '':
qt_v = qt_version + "." + qt_version_minor
+10 -10
View File
@@ -32,9 +32,9 @@ vs_editions = ["enterprise",
# No entries for vs 2017 in the stadard registry, check environment then look in the default installation dir
def get_visual_studio(vc_version):
def get_visual_studio(vs_version):
try:
if os.environ["VisualStudioVersion"] == vc_version:
if os.environ["VisualStudioVersion"] == vs_version:
p = os.path.join(os.environ["VSINSTALLDIR"], "VC", "Auxiliary", "Build")
f = os.path.join(p, "vcvarsall.bat")
res = os.path.isfile(f)
@@ -60,25 +60,25 @@ def get_visual_studio(vc_version):
for edition in vs_editions:
s = os.environ["ProgramFiles(x86)"]
p = os.path.join(s, "Microsoft Visual Studio", vc_year(vc_version), edition, "VC", "Auxiliary", "Build")
p = os.path.join(s, "Microsoft Visual Studio", vc_year(vs_version), edition, "VC", "Auxiliary", "Build")
f = os.path.join(p, "vcvarsall.bat")
if os.path.isfile(f):
config['paths']['visual_studio_basedir'] = os.path.join(s, "Microsoft Visual Studio", vc_year(vc_version),
config['paths']['visual_studio_basedir'] = os.path.join(s, "Microsoft Visual Studio", vc_year(vs_version),
edition)
return os.path.realpath(p)
def vc_year(vc_version):
if vc_version == "15.0":
def vc_year(vs_version):
if vs_version == "15.0":
return "2017"
elif vc_version == "16.0":
elif vs_version == "16.0":
return "2019"
else:
logging.error("Visual Studio %s is not supported", vc_version)
logging.error("Visual Studio %s is not supported", vs_version)
def visual_studio(vc_version):
config["paths"]["visual_studio"] = get_visual_studio(vc_version)
def visual_studio(vs_version):
config["paths"]["visual_studio"] = get_visual_studio(vs_version)
if not config["paths"]["visual_studio"]:
logging.error("Unable to find vcvarsall.bat, please make sure you have 'Common C++ tools' Installed."
" If you have changed the default installation folder for VS please set the 'vc_CustomInstallPath' in the config.py file"