mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
- Separate definition files from object files while reading the generated input list. - Add batch bindexplib interfaces. - Preserve native Windows COFF parsing for ordinary objects. - Collect objects requiring nm and pass them to one nm process through a response file. On non-Windows hosts, pass every object to nm. - Request --print-file-name so single- and multi-object output use the same format. - Recognize text, data, and MSVC vftable symbols; ignore known non-exported types and warn about unknown types. - Capture nm stderr separately so diagnostics cannot corrupt stdout symbol records. Closes: #27995
29 lines
826 B
C++
29 lines
826 B
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file LICENSE.rst or https://cmake.org/licensing for details. */
|
|
#pragma once
|
|
|
|
#include "cmConfigure.h" // IWYU pragma: keep
|
|
|
|
#include <iosfwd>
|
|
#include <set>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
class bindexplib
|
|
{
|
|
public:
|
|
bool AddDefinitionFile(std::string const& definitionFile);
|
|
bool AddDefinitionFile(std::vector<std::string> const& definitionFiles);
|
|
bool AddObjectFile(std::string const& objectFile);
|
|
bool AddObjectFile(std::vector<std::string> const& objectFiles,
|
|
std::string const& responseFile = "exports.def.objs.rsp");
|
|
bool WriteFile(std::ostream& output);
|
|
|
|
void SetNmPath(std::string const& nm);
|
|
|
|
private:
|
|
std::set<std::string> Symbols;
|
|
std::set<std::string> DataSymbols;
|
|
std::string NmPath;
|
|
};
|