ExternalData: Add relocatable state metadata

This MR adds ExternalData_STATE_ROOT.

When ExternalData_STATE_ROOT is set, ExternalData stores its hash records and build-driver stamps under that directory instead of next to the materialized file under ExternalData_BINARY_ROOT. The relative layout under ExternalData_BINARY_ROOT is preserved. When the variable is not set, the current behavior stays unchanged.

Tests run locally:

  • Module.ExternalData
  • RunCMake.ExternalData

Issue: #27689
Topic-rename: ExternalData-state-dir

Edited by Brad King

Merge request reports

Loading