Use the mostly compatible implementation of cmBinUtilsLinux* to enable keywords like RUNTIME_DEPENDENCY_SET and RUNTIME_DEPENDENCIES in the install() command and GET_RUNTIME_DEPENDENCIES in the file() command. This should be considered experimental as the regression tests fail, but only due to minor string mismatches. At the moment, it seems to work for our purposes, until more real-life examples come in. PR: 274275 See also: https://gitlab.kitware.com/cmake/cmake/-/issues/25305 --- Source/cmRuntimeDependencyArchive.cxx.orig 2023-09-20 14:33:04 UTC +++ Source/cmRuntimeDependencyArchive.cxx @@ -153,9 +153,11 @@ bool cmRuntimeDependencyArchive::Prepare() platform = "macos+macho"; } else if (systemName == "Linux") { platform = "linux+elf"; + } else if (systemName == "FreeBSD") { + platform = "freebsd+elf"; } } - if (platform == "linux+elf") { + if (platform == "linux+elf" || platform == "freebsd+elf") { this->Linker = cm::make_unique(this); } else if (platform == "windows+pe") { this->Linker = cm::make_unique(this); @@ -403,6 +405,6 @@ bool cmRuntimeDependencyArchive::PlatformSupportsRunti const std::string& platform) { static const std::set supportedPlatforms = { "Windows", "Linux", - "Darwin" }; + "Darwin", "FreeBSD" }; return supportedPlatforms.count(platform); }