Skip to content
  • Sebastian Holtermann's avatar
    Autogen: Ignore not existing source files in cmMakefile · 513eb014
    Sebastian Holtermann authored
    Until CMake 3.10 a list of source files that had the AUTOUIC_OPTIONS property
    populated was kept in `cmMakefile::QtUiFilesWithOptions`.  In the process to
    remove all AUTOUIC related code from `cmMakefile` for CMake 3.10, the pre
    filtered list was replaced by a loop in `cmQtAutoGeneratorInitializer` over
    all source files in the `cmMakefile`.  This loop introduced the problem that
    file paths were computed for source files that weren't in the target's sources
    and that might not even have existed.  If the path for an unused and not
    existing file was computed a `cmake::FATAL_ERROR` with the error message
    "Cannot find source file:" was thrown nevertheless.
    This caused some projects to fail in CMake 3.10.
    
    This patch adds a test for path errors in the loops in
    `cmQtAutoGeneratorInitializer` that iterate over all source files in a
    `cmMakefile`. If a path error appears, the file is silently ignored.
    If the file is part of the target's sources, the path error will still be
    caught in the loop over all the target's sources.
    
    Closes #17573
    Closes #17589
    513eb014