diff options
-rw-r--r-- | Source/cmDyndepCollation.cxx | 17 | ||||
-rw-r--r-- | Source/cmDyndepCollation.h | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmDyndepCollation.cxx b/Source/cmDyndepCollation.cxx index 53a262b..f45d81b 100644 --- a/Source/cmDyndepCollation.cxx +++ b/Source/cmDyndepCollation.cxx @@ -623,3 +623,20 @@ bool cmDyndepCollation::WriteDyndepMetadata( return result; } + +bool cmDyndepCollation::IsObjectPrivate( + std::string const& object, cmCxxModuleExportInfo const& export_info) +{ +#ifdef _WIN32 + std::string output_path = object; + cmSystemTools::ConvertToUnixSlashes(output_path); +#else + std::string const& output_path = object; +#endif + auto fileset_info_itr = export_info.ObjectToFileSet.find(output_path); + if (fileset_info_itr == export_info.ObjectToFileSet.end()) { + return false; + } + auto const& file_set = fileset_info_itr->second; + return !cmFileSetVisibilityIsForInterface(file_set.Visibility); +} diff --git a/Source/cmDyndepCollation.h b/Source/cmDyndepCollation.h index e70ac09..48afe2b 100644 --- a/Source/cmDyndepCollation.h +++ b/Source/cmDyndepCollation.h @@ -49,4 +49,6 @@ struct cmDyndepCollation std::vector<cmScanDepInfo> const& objects, cmCxxModuleExportInfo const& export_info, cmDyndepMetadataCallbacks const& cb); + static bool IsObjectPrivate(std::string const& object, + cmCxxModuleExportInfo const& export_info); }; |