# CMake Error: CUDA_ARCHITECTURES is empty for target "mytarget".

- **ID:** `cmake/missing-cuda-architectures`
- **Domain:** cmake
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 93%

## Root Cause

CMake 3.18+ requires explicit CUDA architecture specification for targets using CUDA; if not set, it defaults to empty, causing build failure.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.18 | active | — | — |
| 3.20 | active | — | — |
| 3.22 | active | — | — |
| 3.28 | active | — | — |

## Workarounds

1. **Set a valid CUDA architecture, e.g., `set_target_properties(mytarget PROPERTIES CUDA_ARCHITECTURES "75")` for Turing GPUs.** (95% success)
   ```
   Set a valid CUDA architecture, e.g., `set_target_properties(mytarget PROPERTIES CUDA_ARCHITECTURES "75")` for Turing GPUs.
   ```
2. **Set global architecture: `set(CMAKE_CUDA_ARCHITECTURES "75;86")` before defining targets.** (90% success)
   ```
   Set global architecture: `set(CMAKE_CUDA_ARCHITECTURES "75;86")` before defining targets.
   ```

## Dead Ends

- **Set CMAKE_CUDA_ARCHITECTURES to empty string to bypass the check.** — CMake policy CMP0104 enforces non-empty architectures; empty string still triggers the error. (90% fail)
- **Add `set(CMAKE_CUDA_ARCHITECTURES OFF)` to CMakeLists.txt.** — OFF is not a valid architecture; CMake interprets it as empty and fails. (80% fail)
