From a5c1b2c67b0e016fda2613684607a1214988b8f2 Mon Sep 17 00:00:00 2001 From: csh Date: Tue, 14 Jul 2026 21:54:05 +0800 Subject: [PATCH] =?UTF-8?q?:wrench:=20build(lsp-server):=20=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E4=BA=A7=E7=89=A9=E8=BF=81=E5=87=BA=20OneDrive=20?= =?UTF-8?q?=E8=87=B3=20/var/tmp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将默认构建目录从项目内 lsp-server/build/clang-linux 改为跨机器 固定绝对路径 /var/tmp/tsl-devkit,避免 OneDrive 同步构建产物。 - .clangd: CompilationDatabase 指向新路径 - conanfile.txt: Linux/交叉编译命令统一到 /var/tmp,补齐 cross 段 /Release - AGENT_RULES.local.md: 更新构建/验证目录,补充 Windows 交叉编译段 - tech-context.md: 更新运行测试目录 --- AGENT_RULES.local.md | 34 ++++++++++++++++++++++++++-------- lsp-server/.clangd | 2 +- lsp-server/conanfile.txt | 18 ++++++++++-------- memory-bank/tech-context.md | 2 +- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/AGENT_RULES.local.md b/AGENT_RULES.local.md index faf246e..5641de6 100644 --- a/AGENT_RULES.local.md +++ b/AGENT_RULES.local.md @@ -39,28 +39,46 @@ ## 构建与验证 -默认 Linux 构建目录:`lsp-server/build/clang-linux/Release` +默认 Linux 构建目录:`/var/tmp/tsl-devkit/clang-linux/Release` +(跨机器固定绝对路径,不在项目内构建) - 构建前置: ```bash -CONAN_HOME=/tmp/conan-home conan install lsp-server \ +CONAN_HOME=/var/tmp/tsl-devkit/conan-home conan install lsp-server \ -pr:h=lsp-server/conan/profiles/linux-x86_64-clang \ -pr:b=lsp-server/conan/profiles/linux-x86_64-clang \ - -of lsp-server/build/clang-linux/Release \ + -of /var/tmp/tsl-devkit/clang-linux \ --build=missing -cmake -S lsp-server -B lsp-server/build/clang-linux/Release -G Ninja \ - -DCMAKE_TOOLCHAIN_FILE=$PWD/lsp-server/build/clang-linux/Release/generators/conan_toolchain.cmake \ +cmake -S lsp-server -B /var/tmp/tsl-devkit/clang-linux/Release -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE=/var/tmp/tsl-devkit/clang-linux/Release/generators/conan_toolchain.cmake \ -DBUILD_TESTS=ON ``` - AST / 解析改动至少执行: - `ctest --test-dir lsp-server/build/clang-linux/Release -R 'test_ast|test_tree_sitter' --output-on-failure` + `ctest --test-dir /var/tmp/tsl-devkit/clang-linux/Release -R 'test_ast|test_tree_sitter' --output-on-failure` - Provider / 协议改动至少执行: - `ctest --test-dir lsp-server/build/clang-linux/Release -R 'test_provider|test_lsp_any|request_json' --output-on-failure` + `ctest --test-dir /var/tmp/tsl-devkit/clang-linux/Release -R 'test_provider|test_lsp_any|request_json' --output-on-failure` - 语义 / 符号改动至少执行: - `ctest --test-dir lsp-server/build/clang-linux/Release -R 'test_semantic|test_symbol' --output-on-failure` + `ctest --test-dir /var/tmp/tsl-devkit/clang-linux/Release -R 'test_semantic|test_symbol' --output-on-failure` + +Windows 交叉编译目录:`/var/tmp/tsl-devkit/clang-cross/Release` +(仅出包用,不跑测试,`-DBUILD_TESTS=OFF`) + +```bash +CONAN_HOME=/var/tmp/tsl-devkit/conan-home conan install lsp-server \ + -pr:b=lsp-server/conan/profiles/linux-x86_64-clang \ + -pr:h=lsp-server/conan/profiles/windows-x86_64-clang-cross \ + -of /var/tmp/tsl-devkit/clang-cross \ + --build=missing + +cmake -S lsp-server -B /var/tmp/tsl-devkit/clang-cross/Release -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE=/var/tmp/tsl-devkit/clang-cross/Release/generators/conan_toolchain.cmake \ + -DBUILD_TESTS=OFF + +cmake --build /var/tmp/tsl-devkit/clang-cross/Release --target tsl-server +``` ## Playbook 对齐规则 diff --git a/lsp-server/.clangd b/lsp-server/.clangd index 8acae65..040cae3 100644 --- a/lsp-server/.clangd +++ b/lsp-server/.clangd @@ -1,5 +1,5 @@ CompileFlags: - CompilationDatabase: build/clang-linux/Release + CompilationDatabase: /var/tmp/tsl-devkit/clang-linux/Release --- If: diff --git a/lsp-server/conanfile.txt b/lsp-server/conanfile.txt index 2fbae7a..8bbd138 100644 --- a/lsp-server/conanfile.txt +++ b/lsp-server/conanfile.txt @@ -17,13 +17,15 @@ fmt/*:header_only=True cmake_layout # 使用 Clang+libc++ 构建(Ninja generator): +# 构建产物统一放到 /var/tmp/tsl-devkit 下(跨机器固定绝对路径, +# .clangd 的 CompilationDatabase 指向同一位置)。 # -# Linux 环境(build/clang-linux): -# CONAN_HOME=/tmp/conan-home conan install . -pr:h=conan/profiles/linux-x86_64-clang -pr:b=conan/profiles/linux-x86_64-clang -of build/clang-linux --build=missing -# cmake -S . -B build/clang-linux/Release -DCMAKE_TOOLCHAIN_FILE=$PWD/build/clang-linux/Release/generators/conan_toolchain.cmake -DBUILD_TESTS=ON -# cmake --build build/clang-linux/Release --target tsl-server +# Linux 环境(/var/tmp/tsl-devkit/clang-linux): +# CONAN_HOME=/var/tmp/tsl-devkit/conan-home conan install . -pr:h=conan/profiles/linux-x86_64-clang -pr:b=conan/profiles/linux-x86_64-clang -of /var/tmp/tsl-devkit/clang-linux --build=missing +# cmake -S . -B /var/tmp/tsl-devkit/clang-linux/Release -DCMAKE_TOOLCHAIN_FILE=/var/tmp/tsl-devkit/clang-linux/Release/generators/conan_toolchain.cmake -DBUILD_TESTS=ON +# cmake --build /var/tmp/tsl-devkit/clang-linux/Release --target tsl-server # -# Windows 交叉编译(build/clang-cross): -# CONAN_HOME=/tmp/conan-home conan install . -pr:b=conan/profiles/linux-x86_64-clang -pr:h=conan/profiles/windows-x86_64-clang-cross -of build/clang-cross --build=missing -# cmake -S . -B build/clang-cross -DCMAKE_TOOLCHAIN_FILE=$PWD/build/clang-cross/Release/generators/conan_toolchain.cmake -DBUILD_TESTS=OFF -# cmake --build build/clang-cross --target tsl-server +# Windows 交叉编译(/var/tmp/tsl-devkit/clang-cross): +# CONAN_HOME=/var/tmp/tsl-devkit/conan-home conan install . -pr:b=conan/profiles/linux-x86_64-clang -pr:h=conan/profiles/windows-x86_64-clang-cross -of /var/tmp/tsl-devkit/clang-cross --build=missing +# cmake -S . -B /var/tmp/tsl-devkit/clang-cross/Release -DCMAKE_TOOLCHAIN_FILE=/var/tmp/tsl-devkit/clang-cross/Release/generators/conan_toolchain.cmake -DBUILD_TESTS=OFF +# cmake --build /var/tmp/tsl-devkit/clang-cross/Release --target tsl-server diff --git a/memory-bank/tech-context.md b/memory-bank/tech-context.md index d44f62a..bac02b2 100644 --- a/memory-bank/tech-context.md +++ b/memory-bank/tech-context.md @@ -45,7 +45,7 @@ tsl-devkit/ **运行测试**: ```bash -ctest --test-dir lsp-server/build/clang-linux/Release --output-on-failure +ctest --test-dir /var/tmp/tsl-devkit/clang-linux/Release --output-on-failure npm --prefix vscode run compile ```