From 256644f8d7cadd9e053bbcd7380f3edd7a7503a6 Mon Sep 17 00:00:00 2001 From: 47PADO47 <62028267+47PADO47@users.noreply.github.com> Date: Thu, 3 Sep 2026 01:27:38 +0200 Subject: [PATCH 1/5] chore: update readme.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a229d33..894a944 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ • Use the `Ins` button to show/hide the gui ## Compile -To compile the project make you you have [Visual Studio 22](https://visualstudio.microsoft.com/it/downloads/), [vcpkg](https://vcpkg.io/en/getting-started) integrated with `MSBuild` and Python 3.13 installed +To compile the project make sure you have [Visual Studio 22](https://visualstudio.microsoft.com/it/downloads/), [vcpkg](https://vcpkg.io/en/getting-started) integrated with `MSBuild` and Python 3.13 installed > [!IMPORTANT] > Internal.vcxproj expects python path to be `C:\Python313`, either match it or update header import configuration From 0272be24e33eff2a74ff951b259ccd5a9643ed25 Mon Sep 17 00:00:00 2001 From: 47PADO47 <62028267+47PADO47@users.noreply.github.com> Date: Thu, 3 Sep 2026 02:07:05 +0200 Subject: [PATCH 2/5] build: detect Python location instead of hardcoding C:\Python313 Internal embeds Python via pybind11 + , which previously required a fixed C:\Python310/C:\Python313 install. Add python.props that resolves the Python root from (in order): the PythonRoot property, the SPLITGATE_PYTHON_DIR env var, well-known install locations for any CPython 3.x (newest first), and finally the installer path in the registry. The include/libs dirs are injected before ClCompile/Link, and a clear error is raised if no Python is found. Import it from Internal.vcxproj and drop the hardcoded absolute paths. Co-Authored-By: Claude Opus 4.8 --- Internal/Internal.vcxproj | 5 +-- Internal/python.props | 73 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 Internal/python.props diff --git a/Internal/Internal.vcxproj b/Internal/Internal.vcxproj index 30e9bf4..ee9f15a 100644 --- a/Internal/Internal.vcxproj +++ b/Internal/Internal.vcxproj @@ -23,6 +23,7 @@ Unicode + @@ -33,7 +34,7 @@ false - $(ProjectDir)\external\pybind11\include;C:\Python310\include;C:\Python313\include;$(IncludePath) + $(ProjectDir)\external\pybind11\include;$(IncludePath) $(ProjectDir)external\discord-rpc\lib\;$(LibraryPath) @@ -62,7 +63,7 @@ true false d3d11.lib;%(AdditionalDependencies) - C:\Python310\libs;C:\Python313\libs + %(AdditionalLibraryDirectories) diff --git a/Internal/python.props b/Internal/python.props new file mode 100644 index 0000000..46b2fc0 --- /dev/null +++ b/Internal/python.props @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(PythonRoot)\ + + + + + %(PythonCandidate.Identity) + + + + + + + + + $(PythonRoot)include;%(AdditionalIncludeDirectories) + + + $(PythonRoot)libs;%(AdditionalLibraryDirectories) + + + + From 52d768c4dbd112037749ce87d2b60c5bc3fb8e65 Mon Sep 17 00:00:00 2001 From: 47PADO47 <62028267+47PADO47@users.noreply.github.com> Date: Thu, 3 Sep 2026 02:07:24 +0200 Subject: [PATCH 3/5] ci: build against Python 3.14 via the resolver override Bump setup-python to 3.14 and pass its tool-cache root to the build through SPLITGATE_PYTHON_DIR, since the hosted runner does not install Python to C:\Python3XY where python.props probes. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/msbuild.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 01012d3..fe9bd3d 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -28,9 +28,9 @@ jobs: with: submodules: recursive - uses: actions/setup-python@v5 - id: cp310 + id: cpy with: - python-version: '3.10' + python-version: '3.14' - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 @@ -53,6 +53,10 @@ jobs: - name: Build working-directory: ${{env.GITHUB_WORKSPACE}} + env: + # setup-python installs into the tool cache, not C:\Python3XY, so point + # python.props straight at that root via the override env var. + SPLITGATE_PYTHON_DIR: ${{ env.pythonLocation }} run: Tools/build.bat - name: Upload Release Artifact From 01ad75de39b6cda79e9b0bed23091d4cb15837d5 Mon Sep 17 00:00:00 2001 From: 47PADO47 <62028267+47PADO47@users.noreply.github.com> Date: Thu, 3 Sep 2026 02:07:29 +0200 Subject: [PATCH 4/5] docs: document Python auto-detection in compile steps Replace the "expects C:\Python313" note with the new resolution behavior: any Python 3.x, auto-detected from standard locations or the registry, overridable via SPLITGATE_PYTHON_DIR / PythonRoot. Link the Python download page and note the runtime DLL must match. Co-Authored-By: Claude Opus 4.8 --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 894a944..a59cb6f 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,14 @@ • Use the `Ins` button to show/hide the gui ## Compile -To compile the project make sure you have [Visual Studio 22](https://visualstudio.microsoft.com/it/downloads/), [vcpkg](https://vcpkg.io/en/getting-started) integrated with `MSBuild` and Python 3.13 installed +To compile the project make sure you have [Visual Studio 22](https://visualstudio.microsoft.com/it/downloads/), [vcpkg](https://vcpkg.io/en/getting-started) integrated with `MSBuild` and any [Python](https://www.python.org/downloads/) 3.x installed > [!IMPORTANT] -> Internal.vcxproj expects python path to be `C:\Python313`, either match it or update header import configuration +> `Internal` embeds Python (via pybind11 + ``), so a Python 3.x installation is required to compile. + +`Internal/python.props` auto-detects the newest Python installed in a standard location (`C:\Python3XY`, `%LOCALAPPDATA%\Programs\Python\Python3XY`, or `%ProgramFiles%\Python3XY`), falling back to the install path recorded in the registry — no configuration needed for a default install. + +If Python is installed somewhere custom that isn't picked up, set the `SPLITGATE_PYTHON_DIR` environment variable to your Python root (the folder containing `include\` and `libs\`), or pass `/p:PythonRoot=` to MSBuild. Whichever version is selected must match the `python3XY.dll` present at runtime. - Install `Internal` dependencies: ```sh From 5a5beb4a76989aaeffed83801a142645697c627a Mon Sep 17 00:00:00 2001 From: 47PADO47 <62028267+47PADO47@users.noreply.github.com> Date: Thu, 3 Sep 2026 02:07:35 +0200 Subject: [PATCH 5/5] chore: exclude pybind11 submodule and build output from editor search Add .vscode/settings.json search/watcher excludes for the pybind11 submodule, vcpkg_installed, and x64 output so they stop cluttering VS Code search results. Co-Authored-By: Claude Opus 4.8 --- .vscode/settings.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0f05f41 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "files.associations": { + "format": "cpp", + "chrono": "cpp" + }, + "search.exclude": { + "**/Internal/external/pybind11/**": true, + "**/vcpkg_installed/**": true, + "**/x64/**": true + }, + "files.watcherExclude": { + "**/Internal/external/pybind11/**": true, + "**/vcpkg_installed/**": true, + "**/x64/**": true + } +}