* ColdClientLoader for Windows: don't fail and close the loader if patching the registery key HKLM failed, this key exists only if Steam was installed

* ColdClientLoader for Windows: fix another utf-8 path handling when searching for dlls to inject
* build deps with limited thread count, fixes WSL compilation
* update readme for python
This commit is contained in:
a 2024-07-13 06:50:28 +03:00
parent 6bbe6371ee
commit a1dad065e8
3 changed files with 20 additions and 11 deletions

View File

@ -123,12 +123,17 @@ You can also find instructions here in [README.release.md](./post_build/README.r
``` ```
* Python 3.10 or above * Python 3.10 or above
```shell ```shell
sudo apt update -y
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa -y sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update -y sudo apt update -y
sudo apt install python3.10 -y sudo apt install -y "python3.12"
sudo apt install -y "python3.12-dev"
sudo apt install -y "python3.12-venv"
sudo apt install -y python3-dev
# make sure it works # make sure it works
python3.10 --version python3.12 --version
``` ```
### **Building dependencies** ### **Building dependencies**
@ -291,7 +296,7 @@ Open bash terminal then:
You might need to edit this script to use a different python version. You might need to edit this script to use a different python version.
Find this line and change it: Find this line and change it:
```shell ```shell
python_package="python3.10" python_package="python3.12"
``` ```
2. Build the tool using `pyinstaller` 2. Build the tool using `pyinstaller`
```shell ```shell

View File

@ -35,7 +35,7 @@ chmod 777 "$premake_exe"
# build deps # build deps
if [[ $BUILD_DEPS = 1 ]]; then if [[ $BUILD_DEPS = 1 ]]; then
export CMAKE_GENERATOR="Unix Makefiles" export CMAKE_GENERATOR="Unix Makefiles"
"$premake_exe" --file="premake5-deps.lua" --all-ext --all-build --64-build --32-build --verbose --clean --os=linux gmake2 || { "$premake_exe" --file="premake5-deps.lua" --all-ext --all-build --64-build --32-build --verbose --clean --j=$build_threads --os=linux gmake2 || {
exit 1; exit 1;
} }
fi fi

View File

@ -91,7 +91,7 @@ static std::vector<std::string> collect_dlls_to_inject(const bool is_exe_32, std
const auto load_order_file = std::filesystem::u8path(DllsToInjectFolder) / "load_order.txt"; const auto load_order_file = std::filesystem::u8path(DllsToInjectFolder) / "load_order.txt";
std::vector<std::string> dlls_to_inject{}; std::vector<std::string> dlls_to_inject{};
for (const auto &dir_entry : for (const auto &dir_entry :
std::filesystem::recursive_directory_iterator(DllsToInjectFolder, std::filesystem::directory_options::follow_directory_symlink) std::filesystem::recursive_directory_iterator(std::filesystem::u8path(DllsToInjectFolder), std::filesystem::directory_options::follow_directory_symlink)
) { ) {
if (std::filesystem::is_directory(dir_entry.path())) continue; if (std::filesystem::is_directory(dir_entry.path())) continue;
@ -582,15 +582,19 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance
return 1; return 1;
} }
if (!patch_registry_hklm()) { // this fails due to admin rights when Steam isn't installed, not a big deal
cleanup_registry_hkcu(); // ----------------------------------------------
MessageBoxA(NULL, "Unable to patch Registry (HKLM).", "ColdClientLoader", MB_ICONERROR); patch_registry_hklm();
return 1; // if (!patch_registry_hklm()) {
} // cleanup_registry_hkcu();
// cleanup_registry_hklm();
// MessageBoxA(NULL, "Unable to patch Registry (HKLM).", "ColdClientLoader", MB_ICONERROR);
// return 1;
// }
patch_registry_hkcs();
// this fails due to admin rights, not a big deal // this fails due to admin rights, not a big deal
// ---------------------------------------------- // ----------------------------------------------
patch_registry_hkcs();
// if (!patch_registry_hkcs()) { // if (!patch_registry_hkcs()) {
// cleanup_registry_hkcu(); // cleanup_registry_hkcu();
// cleanup_registry_hklm(); // cleanup_registry_hklm();