/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #pragma once #include #include class cmMakefile; namespace cm { namespace FileSetMetadata { enum class Visibility { Private, Public, Interface }; cm::string_view VisibilityToName(Visibility vis); Visibility VisibilityFromName(cm::string_view name, cmMakefile* mf); bool VisibilityIsForSelf(Visibility vis); bool VisibilityIsForInterface(Visibility vis); // Pre-defined FileSet types extern cm::string_view const HEADERS; extern cm::string_view const CXX_MODULES; std::vector const& GetKnownTypes(); bool IsKnownType(cm::string_view type); // check validity of a user's file set name bool IsValidName(cm::string_view type); } }