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 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 + } +} 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) + + + + diff --git a/README.md b/README.md index a229d33..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 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 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