Commit c30a333b authored by Andrey Filippov's avatar Andrey Filippov

CLAUDE: eclipse_setup: refresh Eclipse templates for the per-kernel test workflow

- .cproject: exclude src/tests|jna|attic from the managed build (tests are
  many main() executables built by build_tests.sh, not the one-binary
  managed project); add ${workspace_loc}/src include path (indexer resolves
  test #includes); sync Release samples include path with live drift
- .project: second builder = .externalToolBuilders/build_tests.launch
  (runs src/tests/build_tests.sh on manual Build; machine-generic via
  workspace_loc variables)
- .settings: adopt live doxygen + UTF-8 encoding prefs
- .gitignore: ignore live /.externalToolBuilders (template copies up, then
  disconnects, per convention)
- README.md: the convention + what is workspace-level (CUDA toolkit pref,
  12.8 cuda-gdb debug configs)
Co-Authored-By: 's avatarClaude Fable 5 <noreply@anthropic.com>
parent a4767a01
......@@ -3,6 +3,7 @@
/.buildpath
/.project
/.cproject
/.externalToolBuilders
*.kate-swp
attic
/core
......
......@@ -31,6 +31,7 @@
<option id="nvcc.compiler.pic.684092381" name="Position Independent Code (-fPIC)" superClass="nvcc.compiler.pic" useByScannerDiscovery="false"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="nvcc.compiler.include.paths.795018455" name="Include paths (-I)" superClass="nvcc.compiler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/home/elphel/git/cuda-samples/Common"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
</option>
<option id="com.nvidia.cuda.toolchain.compiler.cuda.sm_75_sass.509752823" name="Generate SM 7.5 SASS" superClass="com.nvidia.cuda.toolchain.compiler.cuda.sm_75_sass" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.nvidia.cuda.toolchain.compiler.cuda.sm_52_sass.1308238941" name="Generate SM 5.2 SASS" superClass="com.nvidia.cuda.toolchain.compiler.cuda.sm_52_sass" useByScannerDiscovery="false" value="false" valueType="boolean"/>
......@@ -43,7 +44,7 @@
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
<entry excluding="attic|jna|src/tests" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
</sourceEntries>
</configuration>
</storageModule>
......@@ -77,7 +78,8 @@
<option defaultValue="com.nvidia.cuda.toolchain.compiler.optimization.level3" id="com.nvidia.cuda.toolchain.compiler.optimization.701467217" name="Optimization level" superClass="com.nvidia.cuda.toolchain.compiler.optimization" useByScannerDiscovery="false" valueType="enumerated"/>
<option id="nvcc.compiler.pic.1975061202" name="Position Independent Code (-fPIC)" superClass="nvcc.compiler.pic" useByScannerDiscovery="false"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="nvcc.compiler.include.paths.455619929" name="Include paths (-I)" superClass="nvcc.compiler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/local/cuda/samples/common/inc/"/>
<listOptionValue builtIn="false" value="/home/elphel/git/cuda-samples/Common"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
</option>
<inputType id="com.nvidia.cuda.toolchain.input.c.1579607708" name="C" superClass="com.nvidia.cuda.toolchain.input.c"/>
<inputType id="com.nvidia.cuda.toolchain.input.cu.844732181" name="CUDA" superClass="com.nvidia.cuda.toolchain.input.cu"/>
......@@ -85,6 +87,9 @@
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="attic|jna|src/tests" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/tile_processor_gpu/src/tests/build_tests.sh}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/tile_processor_gpu}"/>
</launchConfiguration>
......@@ -17,6 +17,16 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/build_tests.launch</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
......
doxygen/doxygen_new_line_after_brief=true
doxygen/doxygen_use_brief_tag=false
doxygen/doxygen_use_javadoc_tags=true
doxygen/doxygen_use_pre_tag=false
doxygen/doxygen_use_structural_commands=false
eclipse.preferences.version=1
eclipse.preferences.version=1
encoding/<project>=UTF-8
# eclipse_setup — tracked templates for the (gitignored) live Eclipse project files
<!-- By Claude on 07/11/2026 -->
Convention (same as other Elphel projects): the live `.project`, `.cproject`,
`.settings/`, `.externalToolBuilders/` in the repo root are **gitignored**
each machine owns its own copies. This directory holds the tracked templates.
## After a fresh clone
```bash
cp -r eclipse_setup/.project eclipse_setup/.cproject \
eclipse_setup/.settings eclipse_setup/.externalToolBuilders .
```
then import the project into Eclipse. From that point the live copies and the
templates are disconnected; refresh a template deliberately when a setting is
worth keeping everywhere.
## What the templates contain (updated 07/2026)
- **Two builders** (Project Properties → Builders):
1. `CDT Builder` — the legacy NVCC managed build of the single `test_tp`
binary (CUDA 12.6 toolchain, sm_75 → runs on newer GPUs via PTX JIT).
Disable it when not needed; it is one checkbox to re-enable.
2. `build_tests` external builder — runs `src/tests/build_tests.sh` on
Build (manual builds only): compiles ALL per-kernel test binaries with
CUDA 12.8, `-arch=native`, device debug, into `tests_bin/`. This is the
build that matters for NSight kernel debugging on Blackwell (sm_120);
see `nsight_per_kernel_tests.md`.
- **`src/tests`, `jna`, `attic` excluded** from the managed build
(`.cproject` sourceEntries): tests are many small executables (each with
its own `main()`) and cannot live in a one-binary managed project; `jna`
has its own build; `attic` is local junk.
- **Indexer include path** `${workspace_loc}/src` added to both configs so
the test sources' `#include "tp_*.h"` resolve in the editor.
## Not captured by project files (workspace-level, set once per machine)
- CUDA toolkit path for the managed build: Window → Preferences → CUDA.
- Debug configurations (Run → Debug Configurations → CUDA GDB Application):
point the debugger at `/usr/local/cuda-12.8/bin/cuda-gdb` — the 12.6
default cannot debug sm_120. Recipe: `nsight_per_kernel_tests.md`.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment