def headers(self): """Discover header files in platlib.""" # Headers may be in either location include = inspect.getmodule(self).include platlib = inspect.getmodule(self).platlib headers = find_all_headers(include) + find_all_headers(platlib) if headers: return headers msg = 'Unable to locate {} headers in {} or {}' raise NoHeadersError(msg.format(self.spec.name, include, platlib))
def test_recursive_search_of_headers_from_prefix( installation_dir_with_headers ): # Try to inspect recursively from <prefix> and ensure we don't get # subdirectories of the '<prefix>/include' path prefix = str(installation_dir_with_headers) header_list = fs.find_all_headers(prefix) include_dirs = header_list.directories if sys.platform == "win32": header_list = [header.replace("/", "\\") for header in header_list] include_dirs = [dir.replace("/", "\\") for dir in include_dirs] # Check that the header files we expect are all listed assert os.path.join(prefix, 'include', 'ex3.h') in header_list assert os.path.join(prefix, 'include', 'boost', 'ex3.h') in header_list assert os.path.join(prefix, 'path', 'to', 'ex1.h') in header_list assert os.path.join(prefix, 'path', 'to', 'subdir', 'ex2.h') in header_list # Check that when computing directories we exclude <prefix>/include/boost assert os.path.join(prefix, 'include') in include_dirs assert os.path.join(prefix, 'include', 'boost') not in include_dirs assert os.path.join(prefix, 'path', 'to') in include_dirs assert os.path.join(prefix, 'path', 'to', 'subdir') in include_dirs