Skip to content
  • Reiner Herrmann's avatar
    file: Sort GLOB results to make it deterministic (#14491) · edcccde7
    Reiner Herrmann authored and Brad King's avatar Brad King committed
    Even though the `file(GLOB)` documentation specifically warns against
    using it to collect a list of source files, projects often do it anyway.
    Since it uses `readdir()`, the list of files will be unsorted.
    This list is often passed directly to add_executable / add_library.
    Linking binaries with an unsorted list will make it unreproducible,
    which means that the produced binary will differ depending on the
    unpredictable `readdir()` order.
    
    To solve those reproducibility issues in a lot of programs (which don't
    explicitly `list(SORT)` the list manually), sort the resulting list of
    the `file(GLOB)` command.
    
    A more detailed rationale about reproducible builds is available
    [here](https://reproducible-builds.org/).
    edcccde7