GET_RUNTIME_DEPENDENCIES return dlls that do not physically exist and are part of the concept that Microsoft refers to as API sets.
Examples:
- api-ms-win-core-libraryloader-l1-2-1.dll
- api-ms-win-core-atoms-l1-1-0.dll
- api-ms-win-core-winrt-error-l1-1-1.dll
- api-ms-win-core-sidebyside-l1-1-0.dll
- api-ms-win-core-localization-obsolete-l1-3-0.dll
- api-ms-win-core-heap-l1-2-0.dll
- api-ms-win-core-heap-l2-1-0.dll
- api-ms-win-core-delayload-l1-1-1.dll
- api-ms-win-core-libraryloader-l1-2-0.dll
- api-ms-win-core-rtlsupport-l1-2-0.dll
- api-ms-win-core-shlwapi-obsolete-l1-2-0.dll
- api-ms-win-security-base-l1-2-0.dll
There are other with the prefix “ext-ms-win” or “ext-ms”.
I can add exclusion patterns to GET_RUNTIME_DEPENDENCIES using pre_exclude_regexes but this is very fragile, because it depends on OS versions. I think it would be better if cmake handles these tricky aspects. It would fit better into the philosophy of cmake to provide abstraction of the OS, makesystem, …
References: On API-MS-WIN-XXXXX.DLL, and Other Dependency Walker Glitches