Author SHA1 Message Date
Mikaël Capelle ed871319af Add dependencies to the ini file. 2024-07-02 14:10:50 +02:00
Mikaël Capelle eba5bf49bd Build DirectXTex with mob. (#140) 2024-07-01 17:20:59 +02:00
Jeremy Rimpo a308e75cf8 Update to libbsarch 0.0.10 (#138) 2024-07-01 17:20:36 +02:00
8 changed files with 172 additions and 34 deletions
+75 -1
View File
@@ -21,6 +21,79 @@ 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
@@ -101,6 +174,7 @@ boost = 1.85.0
boost_vs = 14.3
fmt = 10.2.1
gtest = main
directxtex = main
libloot = 0.22.4
lz4 = v1.9.4
nmm = 0.71.2
@@ -116,7 +190,7 @@ spdlog = v1.14.1
qt = 6.7.0
qt_vs = 2019
zlib = v1.3.1
libbsarch = 0.0.9
libbsarch = 0.0.10
usvfs = master
explorerpp = 1.4.0
ss_paper_lad_6788 = 7.2
-9
View File
@@ -1,9 +0,0 @@
param(
[Parameter(Mandatory = $true)][String]$Path,
[Parameter(Mandatory = $true)][String]$Output
)
7z a $Output (Join-Path -Path $Path -ChildPath "boost")
7z a $Output (Join-Path -Path $Path -ChildPath "lib32-msvc-14.3")
7z a $Output (Join-Path -Path $Path -ChildPath "lib64-msvc-14.3")
7z a $Output (Join-Path -Path $Path -ChildPath "LICENSE_1_0.txt")
-13
View File
@@ -1,13 +0,0 @@
param(
[Parameter(Mandatory = $true)][String]$PyQtPath,
[Parameter(Mandatory = $true)][String]$PythonPath,
[Parameter(Mandatory = $true)][String]$Output
)
$Output = [IO.Path]::GetFullPath($Output)
7z a $Output (Join-Path -Path $PyQtPath -ChildPath "LICENSE")
Push-Location $PythonPath
7z a $Output "Lib/site-packages/PyQt6" "-xr!__pycache__"
Pop-Location
-10
View File
@@ -1,10 +0,0 @@
param(
[Parameter(Mandatory = $true)][String]$Path,
[Parameter(Mandatory = $true)][String]$Output
)
7z a $Output (Join-Path -Path $Path -ChildPath "PCbuild/amd64") "-xr!pythoncore_temp"
7z rn $Output "amd64" "PCbuild/amd64"
7z a $Output (Join-Path -Path $Path -ChildPath "Include") "-xr!internal" "-xr!sip.h"
7z a $Output (Join-Path -Path $Path -ChildPath "Lib") "-xr!__pycache__" "-xr!site-packages"
7z a $Output (Join-Path -Path $Path -ChildPath "LICENSE")
+2 -1
View File
@@ -33,7 +33,8 @@ namespace mob {
.add_task<libbsarch>()
.add_task<libloot>()
.add_task<openssl>()
.add_task<bzip2>();
.add_task<bzip2>()
.add_task<directxtex>();
add_task<parallel_tasks>()
.add_task<tasks::python>()
+80
View File
@@ -0,0 +1,80 @@
#include "pch.h"
#include "tasks.h"
namespace mob::tasks {
namespace {
msbuild create_msbuild_tool(arch a, config config,
msbuild::ops o = msbuild::build)
{
return std::move(msbuild(o).architecture(a).configuration(config).solution(
directxtex::source_path() / "DirectXTex" /
"DirectXTex_Desktop_2022.vcxproj"));
}
} // namespace
directxtex::directxtex() : basic_task("directxtex") {}
std::string directxtex::version()
{
return conf().version().get("directxtex");
}
bool directxtex::prebuilt()
{
return false;
}
fs::path directxtex::source_path()
{
return conf().path().build() / "DirectXTex";
}
void directxtex::do_clean(clean c)
{
if (is_set(c, clean::reclone)) {
git_wrap::delete_directory(cx(), source_path());
return;
}
if (is_set(c, clean::rebuild)) {
run_tool(create_msbuild_tool(arch::x64, config::release, msbuild::clean));
run_tool(create_msbuild_tool(arch::x64, config::debug, msbuild::clean));
}
}
void directxtex::do_fetch()
{
run_tool(make_git()
.url(make_git_url("microsoft", "DirectXTex"))
.branch(version())
.root(source_path()));
}
void directxtex::do_build_and_install()
{
op::create_directories(cx(), directxtex::source_path() / "Include");
op::create_directories(cx(), directxtex::source_path() / "Lib" / "Debug");
op::create_directories(cx(), directxtex::source_path() / "Lib" / "Release");
// DO NOT run these in parallel because both generate files that are shared
// between release and debug
run_tool(create_msbuild_tool(arch::x64, config::release));
run_tool(create_msbuild_tool(arch::x64, config::debug));
const auto binary_path =
source_path() / "DirectXTex" / "Bin" / "Desktop_2022" / "x64";
for (const auto& header : {"DDS.h", "DirectXTex.h", "DirectXTex.inl "}) {
op::copy_file_to_dir_if_better(cx(), source_path() / "DirectXTex" / header,
source_path() / "Include");
}
op::copy_file_to_dir_if_better(cx(), binary_path / "Debug" / "DirectXTex.lib",
source_path() / "Lib" / "Debug");
op::copy_file_to_dir_if_better(cx(), binary_path / "Release" / "DirectXTex.lib",
source_path() / "Lib" / "Release");
}
} // namespace mob::tasks
+1
View File
@@ -226,6 +226,7 @@ namespace mob::tasks {
gtest::build_path(arch::x64, c == config::debug ? config::debug
: config::release))
.def("OPENSSL_ROOT_DIR", openssl::source_path())
.def("DIRECTXTEX_ROOT", directxtex::source_path())
.root(root));
}
+14
View File
@@ -77,6 +77,20 @@ namespace mob::tasks {
void do_fetch() override;
};
class directxtex : public basic_task<directxtex> {
public:
directxtex();
static std::string version();
static bool prebuilt();
static fs::path source_path();
protected:
void do_clean(clean c) override;
void do_fetch() override;
void do_build_and_install() override;
};
class explorerpp : public basic_task<explorerpp> {
public:
explorerpp();