Skip to content

find_program: Consider CWD only for paths with separator

Sam Yates requested to merge halfflat/cmake:bugfix/find-program-path into master

find_program() incorrectly prepended search path components to absolute file paths, and incorrectly searched the current working directory for files that contained no directory separators.

  • Replace calls cmFindProgramHelper::CheckDirectory(std::string()) with call of new method cmFindProgramHelper::CheckCompoundNames() that checks for the presence of a directory separator in the file name.
  • Use cmSystemTools::CollapseCombinedPath rather than string concatenation to properly combine absolute file names with search path components.
  • Add unit tests to verify corrections.

Fixes: #18044 (closed)
Topic-rename: find_program-conditional-cwd

Edited by Brad King

Merge request reports