using System; using System.Collections.Generic; namespace CppSharp.AST { public class Module { public List IncludeDirs { get; } = new List(); public List Headers { get; } = new List(); public List LibraryDirs { get; } = new List(); public List Libraries { get; } = new List(); public List Defines { get; } = new List(); public List Undefines { get; } = new List(); public string OutputNamespace { get; set; } public List Units { get; } = new List(); public List CodeFiles { get; } = new List(); public List Dependencies { get; } = new List(); [Obsolete("Use Module(string libraryName) instead.")] public Module() { } public Module(string libraryName) { LibraryName = libraryName; } public string SharedLibraryName { get { if (string.IsNullOrEmpty(sharedLibraryName)) return LibraryName; return sharedLibraryName; } set { sharedLibraryName = value; } } public string SymbolsLibraryName { get { if (string.IsNullOrEmpty(symbolsLibraryName)) { if (string.IsNullOrEmpty(OutputNamespace)) return $"{LibraryName}-symbols"; return $"{OutputNamespace}-symbols"; } return symbolsLibraryName; } set { symbolsLibraryName = value; } } public string LibraryName { get; set; } public override string ToString() => LibraryName; private string sharedLibraryName; private string symbolsLibraryName; /// /// Gets the class template specializations which use in their arguments /// types located in this which is not the module their template is located in. /// public HashSet ExternalClassTemplateSpecializations { get; } = new HashSet(); } }