Add generic Linux dev setup & bootstrap#2035
Open
sunmachine wants to merge 2 commits into
Open
Conversation
src/.vscode/tasks.json ran ./buildallprojects, and .gitattributes pinned line endings for the same file. Neither exists: the script came from the source-sdk-2013 import and never survived the move to CMake presets, so the task could only ever fail on invocation.
Five targets build with UNITY_BUILD ON, so the build's compile_commands.json lists only generated unity_*.cxx blobs and roughly 1300 translation units carry no compile flags an indexer can use - navigation and completion are dead across most of src/game. The script configures a second, build-free CMake directory with unity off, purely for its compile database. The property is cleared through a deferred CMAKE_PROJECT_neo_INCLUDE hook, so no tracked CMakeLists.txt changes and the build keeps its unity speedup. What it produces is editor-agnostic: compile_commands.json symlinked at the repo root, a .clangd removing the GCC-only flags clang rejects, and a pinned, checksummed clangd under .ide/ (the sniper image ships 13, too old for this tree's C++20). Entry points: the dev container (the CI image plus a non-root account matched to the local UID, so bind-mount files stay user-owned under rootful docker), the tracked VS Code tasks, or running the script directly. Everything generated is git-ignored; *.sh gains eol=lf so a Windows checkout cannot produce a script that fails to run.
sunmachine
force-pushed
the
generic-ide-setup
branch
from
July 26, 2026 03:38
ac0faf9 to
3c56555
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Genericized IDE setup for Linux w/ Clang.
Optional developer tooling for working on the code, not a change to how NT;RE builds. Adds a dev container based on the same sniper SDK image the CI runners use, and
tools/ntre-dev-setup.sh, which sets up working C++ IntelliSense: a pinnedclangd, acompile_commands.jsonsymlinked at the repo root, and a.clangdwith the flags the SteamRT toolchain needs. Editor config for VS Code and Zed is written on request; everything generated is git-ignored, and the existing Qt Creator and CLI build workflows are untouched.Also removes two Source SDK leftovers: the
buildallprojectsgitattributes entry andsrc/.vscode/tasks.json, which both refer to a build script this tree no longer has.Trying it out
git clonethis repo and check out this branch..cppfile undersrc/and confirm go-to-definition and completion work.Requires Docker or Podman on the host. The README covers running the script outside a container.
Toolchain
Linked Issues
TODO