file: Sort GLOB results to make it deterministic (#14491)
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/).
-
mentioned in commit 4f17bacc
-
Mentioned in commit jh0822.kim/cmake@532615f3
-
Mentioned in merge request !136 (merged)
-
mentioned in merge request !929 (closed)
-
mentioned in merge request !1098 (merged)
-
mentioned in issue #23466
Please register or sign in to comment