Pull requests / #3242

#3242 [Engine] build: pin CMP0169 OLD around FetchContent_Populate (CMake 4.4 warns on every configure)

closed · @Buddychek · 0 comments · View on GitHub

AMD / HIPNVIDIA / CUDAWindows

Description

### Problem and result

CMake 4.4 warns on every configure: `FetchContent_Populate` is deprecated (CMP0169). Strata uses the populate-then-`add_subdirectory` form on purpose — it keeps ggml's binary dir at the `STRATA_GGML_DIR` one; `FetchContent_MakeAvailable` would move it, and its `EXCLUDE_FROM_ALL` needs CMake 3.28, above the project's 3.24 floor.

After: `CMP0169` is pinned to `OLD` around the populate call (guarded for CMake < 3.30), so the warning is gone and the layout stays as it is today. Checked by `tools/test_fetchcontent_policy.py`.

### Related discussion

Closed in the 0.2.0-beta tracker reset; rebased on main and re-verified per the reset note.

### Approach

`cmake_policy(SET CMP0169 OLD)` scoped around the `FetchContent_Populate` call in `CMakeLists.txt` and `sycl/CMakeLists.txt`, guarded so CMake < 3.30 (which has no CMP0169) is untouched.

### Validation

Passed, on 0.2.0-beta main (`e88ee39d` is the base; branch commit `b14ff320`), Windows 11, CMake 4.4.0: `python tools/test_fetchcontent_policy.py` → 3/3 OK, exit 0.
Not run: a full CUDA/HIP engine build in CI; CMake < 3.30 (the guard path).

### Limits

Policy pin only — no build-layout change; the configure output is otherwise byte-identical.

Related on this site

Quick links to related pages.