Author SHA1 Message Date
Jeremy Rimpo 4227ed97ca Better support for dev PyQt builds
- Add alternate index support to pip
- Utilize dev pypi index for PyQt
- Use Qt 6.7.1 for testing
2024-07-11 13:41:39 -05:00
Mikaël Capelle 9f1b33f3bd Bump libbsarch to 0.0.12. (#144) 2024-07-11 11:17:03 +02:00
Jeremy Rimpo ec429c01d6 Update libloot to 0.23.0 (#143) 2024-07-11 07:20:09 +02:00
5 changed files with 47 additions and 96 deletions
+8 -81
View File
@@ -21,79 +21,6 @@ host =
super = cmake_common modorganizer* githubpp
plugins = check_fnis bsapacker bsa_extractor diagnose_basic installer_* plugin_python preview_base preview_bsa tool_* game_*
[dependencies]
sevenz =
zlib =
gtest =
libbsarch = directxtex
libloot =
openssl =
bzip2 =
directxtex =
cmake_common =
python = openssl
lz4 =
spdlog =
boost =
boost_di =
sip = python
pyqt = sip
pybind11 =
usvfs = gtest boost
stylesheets =
licenses =
explorerpp =
cmake_common =
archive = 7z
uibase = cmake_common boost spdlog gtest
basic_games = python
bsa_extractor = uibase bsatk
bsapacker = uibase libbsarch
bsatk = boost zlib lz4
check_fnis = uibase
diagnose_basic = uibase
esptk = boost
fnistool = python
form43_checker = python
game_gamebryo = uibase zlib lz4
game_enderal = game_gamebryo
game_enderalse = game_gamebryo
game_fallout3 = game_gamebryo
game_fallout4 = game_gamebryo
game_fallout4vr = game_gamebryo
game_fallout76 = game_gamebryo
game_falloutnv = game_gamebryo
game_morrowind = game_gamebryo
game_nehrim = game_gamebryo
game_oblivion = game_gamebryo
game_skyrim = game_gamebryo
game_skyrimse = game_gamebryo
game_skyrimvr = game_gamebryo
game_starfield = game_gamebryo
game_ttw = game_gamebryo
githubpp =
helper =
installer_bain = uibase
installer_bundle = uibase
installer_fomod = uibase
installer_fomod_csharp = uibase
installer_manual = uibase
installer_omod = uibase
installer_quick = uibase
installer_wizard = python
lootcli = libloot
modorganizer = uibase githubpp bsatk esptk archive usvfs lootcli
nxmhandler = uibase
plugin_python = uibase python pybind11
preview_base = uibase
preview_bsa = uibase bsatk
preview_dds = uibase
script_extender_plugin_checker = python
tool_configurator = python
tool_inibakery = uibase
tool_inieditor = uibase
[task]
enabled = true
mo_org = ModOrganizer2
@@ -161,7 +88,7 @@ pull = true
boost = true
lz4 = true
openssl = true
pyqt = true
pyqt = false
python = true
[versions]
@@ -175,22 +102,22 @@ boost_vs = 14.3
fmt = 10.2.1
gtest = main
directxtex = main
libloot = 0.22.4
libloot = 0.23.0
lz4 = v1.9.4
nmm = 0.71.2
openssl = 3.3.0
pyqt = 6.7.0
pyqt_builder = 1.16.2
pyqt_sip = 13.7.0
pyqt = 6.7.1.dev2407071716
pyqt_builder = 1.16.4.dev2+g2802761
pyqt_sip = 13.8.0
python = v3.12.3
pybind11 = v2.12.0
bzip2 = 1.0.8
sip = 6.8.3
sip = 6.8.6.dev4+gf624736c
spdlog = v1.14.1
qt = 6.7.0
qt = 6.7.1
qt_vs = 2019
zlib = v1.3.1
libbsarch = 0.0.10
libbsarch = 0.0.12
usvfs = master
explorerpp = 1.4.0
ss_paper_lad_6788 = 7.2
+3 -1
View File
@@ -173,7 +173,8 @@ namespace mob::tasks {
void pyqt::build_and_install_from_source()
{
// use pip to install the pyqt builder
if (python::build_type() == config::debug) {
if (python::build_type() == config::debug ||
builder_version().find("dev") != std::string::npos) {
// PyQt-builder has sip as a dependency, so installing it directly will
// replace the sip we have installed manually, but the installed sip will
// not work (see comment in sip::build() for details)
@@ -184,6 +185,7 @@ namespace mob::tasks {
run_tool(pip(pip::install).package("packaging"));
run_tool(pip(pip::install)
.package("PyQt-builder")
.index("https://www.riverbankcomputing.com/pypi/simple")
.no_dependencies()
.version(builder_version()));
}
+4 -1
View File
@@ -116,7 +116,10 @@ namespace mob::tasks {
}
else {
// download
run_tool(pip(pip::download).package("sip").version(version()));
run_tool(pip(pip::download)
.package("sip")
.index("https://www.riverbankcomputing.com/pypi/simple")
.version(version()));
}
// extract
+30 -13
View File
@@ -69,6 +69,12 @@ namespace mob {
return *this;
}
pip& pip::index(const std::string& s)
{
index_ = s;
return *this;
}
pip& pip::no_dependencies()
{
no_deps_ = true;
@@ -147,6 +153,10 @@ namespace mob {
.arg("--no-warn-script-location")
.arg("--disable-pip-version-check");
if (!index_.empty()) {
p.arg("-i", index_).arg("--extra-index-url", "https://pypi.org/simple")
}
if (!package_.empty()) {
if (version_.empty()) {
p.arg(package_);
@@ -169,19 +179,26 @@ namespace mob {
void pip::do_download()
{
execute_and_join(process()
.binary(tasks::python::python_exe())
.chcp(65001)
.stdout_encoding(encodings::utf8)
.stderr_encoding(encodings::utf8)
.arg("-X", "utf8")
.arg("-m", "pip")
.arg("download")
.arg("--no-binary=:all:")
.arg("--no-deps")
.arg("-d", conf().path().cache())
.arg(package_ + "==" + version_)
.env(this_env::get().set("PYTHONUTF8", "1")));
auto p = process()
.binary(tasks::python::python_exe())
.chcp(65001)
.stdout_encoding(encodings::utf8)
.stderr_encoding(encodings::utf8)
.arg("-X", "utf8")
.arg("-m", "pip")
.arg("download");
if (!index_.empty()) {
p.arg("-i", index_).arg("--extra-index-url", "https://pypi.org/simple")
}
p.arg("--no-binary=:all:")
.arg("--no-deps")
.arg("-d", conf().path().cache())
.arg(package_ + "==" + version_)
.env(this_env::get().set("PYTHONUTF8", "1"));
execute_and_join(p);
}
} // namespace mob
+2
View File
@@ -702,6 +702,7 @@ namespace mob {
pip& package(const std::string& s);
pip& version(const std::string& s);
pip& file(const fs::path& p);
pip& index(const std::string& s);
// do not install dependencies for the package
//
@@ -720,6 +721,7 @@ namespace mob {
std::string package_;
std::string version_;
fs::path file_;
std::string index_;
// no depndencies
bool no_deps_;