The fixture targets, the test binary, and the six test cases live beside the sources they build, leaving the top-level file with enable_testing, the ctest scratch-area write, and the add_subdirectory call. The paths both files need are set once above that call, so the child's output directories and the parent's clean rule refer to the same variables rather than repeating the paths.